Complete Human Character Rig In 3D Studio Max, Part 5 Skinning
In the 5th and final part of the Complete Human Character Rig In 3D Studio Max series, you'll finalize the process of creating the rig's many controllers and move onto 'skinning' the character. Soni will walk you through the process of weight painting and fine tuning influence values in order to achieve proper animation friendly deformation of the character's mesh.
Also available in this series:
- Complete Human Character Rig In 3D Studio Max, Part 1
- Complete Human Character Rig In 3D Studio Max, Part 2
- Complete Human Character Rig In 3D Studio Max, Part 3
- Complete Human Character Rig In 3D Studio Max, Part 4 Hand & Finger Controls
- Complete Human Character Rig In 3D Studio Max, Part 5 Skinning
Let’s open the ‘complete upper body controls.max’ file which we saved in the last part of the tutorial.
Before starting the next process, first we will check the newly created hand controls for proper freezing and linking. So if you have completed the left side hand controls, then select all the fingers controls and by pressing Alt + Right-click, choose the Freeze Transform command.
Now, select all the fingers control curves and then enable the Select and Link button, then drag onto Bn_L_Hand01 to link with the hand bone.
Now select CtrlC_L_Thumb01 and Alt+Right-click, and then select ‘Curve Editor’ in the right click menu.
In the Curve Editor, select Position X, Y and Z, as well as Scale. And then Right-click and choose the Lock command in the fly out menu.
In the same way, lock the rest of the finger controls’ Position X, Y, Z and Scale properties in the Curve Editor one by one.
Now, follow the same process for the right finger controls linking and locking also.
Now, we will create one more control. This will be the Global Control. So jump into the Top view and then go to Create > Shape > Line, and draw a rectangle or square shape as shown in the image below.
Now being in the Perspective view, select the newly created curve shape and Alt+Right-click and then choose Freeze Transform in the fly out menu. Rename this curve as "Global Control".
Now, select CtrlC_COG01, CtrlC_R_Hand01, CtrlC_L_Hand01, CtrlC_R_Elbow01, CtrlC_L_Elbow01, CtrlC_R_Knee 01, CtrlC_L_Knee 01, CtrlC_R_Leg 01 and CtrlC_L_Leg 01 and then with the Select and Link tool activated, drag the selected controllers onto the Global Control. This way the Global Control becomes the parent of all other controllers.
The reason to create the Global Control is so the animator can control the position and scaling of the character and it's entire elements very easily according to the scene setup.
Now, we’ll finalize all the control curves for freeze transform and arrange them in the Layer Manager. So click on Layer Manager to open the Layer Manager Window.
In the Layer Manager window, hide all created layers to see which elements are not yet added into a particular layer.
As you can see there are a couple of control curves which are yet to be added into particular layers. So select all these control curves, then select the Curve Controls layer in the Layer Manager window and then click on the (+) (Add Selected Object button) to add them into the selected layer.
Next, select the point helpers also and then with the Other Hidden Objects layer selected, click again on the (+) (Add Selected Objects button) to add them into the selected layer. We will not add the Global Control into any layer, but will keep it independent.
Now, the final status will look like the image given below. Close the Layer Manager window.
Before moving ahead, we need to Unfreeze the Character Mesh layer first. So with the Character Mesh layer selected, click on the Unfreeze button in the Layer Manager window. The Character Mesh will be unfrozen. Now close the Layer Manager window.
Now, we have to apply a Skin modifier onto the character mesh for proper deformation with the bone structure. So first, select the character mesh and then Right-click and select Object Properties.
In the Object Properties window, turn off the See-Through option and then press the OK button to close the Object Properties window.
Before applying the Skin modifier, first select the character mesh and click on the Utilities panel, then click on Reset XForm and then finally click on Reset Selected.
After clicking on the Modify panel, you will see the XForm utility here. The character mesh is showing a bounding box, which will give support on both sides during skin weight mirroring.
Now go to the Modifier list and choose the Skin modifier to apply skin to the character mesh.
With Skin modifier selected, click on the Add bones button to open the list of objects window.
It will open the Select Bones window.
Here type "Bn" (minus the quotes) in the Find box to select all the bones which start with the "Bn_" initials. Then click on the Select button to add the selected bones.
All the selected bones are now in the skin group.
Now just for checking purpose, drag the hand control to make a random pose. You will notice the character mesh deforms according to the joint pose.
After testing the skin with the bones, Alt+Right-click on viewport and choose the Transform to Zero command.
The Transform to Zero command resets the transformation of the hand control, and you will see the character return to skin pose mode or a T pose.
Now, for checking the envelope influence on skin weight, select the character mesh and then Right-click on ‘Shaded + Edge Faces’ and turn off the Edged Faces option.
Now, with the character mesh selected, expand the Skin modifier stack in the Modify panel. You will see the Bn_Head01 bone is selected and it displays an wireframe Envelope on the character's head. Now we can adjust it according to the mesh area of the particular joint selected.
For adjusting the Envelope wire, choose any of the points and drag them with the Move tool, try to compact (reduce) the covering area up to the head part only.
Here you can see compacting the envelope wire affects the influenced area also. Just like this we have to adjust all the bones influence weights as per requirement.
Next, select the Bn_chest01 bone in the bones group and adjust it's envelope area, just like we did in the previous step.
Just like this with the Bn_L_Thigh01 bone selected, adjust the envelope weight for the left leg also. This is a very time consuming process for setting proper skin weights on the desire part, so be patience.
Now, we are going to set proper envelope skin weights on the character mesh. So open the Layer Manager and Hide the Bones and Point helper layers, then close the Layer Manager window.
Now click on the Shaded option in the top left of the viewport, and then check on Edged Faces in the fly out menu to show edges on the mesh.
Now, select the left foot control and drag it upward. You will see here the mesh is not deforming properly around the knee. This kind of situation / problem will keep coming up while doing skinning, so let’s see how we can solve such problems.
To start with this process, first select the left foot control curve and then click on the Auto Key button while keeping the time slider at frame 0.
Now, move 10 frames ahead on the timeline and drag the left foot control a little bit up to add a key frame for animation.
Now, turn off the Auto Key button and now we will start the next process of properly refining the applied skin weight influence.
So select the character mesh and then click on Edit Envelopes. You will see the envelope lines become grey inside the character mesh.
Now, turn on the Vertices option. After doing this you can select vertices for influence weight adjustment.
Now, select the vertices which are not properly deformed. So adjust their influences properly. Here you will have to make that decision yourself according to your case.
With the vertices selected, increase the Abs. Effects value until the vertices are amended properly as shown in the image below. It is a quite easy and useful process for adjusting influence weights. I like this process very much.
Again select some more vertices around the backside of the knee area and then do same as we did in the previous step.
Adjust the Abs. Effect value of the selected vertices to correct the bad deformation of the mesh.
There is another option to adjust influence weight. In this image, you can see the left side bone envelope’s influence is affecting the right side mesh until a certain extent. We will need to adjust it properly.
For this, select the right leg’s vertices and click on the Weight Tool button to open it's settings box.
Here you can see that we have selected the left leg bone, but it shows some influence on the right leg also. So select the right side vertices and in the Weight Tool settings box, click on 0 value to remove the influence from the right side leg.
Now you can see there is no more influence on the right leg when the left leg bone is active. Now close the Weight Tool settings window.
We can also adjust skin weight with the Weight Table. Select a vertex of the left thigh, and click on the Weight Table button.
It opens the Weight Table window. Here you can see all the bones and their weights on the mesh vertices. Since we’ve selected only one vertex, and it shows its weight value is 0.960 on Bn_L_Knee01 bone, which is very high. Ideally it should be less.
So drag the slider to check the minimum weight value applied on the Bn_L_Thigh01 bone. Here it shows it's value is 0.020 for Bn_L_Thigh01, which is ideally very low. So we need to enhance it.
Now, increase the value to around 0.200 for Bn_L_Thigh01. In the result, you will notice that the selected vertex now has a good influence value. So this is another way to adjust the skin weight values.
Now, we will refine the left hand. So select the left hand control and repose it as shown in the image below. Here you will notice several bad deformation of the mesh.
To rectify the problem, first select the Bn_Spine03 bone envelope. Here you will see some unwanted influence applied on the vertices of the left arm.
So select the unwanted vertices and set their Abs. Effect value to 0, and then see the result. This process resolves the issue.
Now, let’s work on the Elbow. Follow the same process as we did in the previous step.
Continue following the same process for other defective area as well. Now we have to correct the head and neck parts.
Now select the neck bone influence capsule. You will notice that almost half of the head is affected by the neck bone influence. So we have to refine this too.
Now, select the upper head vertices. and set their Abs. Effect value to 0.
Now the head part is unaffected by the influence of the neck weight.
Just like this, keep refining all the other defective areas for proper influence weight distribution.
By following the same method, refine the left hand and fingers too. Next, we will mirror the weight to the right side.
Before we start mirroring the weights, we have to first delete the animation key frames we made on the controllers
Select the left hand control curve and then Alt+Right-click, choose Delete Selected Animation. This action deletes the key frames made on the hand controller. Just like this, follow the same process for deleting all the controllers’ animation key frames which were created earlier.
After deleting all the animation key frames, turn off the Edge Faces option.
Now, with the character mesh and Envelope mode selected, click on Mirror Mode. You’ll notice that half the character's verticies are showing in green and the other half are blue.
Since we’ve already refined the left side which is denoted by the blue color, we need to click on the Paste Blue To Green button to transfer the left side (blue) weight to the right side (green).
Now your character rig and skin is ready for animation. Give it a random pose to check the deformation of the mesh. If you find any problem in skinning, you can refine it again as per your requirement.
Finally, save the file as "Complete Character.max". Hence the Human Rig series ends here. I hope you have enjoyed this tutorial.