0
$\begingroup$

I have a pretty simple hand rig with only 3 fingers, and I want a controller bone to drive the local X rotation of the entire finger so that an increase in the Z scale of the controller bone increases the X rotation of the finger bone toward the center of the hand,and vice versa. I was able to achieve this for only one of the finger bones using a driver for the X rotation with the expression: var -1. However, this only works for one bone in terms of deforming in the way you would expect the fingers to splay naturally. When copying the driver to another finger bone, I want the X rotation to be mirrored from the working bone. For example, when I decrease the scale of my controller and end up with an X rotation value of -.3 for my one working finger bone, I want the opposite finger bone to have a mirrored value of .3. I can't seem to fix my expression in a way that achieves this.

Screenshots for more clarity:

Rig View

Overall Rig

Driver Settings

Driver Settings

In short, I want the not working bone to mirror the X rotation of the working bone. Simply changing the expression to var + 1 doesn't really work here. Any suggestions would be appreciated.

$\endgroup$
1
  • $\begingroup$ If you want to drive rotation, I wouldn't recommend using quaternion transforms. Try an Euler (I usually prefer YXZ or YZX for bones.) Changing the Z component of a quaternion is not necessarily doing anything to rotate the bone-- it depends on the other components as well. $\endgroup$
    – Nathan
    Sep 28 at 17:33

1 Answer 1

0
$\begingroup$

If want you want is to "invert" the positive/negative value, I think you should use *-1 instead of -1.

But also, you shouldn't have fingers with different axis orientations to begin with, and the common standard for axes usage in fingers and limbs in general is:

  • X axis : fold
  • Y axis : twist
  • Z axis : splay

demo gif

I highly suggest you at least make your bones' axis consistent with themselves, and even follow the standard so that other people using your rig and symmetry tools can work properly.

You can enable your armature's axes display under Properties Editor > Armature data tab > Viewport Display panel:

enter image description here

And you can change a selected bone's roll in Edit Mode using the Recalculate Roll menu with ⇧ ShiftN, any option you select will align the bones' +Z axes to what you chose. In my example gif it uses Global +Z.

enter image description here

$\endgroup$
1
  • $\begingroup$ Thanks so much! This was really helpful. $\endgroup$ Sep 28 at 18:53

You must log in to answer this question.

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