Advertisement

Building A Complete Human Character Rig In Maya, Hand Controls

by
What You'll Be Creating

Today we’re bringing you the fifth part in the Complete Human Character Rig series where you'll learn how to construct a complex, fully realized character rig using Maya’s built in tool set. In today's post we'll tackle one of the most complicated parts, the dreaded hand controls.

In this part of the tutorial, you will learn how to build the character's IK/FK Hand Controls for animation. This is a very essential part in Character Rigging and hence quite long also. So let's start creating Controls for the character's hands.


Also available in this series:

  1. Building A Complete Human Character Rig In Maya
  2. Building A Complete Human Character Rig In Maya, IK And Spline IK With Cluster Deformers
  3. Building A Complete Human Character Rig In Maya, Creating The Leg Controls
  4. Building A Complete Human Character Rig In Maya, Spinal Controls
  5. Building A Complete Human Character Rig In Maya, Hand Controls
  6. Building A Complete Human Character Rig In Maya, Global Control and Skinning

Step 1

First open the last saved file: Complete_Spine_Controls.mb.



Step 2

Click on Create > NURBS Primitives > Circle to create a circle curve.


Create a circle curve on the grid.



Step 3

With the circle curve selected, hold down the V key and drag it (using the Middle Mouse Button) onto the L_Arm_joint to snap the circle curve as shown in the image.



Step 4

Rotate the circle in the Z axis 90 degrees.



Step 5

With the circle curve selected, press the F8 key to convert it into vertex component mode. Select vertices and reshape the circle curve as shown in the image below. Reshaping like this won’t affect the scale value of the circle and hence it can save you from many problems. Now again press the F8 key to bring it back into object mode.



Step 6

Now with the circle curve selected, press Ctrl+D to create a duplicate of it. Hold down the V key and drag it (using the Middle Mouse Button) onto the L_Elbow_joint to snap it to the elbow joint.



Step 7

Selected the duplicated circle curve, press the F8 key to convert it into vertex components mode, select vertices and reshape the circle curve as shown in the image below. Now press the F8 key again to change it into object mode.



Step 8

Now, zoom out and select the wire frame box and duplicate it.



Step 9

With the snapped wire frame box curve selected, press the F8 key to convert it into vertex components mode, then select vertices and reshape the wire frame box curve as shown in the following image. Now again press the F8 key to change it back into object mode.



Step 10

With the snapped wire frame box curve selected, press F8 to convert it into vertex components mode, then select vertices and reshape the wire frame box curve as shown below. Again press the F8 key to change it back to object mode.



Step 11

Now, select all three of the created control curves (2 circles and 1 box.) Click on the Edit menu, click on the Delete by Type command and then click on the History command to delete the history of the selected curves.



Step 12

With the same curves selected, click on the Modify menu and then click on Freeze Transformations to freeze the curves.



Step 13

After that rename all the newly created curves as L_Arm_Control, L_Elbow_Control and L_Hand_Control respectively as shown in the Outliner window below.



Step 14

With the L_Arm_Control selected, press the Ctrl+D key to duplicate it for the right side arm control.



Step 15

With the duplicate L_Arm_Control selected, hold down the V key and drag (using the Middle Mouse button) onto the R_Arm_joint to snap the control curve.



Step 16

Do the same with the L_ Elbow_Control. First duplicate it and then snap it to the the R_Elbow_joint.



Step 17

Also duplicate the L_Hand_Control and snap it to the R_Hand_joint.



Step 18

Now select all new aligned controls for the right side, and rename as R_Arm_Control, R_Elbow_Control and R_Hand_Control respectively.



Step 19

Now, with the R_Arm_Control, R_Elbow_Control and R_Hand_Controls selected, click on the Modify menu and select Freeze Transformations to freeze the transform of the controllers.



Step 20

For making elbow controls, select the wire frame box curve and duplicate it, then snap it to the Elbow_joint.



Step 21

Now, snap this duplicated box curve to the L_Elbow_joint.



Step 22

With the box curve selected, press the F8 key to change it into components mode and resize it as shown in the image below, then press the F8 key again to return to object mode.



Step 23

With the reshaped box curve selected, duplicate it and also snap it to the right side elbow joint.



Step 24

Now, select both curve boxes and press the W key to enter move mode.



Step 25

Drag and move both box curves in the Z axis as shown in the image.



Step 26

Now, rename both box curve as L_IK_Elbow_Control and R_IK_Elbow_Control in the Outliner window according to their selected position.



Step 27

With both IK elbow controls selected, click on the Edit menu then Delete by Type and then click on the History command.



Step 28

Again with both of the elbow controls selected, click the Modify menu and also click on the Freeze Transformations command.



Step 29

Now, link and parent the controllers. For this, first select the L_Hand_Control then while pressing the Shift key, select L_ik_hand.



Step 30

With both the L_Hand_Control and L_ik_hand selected, click on the Constrain menu and then click on the Point command to add a point constrain.



Step 31

After applying the Point constrain command, move the hand control to check if the joint is functioning. Once checked, use the undo command to reset the hand control position.



Step 32

Now select the L_IK_Elbow_Control and then select the L_ik_hand and apply a pole vector constrain this time.



Step 33

With both the elbow control and hand ik selected, click on the Constrain menu and select Pole Vector constrain.



Step 34

Do the same thing for the right side hand also. Select both the R_IK_Elbow_Control and R_ik_hand and use point and pole vector constrains.



Step 35

Now first select the L_Arm_joint and then select the L_Arm_Control, then apply the Point constrain as shown in the figure below.



Step 36

Again first select the L_Elbow_joint and then select the L_Elbow_Control and then apply the Point constrain.



Step 37

Now, we have to create one more control curve for the Wrist control. So duplicate the L_Elbow_Control and snap it to the L_Hand_joint as shown in the figure below.



Step 38

With this duplicated curve control selected, press F8 and reshape it as shown in the image below just to make it look different. And then press F8 to change it into object mode again.



Step 39

Rename this curve as L_Wrist_Control and snap it to the L_Hand_joint and then apply the delete history and freeze transformation commands.



Step 40

With the L_Wrist_Control selected, duplicate it and snap it to the R_Hand_joint as shown in the image. Finally apply a point constraint to the R_Elbow_Control and R_Arm_Control as was done in the previous steps for the left side.



Step 41

And also don't forget to delete history and freeze transformation for both the wrist controls. After that we have to delete the applied constraint, because we don’t need the same properties here too.



Step 42

With both wrist controls selected now, select the applied point constraint for the elbow controls and press Ctrl+C to copy the command.



Step 43

With the copied L_Elbow_Control_pointConstraint1 selected, click on the Menu of the input Line Operations arrow, and click on the Select by name radio button (as shown below.)



Step 44

While in Select by name mode, press Ctrl+V to paste the L_Elbow_Control_pointConstraint1 and then press the Enter key.



Step 45

When you press the Enter key you will notice that the L_Elbow_Control_pointConstraint1 is now selected in the Channel Box. So press the Delete button to delete the applied point constraint.



Step 46

Again with both wrist controls selected, apply delete history and the freeze transform commands.



Step 47

Now, first select the L_Hand_joint and then select the L_Wrist_Control and apply a Point constrain. See the previous steps!



Step 48

Do the same thing for right side also.



Step 49

Now, this is the time to create attributes for the wrist controls. So, with both the left and right wrist controls selected, click on the Modify menu and then click on Add Attribute...



Step 50

In the Add Attribute settings box, write IK or FK Switch in the Log name box and fill the values with Minimum: 0, Maximum: 1 and Default: 0 in the Numeric Attribute fill boxes, and finally click on the Add button.



Step 51

Continue and write Thumb in the Log name box and fill in the values Minimum: -5, Maximum: 10 and Default: 0 in the Numeric Attribute boxes, and then click the Add button.



Step 52

