Jerky movement mechanical rig using bone constraints


I’m studying how to rig simple mechanical joints and systems. I like how the bone constraints system works in general in Blender. However, I stumbled on some weird behavior when trying to rig this simple folding mechanism you can see in the video below. How do I keep one end of the bone exactly on an axis without it moving all over the place? Any help would be appreciated!

blend file
armature problem.blend (3.9 MB)

Here I used a couple target bones (one with a Transformation constraint, the other with two Copy Location constraints) and Stretch To constraints for the legs.

Scissors_Lift.blend (663.9 KB)

1 Like

Thanks a lot for that! interesting how you solved it with target bones. Although it is not entirely physically accurate to stretch the bones. The legs’ joints should move in a circular way and not in a straight line.
I fiddled around with it some more and got the results I needed by change the constraints in such a way that one of the diagonal legs doesn’t have constraints. The armature is driven by changing the angle of this leg.

folding mechanism.blend (3.9 MB)

Hey, I downloaded your first file just after you posted it, but it had like 6-7 armatures in it, one of them a humanoid and the mesh to go with it, and I did re-read your post header (I can’t see your video), so I trashed it (your file). Any how, I see what you are after now, your solution is good, but it can’t be transformed - it’s static in the scene, which is not a problem if it suits your need. When building this type of rig, it’s critical that the bone lengths (diagonal bones) are the same length. As far as your jerking movement goes, could be that you are using ‘Quaternion Rotations’, at least changing it to ‘XYZ’ fixed it for me. Do Not use quat rotation mode for stuff like this - at least in this case, mechanical rigs generally don’t require it. I’m posting a screen shot of the rig set-up I use for something like this, every thing is visible that is relevant.

1 Like

Thanks for looking into it! It is weird that most of the things you mention don’t work for me. I changed quaternion rotation to XYZ but this doesn’t change the behavior. Also, I can move and transform the armature without any problems. And also i made sure the bone lengths have the same length.
Maybe we get different results because you use 2.79?

Yes, there is a backwards compatibility thing (for lack of a better word). I used 2.76 on this too, but would be the same as 2.79. As far as transforming it, what I mean is you can’t move/rotate it (Root/Main bone) in the ‘Scene’ without it doing weird deformations. I noticed you had your constraints set to ‘Pose’ space, which in essence is ‘World’ space, so coordinates/axis play a part in what/how you can transform a rig. So when ever you get that jerky movement, first check the console window to see if there are errors, usually dependency loop issues, then it comes down to the ‘Space’ type you set on the constraints. The example that I posted using ‘transformation’ const is set to ‘Local’ space, that way you can grab the ‘Root/Main’ bone and transform it in the ‘Scene’ without any weird deformations, Hope this clarifies things.

1 Like