Building A Complete Human Character Rig In Maya, Creating The Leg Controls
Today we’re bringing you the third part of the Building A Complete Human Character Rig In Maya series that teaches you how to construct a complex, fully realized character rig using Maya’s built in tool set. In today's post you'll learn how to build the character’s controls for animation. This is a very important step in the Character Rigging pipeline, because without having good controllers, you can’t get the best control in animation. So let’s get started creating our “controls” for the character.
Also available in this series:
- Building A Complete Human Character Rig In Maya
- Building A Complete Human Character Rig In Maya, IK And Spline IK With Cluster Deformers
- Building A Complete Human Character Rig In Maya, Creating The Leg Controls
- Building A Complete Human Character Rig In Maya, Spinal Controls
- Building A Complete Human Character Rig In Maya, Hand Controls
- Building A Complete Human Character Rig In Maya, Global Control and Skinning
First open the "All Iks applied.mb" file which was saved in the previous part.
Now, if your character's joints look quite thin, you can increase the joint's display size to make them visually bigger. To do this go to Display>Animation>Joint Size.
Fill the “Reset” value with 0.60 (or a value of your choice) in the Joint Display Scale dialog box and then close it. Now the joints look bigger and will give you a better view to identify each joint.
Now, to see the character's mesh in template mode in the viewports, click on the View button in the layer Display tabs group. This shows the character mesh in the viewport in template mode.
For making the leg controls, click on the Create menu, and go to Polygon Primitives> Cube, and draw a cube in the viewport.
Nowgo to the Create menu again and click on the CV Curve Tool option box.
In the CV Curve Tool settings, turn On the radio button for 1 Linear mode and then close the Tool Settings box.
Now, with the CV Curve Tool selected, turn on the Snap to points option in the Status bar, or hold down the V key to enable the Snap to Points tool.
Now start clicking on each corner of the box to draw a curve line over the box.
Continue clicking on each corner as shown in the image and press Enter on the key board to finish the CV Curve tool, and also click on the Snap To Points tool again to turn it off. Once the curve is complete, select the box and press Delete.
Notice only the curve is showing as a wire frame. Now select the curve and place it at the back of the character mesh. And Duplicate the curve.
After duplicating the curve, you will notice that the pivot point is positioned outside of the selected curve. So first, we need to put the pivot point at the center of the curve.
For this, click on the Modify menu, and choose the Center Pivot command.
After doing this you'll have the pivot point in the center of the curve. Do the same and center the Pivot with the other wire framed box curve too.
Now, with the wireframe box curve selected, turn on Snap To Points in the Status bar (or hold down V) to enable the Snap To Points tool. After doing this, drag the curve while pressing the middle mouse button to the L_Heel_joint. The wireframe box curve will be snapped to the heel joint. Again disable the Snap To Points tool.
Now, jump to the side view and zoom in on the wireframe box curve as shown in the image.
Click on the Select By Component Type tool on the Status bar to convert the wireframe curve to component mode to manipulate the vertices as per the shape of choice.
Drag the selected vertices and make a foot shape in the side view.
Now in the Front view, adjust the shape like shown the image below, or keep the shape as you desire. And again disable the Select By Component Type tool on the Status bar.
Let’s rename the curve shape. Click on the “Select by object” tool in the Status bar, then turn on the curve in object mode. Rename the curve shape as L_Leg_Control.
In the perspective view with the L_Leg_Control selected, press CTRL+D to duplicate the right leg control and then rename it R_Leg_Control.
With the R_Leg_Control selected, snap it to the R_Heel_joint. For this hold down the V Key on the keyboard and drag it onto the R_Heel_joint while holding the Middle mouse button. Release the mouse button and also release the V Key.
Now we will start to create joints to lock the legs IKs. It will give you chance to create multiple attributes for the leg control. In the Side view, zoom in and view the leg's control.
Being in Animation menu mode, select the Skeleton menu and click on the Joint Tool option button, to open the Joint Tool settings option box.
In the Joint Tool setting options box, enter a value of 0.2 for the Short Bone Radius. This will let you draw smaller joints to select easily. Finally click on close button to close the Tool settings box.
Let’s start. First click on just the heel of the character leg as shown in the image below.
And continue clicking on Toe tip and Toe, and finally click on Heel joint as shown in the image, and press the Enter key to finish drawing the joint.
Jump into Perspective view and zoom in on the legs. With the Leg lock joint selected, click on the X axis arrow to constraint to the X axis, and hold down the V key for Point snap. Then Middle Mouse Button drag onto the L_Heel_joint.
Notice, now the Leg lock joint is aligned with the L_Heel_joint. Also hide the character mesh wireframe to view things clearly in the viewport.
Now, rename the Left leg lock joints as shown in the Outliner window pictured below.
Now, with the Move tool selected, select L_legLock_joint2 and hold down the V key to enable the Points To Snap tool.
Middle Mouse Button drag between the L_ToeTip_joint and then release the mouse button and the V key. The L_legLock_joint2 is now snapped to the L_ToeTip_joint.
Again select the L_legLock_joint3 and do same as we did in the previous step. Hold down the V key and this time snap it to the L_Toe_joint.
Now, select L_legLock_joint4 and hold down the V key, and Middle Mouse Button drag it on L_Heel_joint.
Select the L_legLock_joint1 and click on the Skeleton menu, then select the Mirror Joint options box to open the Joint Mirror setting options box.
In the Mirror Option settings box, keep the default settings and press the Mirror button.
Notice, now the left leg lock joint is duplicated and mirrored for the right side leg. Also rename it for the right side.
Next, we will start parenting the IKs and leg lock joints. For this, first zoom in and view the left side leg joint and select first the L_ik_Heel, then hold down the Shift key, select L_legLock_joint4 and press the P key to parent.
Again select the L_ik_Toe, then Shift-select the L_legLock_joint3 and press the P key again.
Do same; select the L_ik_ToeTip and Shift select the L_legLock_joint2, and press the P key.
Now, this time we will make a Custom Attribute for the legs control. Select both the L_Leg_Control and R_Leg_Control and click on the Modify menu, and choose the Add Attribute command. Then the Add Attribute settings box will be opened.
In the Add Attribute settings box, type "Leg Roll" in the Log Name box. And in the Numeric Attribute properties, keep the Minimum: -10, Maximum: 10 and Default: 0. Lastly click on the Add button.
Notice, the Leg Roll Attribute is now added to the Channel Box.
Again In the Add Attribute settings box, type "Heel Pivot" in the Log Name box. And in the Numeric Attribute properties, keep the Minimum: -5, Maximum: 5 and Default: 0. And finally click on the Add button.
Again In the Add Attribute settings box, type "Toe Pivot" in the Log Name box. And in the Numeric Attribute properties, keep the Minimum: -5, Maximum: 5 and Default: 0 and then click on the OK button.
Now, these three Attributes have been added to the Channel box.
With both leg controls selected, click on the Edit menu. Then click Delete by Type and click on the History command to delete the history of leg controls.
Again with both leg controls selected, click on the Modify menu and click the Freeze Transformations command.
You will notice that all transform attributes are 0 now.
Now, it’s time to create a Set driven key link between the leg lock joints to the Custom Attributes we have created. So open the Outliner window and select the leg lock joints L_legLock_joint3, L_legLock_joint2, and L_legLock_joint1 respectively.
With the joints selected, go to Animate> Set Driven Key and click on the Set command. This opens the Set driven Key settings option box.
In the Set Driven Key options, you get a Driver group and a Driven group. Notice the selected leg lock joints shown in the Driven group with the transform attributes.
Now, select the L_Leg_Control and in the Set Driven Key option box, click on the Load Driver button.
You can see the selected L_Leg_Control in the Driver group with it's custom attributes.
During the Set Driven Key process you will have to watch the Channel properties also. So first in the Driver group, select the Leg Roll attribute and select all the leg lock joints in the Driven group and also select the Rotate Z attribute in Channel. At last press the Key button.
Select the Leg Roll Attribute and type a value of 5 in the Leg Roll Attribute box in the Channel panel.
With L_legLock_joint1 selected, select Rotate Z in the Channel and type a value of 25 in the L_legLock_joint1 Rotation Z value, and again click on Key button to key it.
Again with L_legLock_joint2 and L_legLock_joint3 selected, click on the Key button to key.
Now in the Set Driven Key options box, click on the L_leg_Control and type 10 in the Leg Roll Attribute in the Channel box.
Now, drag and select both the L_legLock_joint2 and L_legLock_joint2 in the Set Driven Key options box, and in the Channel box enter a value of 25 for Rotation Z and click the Key button again.
Click on L_Leg_Control and enter a value of -10 in the Leg Roll attribute.
This time select the L_legLock_joint1 only and enter 35 units for the Rotation Z in the Channel Box. Then press the Key button and click on the minimize button to minimize the Set Driven Key options box.
To check the leg control attribute of the Leg Roll, select the L_Leg_Control and the highlighted the Leg Roll attribute and Middle Mouse Button drag in the viewport. You will notice the leg lock joints are rolling according to the value we changed in the Leg Roll.
Now, for the next two Custom Attributes, we will do the same thing. Again maximize the Set Driven Key options box (or open the Set Driven Key option) and in the L_Leg_Control - Leg Roll Attribute change the value of -10 to 0 to reset the Attribute to the default value.
This time we will work on the Heel Pivot. So first select the L_Leg_Control, then select the Heel Pivot Attribute, L_legLock_joint1, then Rotate Y and finally click on the Key button to key initially.
Again select the L_Leg_Control and enter a value of 5 in the Heel Pivot box, in the Channel Box.
Now, select the L_legLock_joint1 only and enter a value of 30 for the Rotate Y Attribute. Then click the Key button in the Set Driven Key options box.
Now, select the L_Leg_Control and enter a value of -5 in the Heel Pivot box.
Now, select the L_legLock_joint1 and enter a value of -30 for the Rotate Y Attribute. Then click on the Key button in Set Driven Key options box.
For the Toe pivot. Select the L_legLock_joint2, then select the Toe Pivot in the Driver group, and click on the Key button for the initial key.
Select the L_Leg_Control and enter a value of -5 in the Toe Pivot box.
Again select the L_legLock_joint2 in the Set Driven Key options box, and enter a value of 25 for Rotate Y, and then press the Key button to key.
Select the L_Leg_Control and enter a value of 5 in the Toe Pivot box.
Again select the L_legLock_joint2 in the Set Driven Key options box, and enter a value of -25 units for Rotate Y in the Channel Box and then press the Key button to key. Finally close the Set Driven Key options box.
After doing these steps, we will check the left side leg control. So with the L_Leg_Control selected, click on the Leg Attribute and Middle Mouse Button drag in the viewport horizontally. You will see the character’s foot joint is rolling up and down naturally. You can check each Custom Attribute we created.
Now, we have to make the knee control for the final stage of the leg control. So duplicate the wireframed box.
With the wireframe box selected, hold down the V key and Middle Mouse Button drag on the L_knee_joint. The box is snapped to the knee joint as shown in the image.
Now, re-size the control curve box for making the knee control. For this, first click on the Select By Component Type tool (or press the “F8” key.) And select all the vertices and scale down the shape.
After scaling down the curve as shown in the image below, press CTRL+D to duplicate for the right side leg and press the W key for the Move tool selection.
Now, Hold down the V key again and Middle Mouse Button drag on the R_knee_joint. The knee control is now snapped to the right knee joint as shown in the image below.
Rename both knee controls as L_Knee_control and R_Knee_control.
Drag both the knee controls in the Z axis as shown in the image below.
With both knee controls selected, click on the Modify menu and then select the Freeze Transformations command.
Select the L_Knee_control first and then Shift-select the L_ik_Heel.
With the L_Knee_control and L_ik_Heel selected , go to Contrain> Pole Vector.
Notice, the Pole Vector constrain is applied now with the L_Knee_control and the L_ik_Heel. To test it, move the L_Knee_control in the X axis, and you will see that the knee is being controlled by it.
Now zoom in to the left leg control curve. First select the L_legLock_joint1 and Shift-select the L_Leg_Control and press the P key to parent the L_Leg_Control with the L_legLock_joint1.
To check the functionality, select the L_Leg_Control and move it up. You will see that the leg joint moves the entire leg just like a human leg.
Undo the last move. Finally select the L_Leg_Control, then Shift-select the L_Knee_control. Select the Constrain menu and then select the Point options box.
The Point Constraint Option box opens. Enable the “Maintain offset” option then click on the Add button to apply the Point Constraint.
Select again only the L_Leg_Control and move the leg control randomly. You will see that the knee control also moves with the leg control. Do an undo to reset the moves.
Now, you can setup the control for the right side leg in the same way we created the left leg control. The only thing you have to keep in mind is that the naming convention must be named according to the right side leg. Now save the file as "Leg complete.mb". In the next part of the tutorial we will talk about Spine and Hand controls.
And that completes Part 3!