2
$\begingroup$

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

enter image description here

enter image description here

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!!

$\endgroup$

3 Answers 3

1
$\begingroup$

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).

enter image description here

$\endgroup$
5
  • $\begingroup$ 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 $\endgroup$
    – Fuboski
    Oct 25, 2016 at 17:33
  • $\begingroup$ 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. $\endgroup$ Oct 25, 2016 at 17:40
  • $\begingroup$ Ok Thank you! As soon as I can I try your solution and I'll tick as correct at home. $\endgroup$
    – Fuboski
    Oct 25, 2016 at 17:44
  • $\begingroup$ 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. $\endgroup$
    – ecv
    Dec 12, 2018 at 20:27
  • $\begingroup$ @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!) $\endgroup$ Dec 12, 2018 at 20:41
3
$\begingroup$

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.

$\endgroup$
1
  • $\begingroup$ I know I'm a little late to the party, but the way I do this without causing cyclic dependencies is by using an action constraint. This way what is driving the shoulder movement is entirely independent of child positioning. I just made an answer about this below. $\endgroup$
    – Tyler
    Oct 25, 2021 at 18:36
2
$\begingroup$

I know I'm a little late to the party, but the way I do this without causing cyclic dependencies is by using an action constraint. This way what is driving the shoulder movement is entirely independent of child positioning.

To do this, create one action for each shoulder that rotates the shoulder up to it's maximum possible upwards position. Key that position on frame 20 of the animation, and key the rest position on the first frame.

Then use similar settings to mine in the screenshot below.

enter image description here

$\endgroup$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .