Shoulder Movement following the arm

I would like my shoulder bone follows the movement of the arm like this gif below;

The theory is very clear but I can't realize it in Blender. I think the key should use Copy Rotation but I can't set it right.

Is my supposition correct? If yes, what should be the worflow to use the constraint in this situation?

If copy rotation doesn't work, there could be another solution for this problem?

Thank you!!

Set the shoulder bone copy rotation from the upper arm bone, both to local space, with influence not complete (1.0, in my example is set to .411).

In the armature tab of the properties panel activate the axis visualization, to see which is the only axis to copy (i.e. Z axis).

• You tick the Z axis. If I also select X and Y, the shoulder will follow the arm all Long the 3 axis? Or this could create problem? I'm not at home and I can't check right now – Fuboski Oct 25 '16 at 17:33
• Yes, with all 3 axis ticked the shoulder will follow the arm rotations in all three axis, wich can simply lead to innatural movements. The choice it's up to you, also depending by the model. In the GIF in example the rotation is only on 1 axis. – josh sanfelici Oct 25 '16 at 17:40
• Ok Thank you! As soon as I can I try your solution and I'll tick as correct at home. – Fuboski Oct 25 '16 at 17:44
• In my case I had to use a Transformation constraint in order to make the model depicted in this question and referenced in this answer: blender.stackexchange.com/a/41550/50766 work properly since the shoulder X axis matches the upper arm Z axis. But this answer helped me in my way to figure all this out. Thank you. – ecv Dec 12 '18 at 20:27
• @Kevin Remo you're welcome, it's easiest if you think that the axis visualisation is located at the root of the bone, not at the tip (actually, I don't know why they decided to draw it on the tip!) – josh sanfelici Dec 12 '18 at 20:41

As far as I know, there is no clean way to automate the shoulder rotation in Blender. It creates a dependency cycle, since the shoulder is parent of the arm bone, that could be only avoided with a more sophisticated dependency graph that could handle multiple updates orders:

1. the shoulder drives the arm position/rotation
2. the arm drives the shoulder rotation => cyclic dependency.

The solution given by josh sanfelici leads to this cyclic dependency unfortunately. It's an important issue because it:

• gives incorrect bones rotation
• leads to lags when manipulating the rig
• slows down script execution
• slows down Blender performances

So this should be avoided at all costs.