My mechanical (piston) rig is unstable

I followed the tutorial on piston rigging at CG cookie ( and tried the same thing with a slightly more complex thing. However, it moves about in unwanted ways and I don’t really know what I need to restrict.
I’m attaching my current attempt. Can it be fixed?

What I’m trying to do is (the loading unit of) this:

Perhaps rigging the whole thing with empties instead? I’ve seen this mentioned in other threads.

rig_test.blend (521 KB)

Sure it can be fixed, and I would stay away from using empties.

I opened the file and played with it for about 30 seconds and I see the signs of cyclic dependencies. When you move a bone, and cancel the movement, the bones should all return to their previous position. If they don’t, then it’s most likely a cyclic dependency. A cyclic dependency is an error condition where the constraints are conflicting with each other. Example: create 2 bones, add track-to constraints to each bone, targeting the other bone, and you have a cyclic dependency. To check for this, while in pose mode, tab into edit mode and tab back to pose mode, then check the console window for an error message. All these issues can be fixed.

As to rigging with empties, you can have the same problem there as you would with an armature, so you’re not avoiding the problem you have. But you could be creating another problem for yourself.

Animation data (keyframes) are stored at the object level. So if you’re animating objects, like rotating the bucket, rotating the boom, your keyframes are stored in actions for each object. If you are doing anything more than a simple 1 off animation, animating the objects, instead of an armature, will become a nightmare. Trust me on that. I don’t have the time to explain fully, but by using an armature, you have 1 action controlling everything. Were as, doing it with empties and objects, when you want to create a new action, you have to create a new action on every object. Gets tedious…

Anyway, just my 2 cents… A skilled user by the name of ‘clockmender’ will likely see this thread and he’s most helpful, think he even has a couple of tutorials on this…


Yes, he did read it, thanks for the kind words Randy! :o:o:o:o

I agree with everything Randy has said, in particular the bit about staying away from Empties for this kind of rig, if you intend to animate it, it can be done this way but it is open to too many problems.

I too opened the file and saw “Cyclic Dependencies” all over the place - far be it from me to criticise other peoples methods, but the way you rigged it, largely down to the tutorial you used I presume, is not the way I would do it and is far too complicated and open to problems. Apologies to those concerned, who have greater Bender knowledge than me.

This problem has “Inverse Kinematics” written all over it, I enclose your file with my own armature added to show the principles I would use. Just rotate the “bucket” bone to operate the bucket, the “arm” bone to operate the arm, and move/rotate the “root” bone to manipulate the whole rig. Play very close attention to the bone parenting and constraints, particularly the IK constraint’s chain lengths. This is just a quick rig to show the principles, you need to think about adding constraints/Transform Locks to prevent unwanted rotations of the arm and root bones, etc. I have added a simple hydraulic cylinder to the bucket action to show how you would rig and assign vertices for this. Do the parenting of the mesh to the armature “With Empty Groups” then go to Edit mode for the meshes and assign vertices to the appropriate bone.

I have a couple Undercarriage/Plane tutorials on my website that may help to explain the principles, which are the same for diggers as aircraft u/c’s and can be found on my website:

Cheers, Clock.

rig_test.blend (569 KB)

PS. Any further problems, let me know and I can help further.

Whoa. Thank you both!
That’s super helpful advice and help, and way too much for me to understand right away. I’ll look into everything you’ve said (Randy’s suggestion already had me looking at the landing gear tutorial) and get back if anything’s still unclear.
Again, thanks a lot!

I don’t really understand this. I though as long as the relations between armatures/empties are the same, the number of points that needs key-framing are the same, as the relations would take care of the rest. Then again, I’m thinking about this entirely in a simple “mechanical” way and have no experience with more dynamical rigs (organic stuff, hoses/tubes, etc). I definitely need to read up on this.

To put this simply, All the animations, rotations, movements, etc. are contained in one object with an armature, whereas if you have many meshes, and many empties, the animation “actions” are spread across all of the meshes and empties. It is far easier to maintain and improve the animation actions if they are all contained in one object.

Cheers, Clock,

You’re welcome clockmender, and I know you like this mechanical rigging stuff, so I was sure you’d be reading this post. TBH, I don’t have the spare time to help on the rigging details, I’ll let you handle that…

Well put, that pretty much sums it up.

Best of luck,