Correcting Skin Problems
Exercise 3.3 Check the Deformation
The rabbit mesh in our test walk didn’t exhibit any particular problems, so we’ll use a different mesh this time. Once we’ve spotted any weighting problems, we can adjust the weights to make the mesh deform more correctly.
- Open the file DOG_MESH_BIPED_skin.max and play the animation.
The dog stretches all four legs in different directions.
- Navigate around the dog and you’ll see that there is a problem with the front legs.
- Go to frame 35 and arc-rotate around the dog.
What’s happening is that the left paw is being influenced by the movement of the right-front paw.
Adjusting Skin Envelopes
To correct this inappropriate influence, you can simply make adjustments to the offending envelope.
- Select the dog mesh. Then in the Modify panel, turn on Edit Envelopes in the Parameters rollout.
- Move the time slider back to frame 0.
- Click on each of the bone envelopes in the list to observe the size and orientation of each skin envelope. Can you find the
It’s the skin envelope for Bip01 R Finger2, which is bigger than it needs to be. Because it’s wider than necessary, it’s affecting some of the vertices that create the left front paw of the dog.
Changing the Radial Scale
To fix the weighting problem on Bip01 R Finger2, you’ll change the radial scale of the offending envelope.
You can change the size of an envelope’s inner and outer gizmos by clicking in the viewport on the dots that lie on the gizmo. Selecting any dot will let you directly move all of them using the Transform gizmo in the viewport. Or you can achieve the same result by going to the Envelope Properties section of the Parameters rollout and changing the Radius spinner.
- Go to frame 35, and select the dots on the right side of the Bip01 R Finger2 envelope.
- Use the Transform gizmo to decrease the radius. The envelope is now the correct size, but the vertices may still not return
to their correct position.
If the vertices in the opposite paw refuse to return to their correct position, there is another tool that will let you fix this problem.
- In the Weight Properties section click the Weight Tool.
- In the Parameters rollout, make sure Select Vertices is checked, then select the offending vertices in the viewport. The bones that influence those vertices will be displayed in a list in the Weight Tool window.
- Locate the Bip01 R Finger2 bone in the list and select it, then change its weight to 0 by clicking the preset 0 button. The stubborn vertices will now respond.
Changing the Envelope Length
The length of the envelope can be changed just as the radial scale can be. Every envelope has a gizmo at the center of each ball end of the capsule. By selecting this point, you can lengthen or shorten the envelope easily.
- Arc-rotate around the dog so you can see the back-left leg. With Edit Envelopes on select the Bip01 L Calf. (You can see that the envelope has been extended for this exercise.)
- Use the Transform gizmo to move the capsule end and change the envelope length. In the screen capture shown here, we’ve moved the envelope end downward, so that you can clearly see the point you need to select, without obstruction from the mesh or other bone objects.
- Reposition the end of the capsule to make the Bip01 L Calf envelope an appropriate length.
Rotating the Envelope
When a bone envelope is created, it is oriented to match its longest dimension. So a bone that’s wider than it is long can result in a capsule that needs to be reoriented. You can use the same point selected for changing the envelope length, to reorient the capsule. Simply moving the capsule end in any axis other than the one that’s the same as its length will result in the capsule’s stretching and rotating at the same time.
- On the Parameters rollout, select Bip01 Spine1 in the Bone list. This bone envelope that needs to be rotated.
- Select one capsule end and move it outside the dog’s body. Then move it downward until it’s under the belly.
- Select the other capsule end and move it so that the capsule is positioned vertically rather than horizontally. Reposition
the capsule ends (using several views) until the capsule is as shown in the adjacent illustration.
Capsules can be distorted by changing the radius of one end and leaving the other end alone. In this example, the dog’s belly is fat and wide, and the capsule needs a large radius to accommodate the extra girth.
Since this is 3D, it’s a good idea to observe the same envelope from another view. Looking from the left, in the adjacent pair of pictures you can see the dog envelope as it was originally created, and then after it has been adjusted.
- Select any point on the outer radius of the Spine1 envelope, and use the Transform gizmo to extend it. You want all the vertices within the belly to be influenced by the envelope.
Adding and Removing Cross Sections
You’ll next refine the shape of the capsule by adding more cross sections to the envelope. In the Cross Sections area, just click the Add button, and then click in the envelope wherever you want to add the cross section.
- Select the dog’s Bip01 L UpperArm bone.
- In the Cross Sections area, click the Add button, and then click in the center of the envelope to add cross sections.
Add three cross sections in the center. These additional cross sections will let you sculpt the shape of the envelope as necessary.
Mirror mode lets you establish a mirror plane and then mirror all the vertex weighting from one side of the biped to the other. You use the green/blue symmetry that’s built into the Biped system for copying and pasting. Either paste from the green bones to the blue bones (and vice versa), or from the green vertices to the blue vertices. Pasting vertices gives you the fine control you’ll need to perfect the skin weighting. Give it a try.
- Select an envelope on the left side of the biped, and move it so that it’s incorrect. For instance, select Bip01 L Forearm and move it entirely outside the mesh of the dog.
- In the Mirror Parameters rollout, turn on Mirror mode.
The mirror plane appears. Arc-rotate around the dog to examine the placement of the mirror plane. In the adjacent illustration, you can see the mirror plane dividing the dog mesh into two halves.
- Select all the green bones in the dog by dragging a selection rectangle in the viewport. The selected bones are highlighted in yellow.
- In the Mirror Parameters rollout, click Paste Green to Blue Bones.
- Exit Mirror mode. Check the envelope you messed up; it’s now corrected.
Adjusting the Head Envelope
The head envelope is often in need of adjustment. It often happens that your character mesh has a shape that is very different from the default biped mesh. If your character is a dog or dinosaur, for instance, it may have a long snout or extended jaws that don’t match the humanoid head that the biped comes with.
You can collapse the Bip01 object to an editable poly or editable mesh object, and then reshape the head object to more closely resemble the character mesh. Still, you’ll have to work on the head envelope to reorient and shape it to encompass the correct vertices. Use the same methods described in Exercise 3.3 to reorient and shape the envelope so that it surrounds the correct mesh vertices.
Sometimes you need to control the vertex skin assignment at a finer level than by simply using the envelope controls. To do this, you can assign weighting to the vertices; the weighting indicates the influence the bone will have on the vertices. A weight of 0 means there is no influence; a weight of 1 means there is complete influence by that bone’s movement over that vertex. 3ds Max 8 offers a fast Weight Tool that lets you select the vertices in the viewport and then quickly assign preset weights using the floating dialog. This makes it very easy to include or exclude troublesome vertices.
To use the new Weight Tool click the button with a picture of a wrench in the Weight Properties section. Then select the vertices and you will see all the bones that influence the selection. Select any bone in the list, then click the preset values to change the influences, or use the Set Weight spinner to get other values.
When multiple bones share influence on vertices, the multiple weights will always add up to 1.0. The Weight Tool helps you to see the bones that are in play and then quickly adjust the values for the weighting.
In the Weight Properties group of the Parameters rollout, you can also use the Exclude Selected Vertices and Include Selected Vertices buttons to affect the relationships of skin vertices and bone motion. If you like the weighting of the vertices, you can use the Bake Selected Vertices button to “bake” the weights. If you do this, changing the bone envelope won’t affect those vertices.
Weights can also be painted into the mesh. Use the Brush Presets to customize your paintbrush and then paint the weights directly onto the mesh in the viewport.
Copy and Paste Envelopes
Most characters are more or less symmetrical. As in nature, beings in the virtual environment appear to be designed along a central axis, with pairs of limbs and bones radiating from a core. You can save yourself a lot of tedious work by copying and pasting envelopes from one bone to another using the Copy and Paste buttons found in the Envelope Properties section. You can paste to one bone, or paste to all bones.
To see more than one bone envelope at once, turn on the Envelope Visibility button in the same section. Select the bone and click the button. The envelope will remain visible when you select the next bone. You can see as many envelopes as you like using this method.
Using ENV Files
It’s easy to spend a full day adjusting the weights and envelopes of a character—and all this hard work can be saved into a skin envelope file with the extension .ENV. It’s a good idea to do this, because you can then reload the .ENV file onto this biped if needed, or onto any other biped or skeleton made of Max bones. You’ll find the Load and Save buttons for skin files in the Advanced Parameters rollout. Make a habit of saving the ENV file separately from your Max file.
If you try to load a skin file onto a character with differently named bones, you’ll get a dialog that allows you to specify the copy-and-paste operation from bone to bone.