View Full Version : Rigging: Controllers for All and Individual Fingers

06-03-2009, 11:08 AM
I am trying to rig a characterís hand and here is where I am at. The rotation of a given fingerís bones is controlled by its own null through expressions (ex: [FingerMidNull.Rotation.H]). So I have one null for each finger, and every bone in a finger references its null with an expression.

What I would like to do now is create a master null that will rotate all of the finger nulls for a given hand. This way I can rotate one null to close a fist, but still rotate the individual finger nulls for greater precision.

The approach I tried was to use Same As Item for heading rotation on each of the finger nulls, and make the master hand null the reference object. The problem with that is that rotating the hand master null did indeed turn the individual finger nulls, however the bones didnít move.

Any suggestions on how I can control all of the fingers with a single null, but also be able to control them individually?

06-03-2009, 01:35 PM
You need to do it al with expressions. LW has a problem with motion m odifers in the graph editor reading motions generated by modifiers outside the graph editor and vice-versa. In your expressions youre using to rotate the finger bones add in the master null controller.
The problem with using expressions like this to control a hand is that depending on what you need the hand to do, you dont have as precise control as you think because you still wont have individuall control of each finger for any sort of exact control.

06-03-2009, 01:49 PM
Thanks for the response. [FingerMidNull.Rotation.H]+[HandNull.Rotation.H] is returning the result I was looking for. This guy won't be playing a piano or anything, so the accuracy this returns will work fine.

Thanks again.

06-04-2009, 06:59 AM
Rigging noob here -- could you create some morphs for various hand poses and just use morph mixer to control those, or is that just a stupid idea?

06-04-2009, 07:01 AM
Use Relativity and make your life easier.

06-04-2009, 09:02 AM
Rigging noob here -- could you create some morphs for various hand poses and just use morph mixer to control those, or is that just a stupid idea?

It's not stupid but it won't be pretty either. LWs MorphMixer displaces points using linear interpolation. So if you're base is a straight tube and your morph is the same tube bent 90 degrees, animating it from 0% to a 100% will not look like a tube bending. And animating it to -100% will not bend it in the opposite direction. As a "rigging noob", I suggest you try this out, as knowing what tools can't do is just as important as knowing what they can do.

Still, the issue here is simply about linking channels/envelopes. And it does infact work with SameAsItem. I set up Pinky(bones) to follow Pinky_CTRL, and Pinky_CTRL was in turn following AllFingers_CTRL. Pinky_CTRL could be keyframed individually.

RotationItem: Pinky_CTRL
Interpolate, 100%

RotationItem: AllFingers_CTRL
Compensate, -100% (same as Additive 100%)

This will show Pinky_CTRL channel value as keyframe+modified value. If you don't like that you'll have to resort to expressions and add a null. AllFingers_CTRL+Pinky_CTRL=Pinky_DRIVER, or something like that.

I think the SameAsItem system might be better at reading modified motion (within the SameAsItem system) compared to motion modifiers (which has no support for it, but can work if you mind the evaluation order). NT did spend time implementing the cyclic dependancy check. It is quite likely that they use the same system to solve dependancy order and atleast implemented this for all revamped built-in motion modification (ik, sameAsItem, targeting etc).

(Couldn't upload scene as I only had a discovery version installed)

EDIT: If you should want to spread out all fingers you'll have to resort to expressions anyways as SameAsItem can only link channels of the same type and only has one Interpolate/Compensate value. Quite limiting.