When the skeleton has been properly set up, you can bind the skeleton to the character's skin. Maya offers two direct ways to go about this: Maya also offers two indirect ways to attach a character to a skeleton: With smooth skinning, vertices (for polygonal character models) or CVs (for NURBS character models) of the skin might be influenced by the position of multiple joints. After setting up smooth skinning, you would go through each joint and adjust the weighting on its nearby skin. You can do this by numerically editing the weights in a spreadsheet or by visually painting the weights on the skin as a grayscale visual interaction. For rigid skinning, each skin point is moved by one joint only. Obviously, this process creates problems where joints bend because a crude implosion of the character mesh occurs there that is, the geometry attached to the bending joint moves with the joint, and the geometry where the joint attaches remains in place, creating a collision of CVs or vertices. Maya offers a rigid mesh smoother called a flexor to smooth the bent areas in this case. Lattice skinning uses lattice deformers, skinning their influence lattices. This approach has the advantage of making it easier to adjust how the character is deformed by adjusting the influence of lattice points. The lattice controls the areas of the mesh that might bulge or crease. The lattice can fine-tune these areas to create a realistic look of skin and muscles, while remaining at a lower level of detail, resembling a cage around the object. Wrap skinning works as a low-resolution cage around an object. It can be manipulated easily to deform the higher resolution object in cases such as bulging muscles. This deformer usually sits on top of, or wraps around, the deformable object. The advantage of this approach is that it makes it easier to connect directly animated low-resolution character models (for editing) to high-resolution models (for rendering) by allowing the low-resolution model to wrap deform the high-resolution model. Tutorial: Binding the Character to the Skeleton Next, you actually bind the character's "skin" the mesh of the marionette character to the skeleton. For this tutorial, you use the rigid binding approach, and add flexors to fix problems that occur at the character's bend points. On the DVD Chapter_12\ch12tut03.wmv |
Select the root of the skeleton by opening the Outliner (hotkey: Shift+O) and opening the Waist and transform1 objects to get to root, the skeleton's root joint. Next, holding down the Ctrl key, select the marionette character in the Outliner (hotkey: Alt+o). Bind the skeleton to the character with Hotbox | Skin | Bind Skin | Rigid Bind | option box. Click the Bind Skin button to apply. On the DVD Chapter_12\ch12tut02end.mb |
Try selecting the hand-control objects and moving the hands up in the air. You see a kind of "bunching" and pulling at the shoulder joint that doesn't look right (see Figure 12.12), but adding a flexor fixes this problem. Undo any position change of the hand. Figure 12.12. Inhuman bending occurs at some joints after rigid binding. tip Because you built this animation rig using boxes as control objects, you need to reset only your Translate values in the Channel Box for the control objects to return to their original pose. In other cases when a character is bound to a skin, you might need to get the character back to this neutral pose after having applied animation to the skeleton. Flexors, for example, should always be applied to the skeleton in its bind pose. If you need to get back to this pose, you can always select the skeleton's root joint and put it back into the bind pose by choosing Hotbox | Skin | Go to Bind Pose. Usually, you must disable IK solving first by choosing Modify | Evaluate Nodes | IK Solvers from the main menu to toggle this function on and off. To fix the shoulder, select the character's left shoulder joint. Now, choose Hotbox | Skin | Edit Rigid Skin | Create Flexor. In the Create Flexor dialog box, set Flexor Type to Lattice. In the Joints section, select only the At Selected Joints check box; don't select any options under the Bones section. In the Lattice Options section, enter 3 for S, T, and U Divisions, and click Create. A lattice appears around the shoulder. Leave the Create Flexor dialog box open. Test the flexor by moving the RightHand control cube around while in Shaded view. You should be able to see how the flexor adapts to the shoulder rotation and subtly warps the nearby marionette mesh, as shown in Figure 12.13. Figure 12.13. The added shoulder flexor smoothes the bending effect.
Make a new layer, name it Flexors, and then select the new flexor and add it to this layer. Turn off the MarionetteLayer layer's visibility. Select the character's right shoulder joint. In the Create Flexor dialog box, confirm that the settings are the same as before, and click Create. Leave the Create Flexor dialog box open. Repeat the previous step for the character's elbows, knees, hips, and ankles. Assign all the created flexors to the Flexors layer. The flexors are sized differently depending on the joint, as shown in Figure 12.14. Figure 12.14. The skeleton with flexors at all the critical bending joints.
Now, adjust the flexor settings. Toggle MarionetteLayer's visibility on. Select the LeftHand control cube and bring the arm to the character's side. Select the left shoulder flexor, and in the Channel Box, click the Creasing label and MMB-drag in the viewport to adjust this value in real time (Maya's virtual slider). After you see the effect, set this value to -0.4. Try the same process with the Rounding variable to see its effect. Leave this value set at 1.0. Put the hand back where it was by selecting the LeftHand control cube and setting its Translate X, Y, and Z to 0, 0,and 0 in the Channel Box. Set the right shoulder's flexor values to the same settings. Toggle visibility off for the flexors. Select all the control objects, with marionette's handle last. Then, choose Hotbox | Edit | Group | option box, reset the settings, and click Group. Any time you need to move the entire character to a starting position, now you can simply select the base ring named Waist, and press the up arrow to select the entire group of rings. You can then move it wherever you want, as shown in Figure 12.15. Figure 12.15. An overall handle added to the base of the character allows for fast positioning. Now that you've got the character bending the right way, you can create some animation and make use of the hand and foot control objects you created. When animating your own characters, sometimes you have to go back and fix skinning deformation problems that weren't evident until you posed the character in a position more extreme than in your previous tests.
|