Next, write Index in the Log name box and enter the values of Minimum: -5, Maximum: 10 and Default: 0 in the Numeric Attribute boxes, and then click on the Add button.



Step 53

Again, write Middle in the Log name box and enter the values of Minimum: -5, Maximum: 10 and Default: 0 in the Numeric Attribute fill boxes, and then click on Add.



Step 54

Continue by writing Ring in the Log name box and filling the values with Minimum: -5, Maximum: 10 and Default: 0 in Numeric Attribute boxes, and then click on the Add button.



Step 55

Finally write Pinky in Log name box and enter the values of Minimum: -5, Maximum: 10 and Default: 0 in Numeric Attribute boxes, and then click on Add.



Step 56

Now you will see the new Attributes in the Channel Box.



Step 57

Now, let’s proceed for the wrist control. First select the L_Wrist_Control and then the L_Hand_joint.



Step 58

With both selected, click on the Constrain menu and then click on the Orient options box.



Step 59

In the Orient Constrain Options box, check on Maintain offset and then click on the Add button to apply the Orient Constrain.



Step 60

To test if it's functioning, press the E key and select the L_Wrist_Control then drag and rotate. You will notice that the hand joint rotates just like a real hand. Now undo the last rotated wrist control.



Step 61

Now, let’s work on the wrist twisting. Select the L_Wrist_joint and in channel box select Rotate X, because in this case we have to constrain Rotation X with an expression.



Step 62

Again in Channel Box, click on the Edit menu and then click on Expressions.



Step 63

Now, the Expression Editor window appears. In the Expression text box, write script (L_Wrist_joint.rotateX = L_Wrist_Control.rotateX*0.3;) then press the Create button, and close the Expression Editor window.



Step 64

Do the same thing with the right side wrist control. In this case, write this script (R_Wrist_joint.rotateX = R_Wrist_Control.rotateX*0.3;).



Step 65

To bind up all finger controls and IK or FK Switch attributes, Click on the Animate menu and then click on Set Driven Key and click on Set.



Step 66

Select the L_Wrist_Control and in the Set Driven Key window, click on Load Driver to load in side Driver group.



Step 67

Select all thumb joints like L_Thumb_joint_1, L_Thumb_joint_2, L_Thumb_joint_3 and L_Thumb_joint_4 while pressing the Shift key and click on the Load Driven button. You will notice all thumb joints are selected in Driven group.



Step 68

With the elements selected as shown in the Driver and Driven groups, click on the ‘Key’ button to add an initial key.



Step 69

Now, click on L_wrist_Control in the Driver group and then in the channel Thumb attribute, enter a value of -5.



Step 70

Select all L_Thumb_joints in the Driven group and press the E key to rotate the joints.



Step 71

The selected joints rotate in the opposite direction as shown in the image below. Click on the ‘Key’ button to set the driven key.



Step 72

Now in the Driver group, select L_Wrist_Control and in the Channel Box enter the value of 10 for the Thumb.



Step 73

With all thumb joints selected, rotate in the desired direction and click on the Key button to add a key.



Step 74

Now let’s work on the index finger. So select the L_Index_1, L_Index_2, L_Index_3 and L_Index_4 joints and click on the Load Driven button. Then select Rotate Z and Index in the Driver group and then press the Key button for the initial key.



Step 75

Again in the Driver group, click on L_Wrist_Control and then add a value of -5 in the Channel Box for Index.



Step 76

Select All Index joints in the Driver group and rotate the joints as shown in the image, and then click on the Key button to add a key.



Step 77

Click on L_Wrist_Control in the Driver group and fill in a value of 10 for the Index Attribute in the Channel Box.



Step 78

Again with all index joints selected, rotate down in the Z axis as shown in the image below and click on the Key button to add a key.



Step 79

Now let’s work on the middle figure. Select all middle finger joints L_Middle_1, L_Middle_2, L_Middle_3 and L_Middle_4 and click on the Load Driven button first. Then select Rotate Z in the driven group and finally select the Middle Attribute in Driver group, then click on the Key button for the initial key.



