Piston arm rig

Hey gang,

I’ve been tearing my hair out googling around trying to solve this one on my own, but I’m stuck.

Basically, I’ve got what should be just a basic turret/sentry rig set up for the arm. The forearm is set up with an IK constraint and set to track an Empty, while the first bone is just set to limit its rotation so that it doesn’t intersect the socket. The socket copies rotation from the arm to aid the non-intersection.

However, no matter what combination of constraints and limits I put on this, I can’t seem to get it to behave properly. Ideally, to allow full reach, the arm/socket should rotate 90 degrees and the arm should then rotate within to allow a further reach, but I cannot for the life of my figure out how to achieve this.

For reference, I have got the rig to behave like the first picture, but I want to achieve the results of the second

Blend can be found at whyamisohelpless.blend (617 KB)

Any and all help is appreciated :slight_smile:


I’m sorry wtfreely. I’ve beaten that thing six ways from Sunday, and can’t figure out why it doesn’t behave properly. The best I can do for you is point you toward Clockmender’s demo. Look at this file he posted and see if you can’t find an arm doing what you want. Clockmender is spot on for making things work right.

Thanks for your help! I poked around with it some more, creeped clockmender’s blend and his profile and made some tweaks (shots in the dark) to see if I could improve it. I set the socket to be the arms parent, but not to inherit rotation, and I created a control bone on the elbow which the socket can copy the rotation from. Pretty much the ugliest, most nonsense solution, and I have no rationale behind it beyond ‘ehhh?’. But it half works?

It’s behavior is slightly more desirable now, but it will often jitter uncontrollably in extreme positions such as when it has to cross into negative space, and it won’t necessarily bend so that the tip of the bone touches it’s target.

Boohoo =( updated blend @ whyamisohelplessMKII.blend (619 KB)

I recorded how I would set this up. I hope this helps. The video should be up in a half hour or so. (It takes a bit for HD to become available.)

I made one mistake while recording, do not parent the IK target to the body, parent it to the root bone instead.

Here is the file as well.

Good Luck!


Piston_DanPro.blend (722 KB)

Wow, thank you so much for this. The video is set to private, but I’m digging through the blend looking at your work in the meantime.

It should be up now.

Good luck!

Oh my Gosh, just finished watching it. Extremely informative, thank you so much for taking the time to put together this tutorial for me, I greatly appreciate it!

Another awesome tut DanPro. I love that MCH bone parent that prevents the flipping. That was an aha moment for me, when I figured out what you were doing there.


That’s a really good tutorial, DanPro. I learned some things. Thank you!

@SkpFX Thanks for the reference here, my demo did not include a specific for this setup though.

@Danpro Thanks for answering this in my absence (I’m in Stockholm just now, without my MacBook…) - I would have done this exactly as you did it!!! Thanks my friend. The second IK chain to keep the first one in line is a trick I use quite a lot and I am pleased you have explained it so clearly for everyone else.

Cheers, Clock.

PS. Can everyone note the use of a root bone in Danpro’s video, this is very important and often omitted by people rigging this kind of setup - you should ALWAYS have a root bone and parent your IK targets to it, this saves hours of frustration and despair!!!