Skinning in 3ds Max Animation with Biped
- Nov 22, 2006
In order for the biped’s animation to move your character, you have to associate the character mesh with the biped’s skeletal parts. This is accomplished through a process called skinning. Just as our own skin is moved by the motion of our bones and muscles, your mesh character is animated by means of a skinning modifier that deforms the mesh according to the rotation and position of the objects in the biped hierarchy. 3ds Max 8 comes with two modifiers that can be used for this purpose: the Physique modifier and the Skin modifier.
Associating the Mesh
So far, you’ve made a biped and fitted it inside the mesh. But if you animate the biped as it is, it will simply walk away and leave the mesh behind. To make the biped control the mesh and move it around, you have to associate the biped with the mesh.
After the biped is correctly associated with the mesh (skinned), each part of the biped acts just like a bone inside a body. For example, when the lower arm bone moves, the lower arm portion of the mesh moves with it. In this way, each part of the biped acts as a bone. The biped is, in effect, a collection of bones linked together automatically to save you work.
At the time the mesh is skinned, vertices on the mesh are associated with one or more bones via a weighting system. A capsule-shaped envelope is created around each bone based on the bone’s size. Vertices that fall within a bone’s envelope receive some weight from it, meaning they are moved by it. A vertex that falls within the capsules of more than one bone receives appropriate weights from each bone.
In this chapter, we’ll be using only the Skin modifier. But first let’s take a brief look at the history of its predecessor, the Physique modifier. Originally, the whole Character Studio plug-in had to be purchased separately. When the Physique modifier was first released in 1995, it was a very sophisticated and ambitious program that allowed you to control the biped’s influence on the mesh. Physique has controls for including and excluding vertices from bones; a means to create muscle bulges in arms and legs according to the angles between bones; and “tendons” that extend the influence of the bones to other parts of the biped.
Professional animators complained that they needed a skinning mechanism within 3ds Max—one they didn’t have to pay extra for. So the Skin modifier was created and delivered for free as part of the 3ds Max software. At first it lacked some of the sophisticated features of Physique, but over time it has continued to improve. Meanwhile, development has stopped on Physique. Like Biped, Physique is now included with 3ds Max and is essentially the same software that originally shipped, with a few bugs fixed.
In addition to skinning, the Skin modifier also allows the deformation of character-mesh objects by associating the bones with mesh vertices. This is done using the capsule-shaped envelopes, which control specific vertices.
The Skin modifier also includes the ability to define bulges based on the angles between bones. However, unlike Physique, Skin allows you to mirror the bone-vertex assignments from one side of the body to the other.
Skin Morph and Skin Wrap
The Skin Morph and Skin Wrap modifiers have been included with 3ds Max since version 7. Skin Morph allows you to fine-tune the way vertices respond, based on the angles between bones. It provides a more controlled method for creating muscle bulges, and for keeping elbows and knees from crimping when the angle between the bones is very sharp.
The Skin Wrap modifier expands on the Skin modifier, so that you’re not limited to having bones drive the animation. Skin Wrap lets you use the vertex movement of a low-poly mesh to drive the animation of a high-poly character, for example. This means you can set up the animation with a low-poly mesh and fine-tune it with a faster playback speed before switching to the high-poly mesh for the final rendering.
Another use for Skin Wrap is to employ spline objects to drive the animation of a mesh. For example, you could animate a spline’s vertices to mimic a wagging-tail motion, and then use Skin Wrap to make a mesh follow this motion.
Skin Wrap works at either the vertex- or face-deformation level. It offers a Mirror mode, just as the Skin modifier does. You can also “bake” the animation into the vertices so that the mesh retains its deformation independently of the controlling mesh or spline.
Preparing to Use Skin
Before applying Skin to a mesh, make sure the bones fit nicely inside the geometry. The initial envelopes, and thus the vertex weights, depend on the size and orientation of the bones. If the bones inside the mesh are too skinny, the envelopes will be too small, and the vertices will not become weighted to any of the bones.
Both Physique and Skin are best applied to objects rather than groups. If your objects have been grouped, we recommend that you ungroup them before applying Physique or Skin. In fact, for any character animation it’s wise to make your own hierarchies and avoid the use of groups entirely, whenever possible.
Each weighting envelope is a capsule with an inner and outer gizmo. The vertices within the inner gizmo are completely affected by the movement of the bone. The vertices between the inner and outer bounds are weighted, or somewhat affected by the bone movement. The vertices that fall outside the gizmos are not at all affected by the bone movement.
You need to adjust each envelope so that it only affects the required portion of the mesh. You don’t want the movement of the head, for example, to influence the arms or even the shoulders. You can do this initially when you associate the biped and mesh, but you’ll also need to revisit each envelope after creating a test animation that shows you how the bone movement is influencing the mesh.
The general workflow of skin vertex weighting is to go through the bone envelopes and adjust the radius of each end of the capsules, as well as reposition the capsule ends to fit within the length of the biped skeletal bones. At this time you can also add additional cross sections to the envelopes to allow for finer control. Occasionally you will need to rotate the envelopes if they have been incorrectly oriented. This happens when the bones are wider than they are long.
In 3ds Max 8 there is a new command in the Skin modifier called Weight All Vertices. This command is turned on by default, and it ensures that every vertex in the mesh will be assigned to at least one bone object. In previous versions of the software, some vertices in the toes or fingers very commonly remained unassigned, requiring manual assignment to some bone. So keep Weight All Vertices turned on and you’ll save yourself a lot of work; look for it near the bottom of the Advanced Parameters rollout.
Exercise 3.1 Associating Biped and Mesh
In this exercise, you’ll associate a biped and its fitted mesh, and then check the envelopes for correct size and orientation.
- Load the file Rabbit_start_skin.max from the CD. Here you can see a rabbit mesh in the typical DaVinci pose, with arms spread out horizontally away from the sides of the body and feet slightly apart as well.
- Select the mesh then right-click and choose Properties to open the Object Properties dialog. In the Display Properties group,
turn on See-Through and then click OK.
Now the mesh is transparent. The biped is still hidden.
- Right-click again and choose Unhide All from the right-click quad menu.
Now you can see the biped within the rabbit mesh.
- Select any part of the biped and go to the Motion panel.
- On the Biped rollout, turn on Figure mode.
Notice that no change occurs in this mesh. The rabbit biped hasn’t been animated in this file. (Often the biped will jump to a new location when Figure mode is turned on.)
- Select the mesh of the rabbit. The object is named rabbit_lr.
- On the Modify panel, click the drop-down arrow for the Modifier list and choose Skin. This adds the modifier to the mesh object.
- To add the biped objects as bones, go to the Parameters rollout. In the Bones group, click Add.
- On the list that appears, click All. Holding down Ctrl, click the Bip01 root object to remove it from the list. Then click Select.
- In the Parameters rollout, click Edit Envelopes.
Bip01 Tail (at the bottom of the list) is selected and its envelope highlighted in the viewport.
- In the list, highlight each biped object to display its envelope in the viewport. Notice that some envelopes are relatively small, and some are very large.
- Save your file as Rabbit_skin.max.