Armature: Align and rotate bones at the same time around center point I try to make an armature where the bones are aligned in a circle around a MasterBone. In Pose Mode I would like to be able to e.g.:


Bring all tails of the LowerBones towards the center (so they all rotate at the same time (while leaving the heads of the UpperBones in place)
Bring all heads of the UpperBones the center (so they all rotate at the same time (while leaving the tails of the LowerBones in place)


Maybe imagine it as an industrial "claw arm"? I hope it is clear what I mean. I manually faked two possible desired results by adjusting every single bone:






  I already had a nearly perfect solution of how the bones should behave:


I parented one UpperBone/LowerBone combination to a circle and made duplicates with DupliFrames (which I cannot use due to other reasons). When I rotated or moved the 2 bones in whatever way all the duplicates around the circle mirrored the poses perfectly around the center of the circle. 

Which Constraints or relations do I need to setup? 

Here is a file with a very basic setup:


Thanks for any help!
The transformation constraint can be used to do what you want. This constraint allows you to proportionally move a bone based on another bone, the advantage is that the movement doesn't have to match the bone being moved.



To setup, add two new bones, one as a control for the upper movement, the other for the lower. In the attached sample I also added a limit location constraint so that these can only be moved within the range of motion that works for this.

Next align the roll of each bone (in edit mode) so that the x-axis is aligned to the direction you want the bone to rotate, this allows a single axis rotation to be used and lets us copy the same settings to each bone.



Next setup one upper bone.


Add a transformation constraint.
Select the armature and bone that will control it. 
Set the source Y location range.
Set the destination mapping so that the source Y controls the destination Z.
Set the destination Z location range to suit.
Set the space options to local space, this makes it use the bones axes, not world axes.




Now setup one lower bone.


Add a transformation constraint.
Select the armature and bone that will control it. 
Set the source Y location range.
Set the destination mapping so that the source Y controls the destination X.
Set the destination X rotation range to suit.
Set the space options to local space.




Add a second constraint to the lower bone, set this one to use the second control bone and set the rotation as the negative of the previous one.

Once you have one leg that moves correctly when you move a control bone, copy the same constraints to the other bones. To make this easier, enable the copy attributes addon, this is included with blender. Select all the upper bones with the finished bone being the last selected, now press &#9096; CtrlC->Copy Bone Constraints. Repeat with the lower bones.

Note that armatures have their own layer system, you can move all the arm bones to another armature layer so they can be hidden, leaving just the two control bones as visible while animating.