Step 80

Again select the L_Wrist_Control in the Driver group and then add a value of -5 for the Middle Attribute in the Channel Box.



Step 81

Select all middle joints again in the Driven group and rotate upward in the Z axis, then press the Key button to add a key.



Step 82

Again select the L_Wrist_Control in the Driver group and then fill in a value of 10 for the Middle Attribute in the Channel Box.



Step 83

Select all middle joints again in the Driven group and rotate downward in the Z axis, and then press the Key button to add a key.



Step 84

Now you have see how to do the process. So follow the same procedure for the two remaining fingers - the Ring and Pinky and also for the fingers on the right side hand. Finally check the values of the finger's attributes, they must lay between -5 to 10.



Step 85

Now, we will create the IK/FK Switch control attribute. So Select the L_Wrist_Control again and load it in the Driver group, in the Set Driven Key window. Now select L_ik_hand, load it as Driven and then select the IK or FK Switch attribute in the Driver group. Then select IK Blend in the Driven group and finally click on the Key button.



Step 86

Select the L_Wrist_Control again in the Driver group and then fill in a value of 1 for the IK or FK Switch attribute in the Channel Box.



Step 87

Now, select the L_ik_hand ik in the Driven group and set the value for IK Blend to 0 in the Channel Box, and then click on the Key button to add a key.



Step 88

Thus, follow the same procedure for the right side hand wrist control also, and test it's functionality too.



Step 89

Now, first select the L_Arm_Control and then the L_Arm_joint.



Step 90

With the L_Arm_Control and L_Arm_joint selected, click on the Constrain menu and then click on Orient Constrain to apply it.



Step 91

Again Select the L_Elbow_Control and then the L_Elbow_joint and apply the Orient constrain here too as shown in the image.



Step 92

Select the L_Elbow_Control and then the L_Arm_Control, and press the P key for parenting.



Step 93

Do one thing more, select the L_Wrist_Control and then press Ctrl+G to make a group. You can see the transform gizmo of the group appears on the grid.



Step 94

With the L_Wrist_Control selected, hold down the D and V keys and drag using the Middle Mouse Button onto the L_Elbow_joint to snap the pivot to the elbow joint.



Step 95

With the Wrist control group selected, open the Outliner window and then rename the group as L_Wrist_control_grp.



Step 96

First select the L_Elbow_Control, then select the L_Wrist_control_grp and then click on the Constrain menu to apply the Parent constrain. Do the same for the right hand wrist control too.



Step 97

Now, select the L_Wrist_Control and load it as the Driver, and then select the L_Arm_Control and L_Elbow_Control and load them as Driven. Now select IK or FK Switch in the Driver group and then select Visibility in the Driven group.



Step 98

Select L_Wrist_Control in the Driver group and fill in a value 0 for the IK or FK Switch in the Channel Box.



Step 99

With L_Arm_Control, L_Elbow_Control and Visibility selected in the Driven group, set the value for Visibility to Off, and then press the Key button.



Step 100

Again select the L_Wrist_Control in the Driver group and fill in a value of 1 for IK or FK Switch in the Channel Box.



Step 101

With L_Arm_Control, L_Elbow_Control and Visibility selected, type ‘on’ for the Visibility option in the Channel Box and then press the Key button to set the key.



Step 102

Select L_Hand_Control and L_IK_Elbow_Control together, click on Load Driven, select Visibility and set the value to ‘off’ for the Visibility attribute in the Channel Box, and finally click on ‘Key’.



Step 103

Again select the L_Wrist_Control in the Driver group, and fill in a value of 0 for IK or FK Switch in the Channel Box.



Step 104

Select L_Hand_Control and L_IK_Elbow_Control, then load it as Driven with Visibility selected. Set the value of Visibility to ‘on’ and then click on the ‘Key’ button. Also follow the same steps for the right side wrist control.



Step 105

Finally check all controllers which we have created so far and then save the file as Complete Spine Controls.mb.


And that completes Part 5!


Advertisement