Ok.
Now comes a lot of repetitive work, so I'll just explain it once, and you repeat
it as needed. We'll be wiring the finger controls to the fingers. We'll take the
Index Curl parameter, for example. But first, let's prep the fingers. Select all
of the finger bones, and assign a list controller to each of their Y rotations
tracks (I use local euler controllers on them). Now, select the bones that would
be the first bone in each finger (say, A_Bone_index_root), and assign to them
another list controller to their Z rotation track. Ready. Re-select the control_arm
point object, and open up the wire parameters dialogue box. Make sure that in
the wire paramters dialogue, you are seeing the control_arm node in one side,
and in the other the Bone_index_root node. Select the index curl parameter track
in the control_arm side. Select the track marked as 'availble' in the Index_root's
Y rotation list controller. Wire from the index_curl parameter to the Y avalible
track. In the expression window, add the degtorad expression to it.
Without
leaving the wire parameters dialogue, navigate to the next bone in the chain,
in this case, A_Bone_index_mid. Repeat the wiring from the index_curl parameter
to the bone's avalible controller in it's local Y rotation tracks. Finally, repeat
for the last bone in the index finger chain.
To
test if everything is working ok, grab the control_arm object and in the modify
panel play with the index curl spinner. The index finger will bend forward and
backwards.
Now,
you'll need to do the same for the rest of the fingers, wiring them to their proper
parameter in the control_arm object (pinky fingers to the pinky curl parameter).
To
finish wiring the fingers, let's wire the Finger spread parameter. This parameter
goes wired to each of the root bones of the fingers. Specifically, to their available
Z rotation track. There is, however, one detail. Since this parameter spreads
the fingers (open or close), the expresion value will have to be positive for
either the index or pinky finger, and negative for the other. The middle finger
needs to remain still (in the case of normal 5-fingered characters, both the mid
finger and the ring finger would need to spread a bit). To make one of the values
negative, you'd need to add a minus sign before the degtorad expression. In my
case, I added it to the index finger, leaving the pinky as it was.
And
lastly, the Inherit Arm slider. This slider is intended to make the hand inherit
or not the arm's movements and rotations. This is so that you can pin the hand
to anything else (a wall or the floor) and remain statick while the rest of the
character moves. What this slider does is control automatically the oriantation
constraints placed earilier on the HandOrient point object. But we'll use expressions
to drive this one.
Select
the HandOrient node, and in the motion panel create two expression controllers,
one for each weight track in the orientation constraint controller. Open one of
the expression controller for the weight0 track, create a scalar variable, and
assign it to the Control_Arm's Inherit Arm track. Enter the variable's name you
just created as the expression. Do the same for the second expression, but in
the expression window enter the following expression... 100-variable.
3DTotal
Advertisement - We need your support!
As
well as you tutorial hungry people eating through a terabit of bandwidth each
month we also have many additional staff and running costs involved in creating
these free pages. We want to continue bringing you many free tutorials and resources
everyday, so PLEASE check out our products and amazon affiliate schemes via the
above banners. Many thanks!
This
way, the slider will automatically drive the weight on both constraint controllers,
interpolating correctly from 0 to 100 and 100 to 0.
Lastly,
so you can control everything from the Control arm Node, wire its x,y and z rotation's
to the WristControl x,y and z rotations. This way, you can rotate the arm control
object, and the wrist will rotate (so you won't have to worry about having another
node tim animate). If one of the rotations is reversed, enter a minus sign before
the expression in the wire parameters dialogue (test by rotating the Control Arm
node).
There
you go. Your arm should be fully functional and working properly.