Building A Complete Human Character Rig In Maya, Spinal Controls
Today we’re bringing you the fourth part of the Building A Complete Human Character Rig In Maya tutorial 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 complex spine controls. This is a very important step in the Character Rigging pipeline, because without good controllers, you won't have the best control when animating. So let’s continue creating the “controls” for our 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
We saw how to make controls for legs in the last part. In this part of the tutorial, we'll see how to build the character’s spine controls for animation. It is a very important part in Character Rigging. So let’s start creating the spine controls of the character. First open the Leg complete.mb file, which we saved at the end of the previous part of the tutorial.
Zoom into the hip area. Select the wireframe box curve and Duplicate it, and then snap it to the Root joint. To snap, hold the V key and drag holding the middle mouse button onto the Root joint. Once snapped, release the V key and the middle mouse button.
You can now see the wireframe box is snapped to the Root joint.
To re-size the hip control curve, jump to the side view and turn on component mode with the wireframe box curve selected. Click on the select by component type tab in the status bar, or press the F8 key.
Now select the vertices and edit them to form your desired shape for the hip control.
Do same in the front view too as shown in the image below. Always keep in mind, while reshaping the curve for control, the curve should be bigger in size than the character mesh.
With the wireframe box curve selected, press the F8 key to switch into object mode. And Rename the curve as Hip_control.
Now, with the Hip_control selected. Click on the Modify menu and then click on the Freeze Transformation command to freeze the initial transform position to 0.
Now, we will create a circle for the hip shake control. So go to Create> NURBS Primitives, and click on the Circle options box to open the Circle Tool Settings.
In the Tool Settings panel, type 18 in the Number Of Sections box. This will give you more control to reshape the control curve. Finally close the Tool settings panel.
Now, draw a circle shape in the Perspective view.
Now in Move mode with the circle selected, hold down the V key and drag holding the Middle Mouse Button onto the Spine_1 joint. This will snap the circle to the Spine_1 joint.
After snapping the circle curve, Rename it as Hip_Shake_Control and also apply the Freeze Transformation command again.
With the Hip_Shake_Control selected, press the F8 key to jump into Component mode. And reshape its vertices as shown in the image below. Again press the F8 key to jump into Object mode.
Create another circle curve and snap it to the Spine_2 joint, then Rename it as Abs_Control. To snap the circle curve, do same as we did in the previous steps. And also with the Abs_Control selected, apply the Freeze Transformation command again.
Draw another curve box and snap it to the Spine_4 joint to create the chest control.
For modifying chest control, follow the previous steps. Don’t forget to apply the Freeze Transformation command and Rename it Chest_Control.
Now, one more control we need to create for the back shoulder. So first jump into a Side view, click on the Show menu, and check the Grid option to turn on the grid.
Now, for creating the back control, go to the Create menu and click on the CV Curve Tool settings option box.
In the CV Curve Tool settings panel, check the 1 Linear radio button under the Curve degree group. And finally close Tool Settings panel.
Now, with the CV Curve Tool selected, Hold down the X key for Grid snapping and click on the Grid corners one by one according to the directions given in image. This will form a two headed arrow as shown in the image. Press the Enter key to finish the CV Curve tool.
When you pressed Enter, you'll notice the created curve’s pivot point is placed at the bottom.
Jump to the Perspective view and with the curve selected, press the W key to be in Move mode (if you are not already in Move mode). Now zoom into the neck area, hold down both the D and V keys at the same time and then drag holding the Middle Mouse Button onto the Spine_5 joint to snap the curve pivot point to the Spine_5 joint. And after doing this, release all buttons (Mouse Button, D key and V key.)
Now, jump again into the Side view and press the F8 key to jump into Component mode and select all the vertices. Now select the Scale Tool (or press R), and then re-size and move the curve as shown in the image below. Again press the F8 key to switch into object mode.
Jump into Perspective view and rename the curve Back_Control. And also use the Freeze Transformation command as you have done previously.
Hold down the Shift key and select the Hip_Control, Hip_Shake Control, Abs_Control, Chest_Control and Back_Control. Then go to Edit> Delete by Type, and click on the History command.
We are now done creating the controls for Spine. Now we'll do child parent links to all controls as per requirement. So zoom in and concentrate on the hip area. First select the Hip_Control, then select the Root_joint while holding down the Shift key.
In the Animation mode window, open the Constrain menu and click on the Parent command.
You can test things after applying Parent Constrains. When you drag the Hip_Control, all joints take position as in a human pose. After testing press Ctrl+Z to undo.
Now, first select the Hip_Shake_Control then Shift select the cluster_Hip.
With the Hip_Shake_Control and cluster_Hip selected, click on the Constrain menu and then click on the Point command. This time if you drag or rotate the Hip_Shake_Control, you'll notice it only moves but not rotates.
This time select the Abs_Control, hold down Shift and then select cluster_Abs.
Open the Constrain menu and click on the Point command once again. You can test the Abs_Control. It also works in move transform not in rotation.
Now select the Chest_Control and then select the cluster_Chest cluster and apply the Point Constrain command.
In this step, select the Back_Control first and shift select the cluster_Back, and also apply the Point Constrain command.
With Chest_Control selected, go to Window> General Editors and click the Connection Editor.
After the Connection Editor opens, select the Spine_ik_handle then click on the Reload Right button, in the Connection editor. You will see the Spine_ik_handle has now come into the Inputs side and the Chest_Control is in the Outputs side.
In the Connection Editor. Outputs should show the Rotate group, and Inputs should show twist. In the rotate group, select "rotate y". And under Inputs, select twist and click on the Close button to close the Connection Editor.
For checking, select Chest_Control and press the E key, then rotate in the Y axis. You'll notice that the shoulder rotates also according to the Chest_Control. And finally undo the last change to set things back to the initial position again.
Now, it’s time to link the hip control to control as a parent. So zoom in and view the hip portion. First select the Hip_Shake_Control then hold down Shift and select the Hip_control and press the P key.
To test the functionality of the hip control, move it randomly. You'll see the hip shake control moves also. It just looks like a dancing skeleton. Undo the last move to be in the initial position.
Select now the Abs_Control, then hold down Shift and select Hip_control and press the P key.
After parenting the Abs_Control and Hip_control, you can test the Abs_Control followed by the Hip_control. Now undo once again.
Now, first select the Chest_Control, then while pressing Shift. Select the Hip_control and press the P key again.
This time first select the Back_Control, then hold down Shift and select the Chest_Control and press the P key.
Now, first take a look how the created controls for the spine work. When you move the Hip_ Control, all the upper controls move with the hip. And if you move the other controls, except the Hip_Control, then only the selected control moves alone.
Now we have to create one more control for the Head. So first create a Circle curve again, and then go to Create> NURBS Primitives and select Circle.
Drag and create a circle curve for the head control.
With the circle curve selected, hold down the V key and drag holding the Middle Mouse Button onto the Neck_joint, to snap the circle curve to the Neck_joint.
Now, re-size the circle curve by using the scale tool. And rename it Head_Control.
With the Head_Control selected, open the Edit menu, click on Delete by Type and then click on History to delete history.
With the Head_Control selected again, go to Modify> Freeze Transformation.
While the Head_Control is selected, press the Insert key (or hold down the D key) to displace the pivot point.
To snap the pivot point to the Head_joint, hold down V and drag holding the Middle Mouse Button onto the Head_joint. The head control pivot point is snapped now to the Head_joint. Release the mouse button and also press the Insert key again to be in normal mode.
First select the Head_ik, then hold down Shift and select Neck_ik, finally press the P key.
Again select the Head_Control first, then select the Neck_ik.
With both the Head_Control and Neck_ik selected, open the Constrain menu and click on Point constrain.
With the same Head_Control and Neck_ik selected, open the Constraint menu again and click on the Orient options box. The Orient Constraint option box will now be opened.
In Orient Constraint Options box. Check On the Maintain offset option, and then click on the Add button to apply the orient constraint and close the option box.
Now, we have to link the Head_Control with the Back_Control by the parent command. So first select the Head_Control, and then Shift select the Back_Control and press P.
Now, let’s check whether the head control and the chest control are working fine or not. So select the chest control and rotate it, you will see both the back control and the head control are also oriented according to the chest control. This means they are working fine. Finally, undo the last rotation.
This time we have to watch for proper linking, otherwise we can’t go a head with the proper process. So first open the Outliner window. Here extract all the controllers and watch for the exact hierarchy as is shown in the image below. Once satisfied, close the Outliner window.
Now, something we have to manage more for the next steps. So in the channel box, click on Display group, and the Create New Layer tab button to create an empty layer.
Double click on Layer 1. This will open the Edit Layer box. Type LegLockJoint in the Name field and click the Save button. This is how we rename a layer in Maya.
Now you can see that Layer 1 is now renamed as the LegLockJoint layer in Display layer group. To add objects to this layer, select both Leg lock joints at the same time, place the mouse cursor on the LegLockJoint layer and Right click.
After right clicking, a popup menu appears. Don’t release the mouse button, but drag it onto the Add Selected Objects command and then release the mouse button.
Now, both the selected side legLock_joints are added in the LegLockJoint layer. To check its functionality, click on the V icon to hide/unhide the added joints.
Again create a new layer for the clusters and Rename it ClusterHide layer and save it.
Zoom in and select all the spine clusters which we have created and linked so far. Select all the clusters, Right click and hold on the ClusterHide layer.
And drag and release the mouse button onto the Add Selected objects command to add the selected items.
Now, click on the visibility button (V) on the ClusterHide layer to hide the clusters.
Now, we will create the Clavicle (collar bone) controls, so select the wireframe curve box and duplicate it, then press W for the move tool.
Zoom in and view the shoulder portion. Hold down the V key and drag holding the Middle Mouse button onto the L_Arm_joint, then release the mouse button and V key.
Again change it in component mode by pressing the F8 key, reshape and place it as shown in the image below.
Now, with this duplicate curve box selected, hold down V and drag holding the Middle Mouse Button onto the R_Arm_joint.
After snapping the curve boxes, rename them as L_Clavicle_control and R_Clavicle_control and you also need to do a Delete History and Freeze Transformation (as was done in previous steps.)
Now, with the L_Clavicle_control selected, hold down Shift and select the L_ik_Clavicle. Now go to the Constrain menu again, and click on Point for the Point Constraint.
Do the same procedure for the R_Clavicle_control. Select the R_ik_Clavicle then apply a Point Constraint.
Now with both the R_Clavicle_control and L_Clavicle_control selected, press Ctrl+G on the keyboard to make a group of them. After grouping, you can see the grouped transform gizmo on the 0 position of the grid.
Now zoom and view the chest portion, then hold down the D and V keys and drag holding the Middle Mouse Button onto the Spine_4 joint to snap. Finally rename the group ClavicleGrp.
Select the ClavicleGrp, hold down Shift and select the Chest_control. Then press the P key.
To test whether the links are working properly or not, select the Chest_Control and rotate it randomly to see its poses. This works fine and it means we have done it correctly.
Press Ctrl+Z to undo any moves and save the file as Complete_Spine_Controls.mb and close it. In the next part of the tutorial we will see how to make controls for hands.
And that completes Part 4!