Building A Complete Human Character Rig In Maya, Global Control and Skinning
Today we’re bringing you the sixth and final part of the Complete Human Character Rig series where you've been learning how to construct a complex, fully realized character rig using Maya’s built in tool set. In the final part, you'll learn about finalizing Global Control and complete Skinning of the character to finish this advanced rig!
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
In this part of the tutorial, you will learn about finalizing Global Control and Skinning. This is the last part of the Character Rigging tutorial series. So, we will now start creating the Global Controls for the character. First open the "Complete rig man.mb" file which was saved at the end of the 5th Part of the tutorial.
Now, before we apply Skin Binding to the character's mesh and joints, we'll do a couple of more things to finalize the rig. So first zoom in and concentrate on the chest control (and also select the Chest_Control.)
Now, with the Chest_Control selected, hold down Shift and select the L_Arm_Control, then click on the Constrain menu and select Parent constrain.
Do the same thing for the R_Arm_Control too. Check the movement of Chest_Control and Hip Control, whether they move perfectly or not.
Now we have to create the Global control. First let me tell you a bit about the Global Control. Global control does scale the character uniformly according to the scene's dimension. Suppose, you have made a character who is a Gennie and you want to show that the Gennie can scale up and down his size anytime. In this case you need a Global Controller which can control the overall scaling and transformation attribute of the character.
For Global control, create a Circle Curve by going to Create > NURBS Primitives and then click on Circle.
With the circle curve selected, press the F8 key to convert it into vertex component mode. Now Select the vertices and re-shape the circle curve as shown in the image below. Now again press the F8 key to change it to Object mode.
Now, Rename the circle curve as "Global_Control" as shown in the image below. Keep this Global_Control at the X= 0, Y=0, Z=0 position and also don’t forget to apply the Delete History and Freeze Transformations commands.
Select all controls, except the Global_Control.
Now, press Ctrl+G to bring all the controls into one group, and rename it as "grp_All_curve_controls".
Next, we need to select all the IKs. So first Unhide all the hidden iks by clicking on the V tab in the layer panel.
Now select all the Iks one by one and press Ctrl+G to bring all the IKs into one group, and rename it "grp_All_Iks".
Now, select the Root_joint and press Ctrl+G to bring all the joints into one group, and rename it "grp_All_joints".
After making all the groups and rename them accordingly, select all the groups (grp_All_curve_controls, grp_All_Iks and grp_All_joints) and press Ctrl+G again.
Rename this new group as "grp_All".
Now first select the "Global_Control" and then select "grp_All". Then click on the Constrain menu and select the Scale constrain command.
With both the "Global_Control" and "grp_All" selected, again click on the Constrain menu, and select the Parent constrain command.
After applying the Parent and Scale constrain, check the scale and transform with the Global Control. You will see that the Scaling and Transforming of all joints and controllers together are now being controlled by the Global_control.
Also create one new layer and rename it as ‘Iks’ and then select all the Iks and add them into this layer, and hide the layer after that.
Now we're done. so save the file as "Complete rig man.mb".
After finishing all the controls, we will now apply the Skin command to bind the character mesh with the joints. So first unhide the ‘Man Mesh’ in the Layer Panel.
Now, in the View Panel menu, click on the Shading menu and then select the Wireframe radio button to convert the mesh into wireframe.
Now zoom in to the hip area, and first select the Root_joint and then select the Char mesh.
With the joint and mesh selected, click on the Skin menu. Then click on Bind Skin and finally click on Smooth Bind.
Now in the Panel Menu, click on Shading and then select the ‘Smooth Shade All’ option, to turn the mesh into shaded mode.
Now, select several controller curves and move them randomly to create a random pose. This is just to check the effect of the ‘Skin’ applied to the mesh. After checking, select all the displaced controllers and in the Channel Transform type a value of 0 for all X, Y, and Z axes or use the undo command to reset it to the initial pose.
You might have noticed that the character mesh was not deformed properly in some places. So, to rectify the problem, we will have to adjust the skin weight in a proper manner.
For setting the skin weight influence on the joints and the mesh, first select the mesh, click on the Skin menu and then select Edit Smooth Skin. And then click on the Paint Skin Weights Tool option box.
This opens the Paint Weight Tool settings box on the right side. You will find numerous options to set the skin weight here.
When you select a joint, you can see the skin weight influence by the white patch around that joint. For an example, if you select the L_Thigh_joint, you can see the weight influence around the left thigh joint.
Now, with the L_Thigh_joint selected and being in default paint mode, select the Replace radio button and adjust the Opacity value as needed.
Now, drag the Paint Brush as shown in the image and replace the paint weights of the joints.
If needed to add influence weights, enter a value of 0.5000 in the Value box and drag the brush on the desired area to add influence weights to the mesh.
To increase and decrease the brush radius size, hold down the B key and click and drag the Left Mouse button in between the red brush circle.
When you drag the Paint Brush tool on the mesh to add or replace influence weight, it doesn't apply the regular value to the mesh. So do one thing, turn on the Smooth radio button and click on the Flood button. Now you will notice that the paint value is mixed up with regular weight.
Do follow the same procedure with the L_knee_joint . After bending the knee, the mesh should look like the image below.
Now zoom in on the hand area. Select the L_Wrist_Control. In the Channel Box, change the value of the middle finger. You will notice that the middle finger is not deformed properly. This is because the influence of the skin weight is not applied properly.
Now, we will use one more option to add and reduce the weight value i.e numerically. So, first select the mesh and change it into components mode (press the F8 key). And also change it into wireframe mode (In the Panel menu, click on Shading and select the Wireframe command or press the 4 key.)
Carefully select only the middle finger vertices. Not all the middle finger joint vertices are deformed well, because some influence values have shifted to the ring finger joint too.
Selected vertices and then click on the Window menu, then select General Editors and then click on Component Editor.
The Component Editor opens. Here click on the Smooth Skin tab. You will see all joints below.
Now, slide the navigation slider on the bottom toward the right side. You will see the total values are 1 which means each vertex point has a 100% influence weight value, indicated by the 1.
If you select the L_Middle joints influence weights, you will notice that the L_ring joints are also showing some values which should not be there.
So, we have to adjust the values here. Select all vertices values for the L_Ring_1 joint and put a value of 0 in all the boxes.
Just like this, select all vertices values in the L_Ring_2 joint column and enter a value of 0 in all boxes.
Repeat the same steps for the L_Ring_3 and L_Ring_4 joints also. Then minimize the Component Editor window. You will see that some vertices are still not arranged properly according to the middle finger joints.
Again maximize the Component Editor window and check all joints if somehow their weights are shifted to other joints or not! If you're not satisfied, then select the improper weights of the concerned vertices and then add the values manually.
After adjusting the weight values, the part of the mesh will be deformed properly. The setting of the skin influence weight values is very important and also difficult and time consuming work. So do it carefully while taking care of the anatomy of the character.
Continue to follow both the options: Paint tool or Component Editor as per need to adjust influence weight.
As per poses of human anatomy, set skin weights on all body parts. So this is the way you can skin a character and make it ready for the animation.
Hide all controller curves and joints, then press the 3 key to see the smooth and well deformed mesh in the view port. I hope you have enjoyed this last part of the tutorial!
And that completes the series!