1
$\begingroup$

I'm trying to rig a 3 bone-setup that allows me to twist the mesh's forearm like you would in real life. I've got a copy bone rotation on the bone (haven't done the rest) but rotating it just freaks out the chain.

Here's how it looks like: 0.359 influence

And that's only on 0.359 influence limited on the Y axis (Local space -> Local space (I've tried different ones; they ended up with either the same results or worse)). Also, why does it take more than one Alt-R's to reset the bone rotation? 2

Probably a stupid question and I'm just missing something really obvious. In any case, any help is appreciated. Thank you!

$\endgroup$
1
$\begingroup$

You are encountering a circular dependancy: A child bone influences the parent bone, which influences the child bone.

enter image description here

Here's a pseudo explanation of whats going on. Assume, you're moving the mouse in an 45° arc as illustrated on the left. boneB (the child bone) rotates. But since it influences the parent bone slightly, the parent bone will rotate as well. But now the relation of the starting and end position of the mouse towards the shifted origin of the child bone are different and produce another angle. Since the boneB is slightly lower on the right illustration, the angle is slightly bigger, now the parent bone has to be recalculated. And then the child bone, etc. All this happening, while the mouse is being moved obviously produces this weird behaviour.


Y Rotation

To solve this problem for the y rotation, simply parent boneB to the parent of boneA. If you wish you can lock the translation axes of boneB.

enter image description here

All rotations

To create a similiar behaviour for all rotation do the following. (Remember, child bones aren't allowed to influence their parents, if this changing the child bone's properties.)
Create an additional bone, which will be the animated one and parent it to the firstparent (root). Add a copy rotation from the handle to boneB, and a copy rotation constraint to boneA with your desired influence.

enter image description here

The result works, but the handle isn't location at boneB, the segment, which the animator wants to manipulate. This is not intuitive. (At the same time, this is why everything works, the relation of the handle bone to the mouse doesn't change during the rotation operation.)

To enhance the setup, position the handle at a better location. Hide the other bones, or move them to another layer, since the animator doesn't need to touch them. Then choose a custom shape for the handle bone, and choose the boneB in the At field. The custom object will now always be displayed at the position of boneB. The origin of rotation (where the dashed line to the mouse is drawn from), remains at the handle bone's position though.

enter image description here

| improve this answer | |
$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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