I'm trying to get a single side of a mechanical parallelogram (with 2 bones parallel and equal in length) to carry the "Neck Base" along a fixed angle as a parallelogram only allows.

I've tried restricting the movement of the bone within the IK chain (pictures show that there are none, but I did try) to allow zero rotational movement, but the "Neck Base" still rotates weirdly and not smoothly. It reacts the same way without any of said rotational restrictions, if that helps.

I do have a Bone Constraint on both "Neck Rod Front" and "Neck Rod Back" to share the same rotation angle in only one axis as shown.

Is there a way to connect "Neck Rod Back" to the "Neck Base" to maintain that angle?

Is there a better way to complete this method of movement?

Here's a link for the file for testing.



Rest Position Rest Position

Forward Position Forward Position

Up position Up Position

Short Gif

  • $\begingroup$ Select one bone as control bone, which you will operate, and make all other dummy bones move by Copy Rotation constraints. $\endgroup$ – Jaroslav Jerryno Novotny Jan 7 '18 at 11:26
  • $\begingroup$ I don't want the "Neck Base" to rotate at all. It should remain at the same relative angle by virtue of the parallelogram. $\endgroup$ – Rybot Jan 7 '18 at 16:43

There are two simple solutions to it:

What both rigs have in common:

  • boss and helper are children with offset of main. That puts them into local space and prevents flipping. If ever the rig has to do a looping this becomes relevant.

  • bar is a child of boss.

  • neck 1 is a child of bar with offset.

1. Two simple constraints.

This one works if the bones are really parallel and have the same length (copied). Helper has a Copy Rotation Constraint and rotates in sync with boss.

Bar has a Locked Track Constraint pointing to helper. Locked Tracks only rotate around a locked axis and are therefore more stable than a Track To. They won't flip.

Now you can rotate boss and everything will follow.

lt rig

c1 settings

c2 settings

2. One slightly more complicated constraint

This one will work regardless of lengths and rotations as long as it can function mechanically. Good for rigging excavators. It has an additional bone, target, which is a child of helper with no offset.

This time, bar has an IK Constraint pointing to helper, chain length 2. boss and helper kind of need a rename since now it's helper who gets to be animated. bar and boss will follow.

But you could just as well turn bar around, parent it to helper, put the target on top of boss and do the IK chain the other way around.

IK rig

ik settings

A third solution would be to let main be a duplicate of bar, maybe form a complete parallelogram with the 4 bones and give bar a copy rotation constraint to main but it's not really needed.


I am rather a beginner, just plunging into the topic of rigging, and have downloaded your file because it is an interesting issue, but admittedly I got a bit messed since your rig lacks any "limit rotation" constraints. A possible workaround could perhaps be: Add an empty (as target) at the tip of Neck Rod Back and parent it to that bone so that it always keeps the position of the bone tail. In Edit mode, split the parenting (Armature-Split) between Neck Rod Front and Neck Base. Select the tail of Neck Rod Front and the root of Neck Base and connect them with a new bone, make it child of Neck Rod Front and parent of Neck Base. This new bone should get a track constraint to the empty so that it always points towards the tail of Neck Rod Back. Neck Base should keep its relative position to the new bone now. The other meshes must be re-parented to the proper bones. Perhaps you re-arrange the bone constraints and relationships from the shoulder upward to the head. Add the necessary movement constraints (Limit Rotation and possibly also Location; I suppose the parallelogram should move only within the symmetry plane of the robot body while the head should be allowed to tilt to both sides at the tail of Head Base?) - sorry, due to my limited experience I would have also have a lot of experimentation necessary to make that properly...

Greetings from Southern Germany, Tschöbbel

  • 2
    $\begingroup$ Thanks for the answer. Could you please use paragraphs and proper spacing? Walls of text are extremely hard to read. $\endgroup$ – Duarte Farrajota Ramos Jan 30 '18 at 23:25

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.