Additional Smooth Skin Binding Techniques

Generally speaking, the binding process is the same for both NURBS and polygon surfaces. To bind subdivision surfaces, however, you must be aware of some differences. When binding subdivision surfaces in polygon proxy mode, for instance, you have to be careful to select the right node for binding. If you just select the proxy hull to bind, you actually bind both the polygon proxy node and the subdivision surface node. This results in a double transform when you animate your character controls, causing your skin to come out of its proxy hull (see Figure 4.38). To avoid this problem, make sure you select only the polygon proxy node as the skin you want to bind. The easiest way to do this is to use the arrow keys after selecting the surface in polygon proxy mode. Just click the Down Arrow key, and then click the Left Arrow key, to get to the proxy node. You can tell you are on the proxy node because the proxy hull becomes highlighted and the subdivision surface becomes pink colored. When the proxy node is selected, you can Shift-select the joints you want to bind.

4.38. Make sure you select the correct node when binding a subdivision surface or you will get a double transform.

graphics/04fig38.gif

You can also choose to bind in standard mode, which only binds the subdivision surface node. Keep in mind, however, that you can only bind the level 0 of a subdivision surface, and you cannot switch back to polygon proxy mode after binding. To manually adjust weights in the Component Editor, make sure you are selecting points on level 0.

Instead of binding the subdivision surface directly, you may want to try binding the subdivision surfaces indirectly through a wrap deform. To do this, you need a duplicate of your polygon proxy or level 0 subdivision surface. The idea is to do all your binding, weighting, and animating on a low-resolution polygon version of your skin, and use a wrap deformer to make it drive a high-resolution subdivision surface version of your skin. When doing this, make sure your subdivision surface is in polygon proxy mode and use the arrow keys to select the polygon proxy node. Then Shift-select the low-resolution polygon skin and choose Deform, Create Wrap graphics/shadebox1.gif.

Set the Weight Threshold option to 1, and turn on Limit Influence Area to Use Max Distance. Then set the distance to a very small number, such as .02. Setting this saves memory when calculating the wrap deform. As long as you are using a low-resolution polygon that is very similar to the polygon proxy on your subdivision surface, you can set the Max Distance value very low. Increase the number a little if the two surfaces have differences in their point structure. For instance, your low-resolution polygon skin does not have to contain details that will not be animated, such as a belly button or nipples on a torso (see Figure 4.39). However, you may want your final model to contain these details. So the point structure may be slightly different in these areas, and you must increase the Max distance value to make the wrap deform control the additional points.

4.39. When driving a subdivision surface skin with a polygon wrap deformer, you can leave out nonanimated surface details such as a belly button on the bound polygon skin.

graphics/04fig39.gif

After the wrap deform is created, you can bind the low-resolution polygon skin to the appropriate skeleton joints. All weight painting is done only on the low-resolution polygon skin. When you move your character controls, you should see both your polygon and subdivision surface skins deform in the same way. Then, to speed up your system when animating, hide the subdivision surface skin. You can even turn off thewrap deform by setting the Envelope channel on the wrap deformer node to 0. Or, you can even wait until after animating the low-resolution polygon skin before making the wrap deformer connection. As long as the character can be returned to its default pose at frame 0, you can wait until you are ready to render before adding the wrap deform.

Another way to improve the deformations created by skeletons on a smooth bound skin is to assign a lattice to the skin. Sometimes skeletons cause problems on the deforming skin that even manual tweaking of the weights won't fix. One such area that usually has this problem is the forearm when it twists to turn the wrist. Inside a real forearm, the muscles wrap around the radius and ulna bones in a complicated manner that is difficult to emulate in a computer-generated character. After you bind your character's skin, you may notice that your character's forearm collapses when you test the channels that drive the arm turn joint. Adjusting the weights so that the skin is controlled more by the arm turn joint than the radius and ulna joints can reduce some of the problem. However, it is sometimes necessary to add a lattice to counteract and smooth out the twisting of the forearm. A good alternative to using a lattice is to drive the components of several influence curves that are added around the forearm.

Exercise 4.6
Placing a Lattice Around Your Character's Forearm

In this exercise, you create a lattice around your character's left forearm. Do this after you have finished binding and adjusting the weights of the arm influences. Make sure that the lattice is detailed enough to correct any problems in the arm geometry when the forearm twists.

  1. Begin by selecting in component mode the skin points from slightly below your character's left elbow to the left wrist. If you have multiple surfaces, Shift-select all the surfaces involved, and switch to component mode to select the appropriate points. Then create a lattice by choosing Deform, Create Lattice graphics/shadebox1.gif.

  2. In the resulting options box, set the Divisions option to 3 3 3. Turn on the Local Mode option, and set the Local Divisions option to 2 2 2. You should later adjust these numbers as needed in the Channel box. Turn on the Positioning option to center the lattice around the selected points, and turn on the Grouping option to parent the lattice and base together. If the lattice doesn't come up as desired around the points, re-apply the lattice with this option turned off, and position the lattice group manually around the forearm. Leave the Parenting and Freeze Mode options turned off.

  3. In the hypergraph view, parent the lattice group node under the left lower-arm joint. This ensures that the lattice follows the arm as it moves. It is important that both the base and the lattice stay together, which is why you grouped them in the creation options.

  4. Drive the lattice points in the same way as muscle influence objects. Just load the points into the Driven field of the Set Driven Key options box, and Shift-select their positions. Load the left-arm's turn joint X rotation as the driver. Then set driven keys for the forearm poses, using the lattice to fix any surface twisting problems (see Figure 4.40). When finished, do the same for your character's right forearm.

    4.40. You can place a lattice on the forearm and drive the components on the lattice to fix deformation problems on the skin.

    graphics/04fig40.jpg



Maya Character Creation. Modeling and Animation Controls
Maya Character Creation: Modeling and Animation Controls
ISBN: 0735713448
EAN: 2147483647
Year: 2003
Pages: 75
Authors: Chris Maraffi

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net