Creating Advanced Face Controls

The face is the most complex area on the human body, and as such, requires some special considerations. To create believable face expressions, you must be able to control all the subtleties created from facial muscles flexing. The problem with using only blend shapes is that there is a moment in the middle of a morph between shapes when the face isn't moving like a real face. Even adding in-between shapes doesn't completely fix this problem. On the other hand, using only influences on the face is both time consuming to pose and can use a lot of system resources. Usually, it is best to use a combination of these two methods to create levels of control over posing the face. The goal is to have a set of high-level controls that create overall face poses, while also having a complete set of low-level controls for making asymmetrical variations in posing for all the areas of the face.

Mimicking the Muscles of the Face

The human face is composed of lots of little muscles that surround each eye and radiate out from the mouth. To create influences that mimic the main face muscles, you must know where the muscles originate, and where they are inserted. The origin point is where the muscle flexes from, while the insertion point is what is moved when the muscle flexes. In a real human body, the insertion point can be on bones, other muscles, or skin. In the face, most of the insertion points are moving either the jaw bone, other muscles, or skin. Using an anatomy book as a guide, try to draw the face-muscle skeletons so that they start at the correct origin points, and end at the correct insertion points (see Figure 5.18). Then to animate the face skeletons, you primarily set keys on the X scaling of each muscle skeleton.

5.18. Use an anatomy book as a guide to draw each muscle skeleton from its correct origin point to its correct insertion point.

graphics/05fig18.gif

No matter how good a job you do of drawing your character's main face-muscle skeletons, when you bind them you will find they do not produce exactly the results you want. They may produce a pretty good result, but to get really good poses in the skin of the face requires that you have even finer controls. One technique you could use to get control over smaller areas of the face is to assign single-joint skeletons to the face. By choosing the Joint tool, you can hold the V key down to snap the joints directly to the face skin. Then press Enter on the keyboard to draw only one joint. You can place as many of these single-joint skeletons on your face as you need. Draw them so that they contour wrinkle lines and in places where the skin needs to be smoothed or compressed during animation (see Figure 5.19). Make sure you place the joints in all the areas of the face.

5.19. Creating single-joint skeletons that are child to the main muscle skeletons is a way to achieve finer control over areas of the face.

graphics/05fig19.gif

Although the main muscle skeletons drive the muscle flexing of the face, they should not be assigned to the skin as deformers. Instead, assign the single-joint skeletons to the face skin. To make sure the single-joint skeletons move when the main muscles are scaled, make each of the single-joint skeletons child to the closest main muscle skeleton. Place a couple of group nodes between each main skeleton and its single-joint children to keep a bunch of bones from being drawn between them, and to make their center orientations more standard for setting driven keys.

Parenting this way enables you to flex large areas of the face by driving the main muscle skeletons and also drive the single-joint skeletons to have finer control over each area of the skin that the main muscles are affecting. Create custom face-muscle channels on an empty group node to drive both the main muscle skeletons and single-joint skeletons in specific areas of the face. Name the channels something descriptive, such as ltInnerBrow, to raise the middle of the brows, and name the group node FaceMuscles. Then create the same muscle channels on the Head box, as well as high-level face expression channels, such as a happy channel. Because you can have multiple drivers for each muscle channel, make low-level and high-level muscle channels on the Head box drive the same channels on the FaceMuscles node (see Figure 5.20). For instance, a happy channel should drive all the muscle channels on the FaceMuscles node that produces this high-level expression, including a lowerLip channel. In addition, a separate lowerLip channel on the Head box should drive the channel with the same name on the FaceMuscles node. In this way, you can create both high-level pose controls and low-level muscle-tweaking controls for your character's face.

5.20. On the Head box, create both high-level pose channels, and low-level muscle channels that drive similar muscle channels on a FaceMuscles node.

graphics/05fig20.gif

Tweaking Skin Deformations with Blend Shapes

The reason you use single-joint skeletons in the preceding section, instead of driving the points of the skin directly, is that skin points are constrained by the skinCluster node. When you try to set driven keys on the points of a bound skin, they often don't move in a predictable manner because of conflicts with the bind. Assigning small sections of the skin to single-joint skeletons is a way to get around this problem and thus improve the deformations created by the main muscle skeletons. Another way to improve the deformation created by the main muscle skeletons is to use skeletons to drive blend shape tweaks on the skin.

Unlike the preceding technique, the main muscle skeletons should be bound and weighted to the head skin. You also should create some custom channels to drive the X scaling of multiple muscle skeletons to create basic flexing on the face skin. Then you want to use blend shapes to improve the muscle skeleton deformations for each area of the face. When using a leftSmile channel to drive muscle skeletons to create a smile on one side of the mouth, for example, there may be problems with forming a good smile line and dimple (see Figure 5.21). So you want to use a blend shape to tweak the main skin deformation to create these details.

5.21. Even though you can use skeletons to make part of the face flex, you may need to tweak the deformation with a blend shape to create details such as a good smile line and dimple.

graphics/05fig21.jpg

To create the blend shape, first duplicate the main head in its default position, but don't move it anywhere. Make sure you unlock its channels by right-clicking them in the channel bar, and then choosing Unlock Selected. Then delete all history on the new head copy, and bind it to the face-muscle skeletons in the exact same way you bound the main head. To make sure they both deform in the same way, copy the weights of the main head to the copied head by selecting the main head, shift-selecting the copy, and choosing Skin, Edit Smooth Skin, Copy Skin Weights. When they are deforming exactly the same, hide the main head so that you can see only the copy, and set your muscle channel that controls one side of the face to create a smile. At this point, you want to create tweaks on the head copy to create a good smile line and dimple, but you run into the same problems as previously mentioned about moving points on a bound skin.

To be able to tweak your bound head copy without interference from the skinCluster node, you must reorder the deformers. Right-click the copy, and choose Inputs, All Inputs. In the resulting list, notice that because the skinCluster node is at the top of the list, it is evaluated last on the skin. You must change this order to be able to create tweaks on the skin in addition to the deformations that occur from the bind. Do this by just using the middle mouse button to drag the skinCluster node below the tweak node. Then move points to create a good pose for the smile line and dimple (see Figure 5.22).

5.22. Reorder the skinCluster and tweak nodes to be able to model a good smile line and dimple on the bound copy of your head.

graphics/05fig22.jpg

After you have tweaked the shape of the copy so that it looks good, set the muscle channel to 0 to set it back to the default pose. This time, however, the area that was tweaked on the copy retains the changes because they were done on top of the skeleton deformations. With the muscle skeletons in their default position, entirely remove the bind from the head copy, which makes it ready to be used as a blend shape tweak target. Move the tweak head out to the side so that it isn't obscuring your main head. Then unhide the main head, and create a blend shape between the main head and the tweak head. This process creates a blend shape node that has a channel for the tweak. Finally, hide the tweak head, and set driven keys on the blend shape tweak channel using the same muscle channel that is driving the muscle skeletons. You should drive the blend shape tweak channel so that raising the muscle channel should raise the tweak channel from 0 to 1. This should create the desired pose using a blend shape to tweak the skeleton deformations.

You can create as many of these muscle tweaks as needed, adding each one to the same blend shape node. You can also drive the blend shapes with the skeleton rotations directly, instead of using the muscle channels as drivers. Either way, using this technique enables you to create fine controls for each area of the face. Create multiple channel drivers as mentioned previously to create a full set of high-level and low-level pose controls. In addition, you can use this technique in other parts of your character's body to improve skeleton deformations. For instance, you can use it on an arm to remove intersection problems and create muscle flexing when the arm bends (see Figure 5.23). You can also use it to improve the lower-arm deformation when the forearm twists. In most cases, you want to drive such blend shape tweak channels to occur automatically when the skeleton joints rotate.

5.23. You also can use blend shape tweaks in other areas of your character's body to automatically improve and enhance skeleton deformations.

graphics/05fig23.jpg

Exercise 5.3
Create High-Level and Low-Level Face Controls

In this exercise, finish creating your face controls as needed by adding more accurate muscle joints, single-joint skeletons, or blend shape tweaks. Then create custom channels that produce both high-level face poses, and low-level asymmetrical variations in the mouth and eye areas.

  1. Finish your character's face controls by adding some muscle skeletons to the head skin. Either do this by assigning single-joint skeletons that are child to the main muscle skeletons of the face, or assign the main muscle skeletons directly, and adjust their effect on the skin with blend shape tweaks. The ultimate goal is to have detailed control over the flexing in each area of the face. When you have all your controls, you can create high-level and low-level channels to drive them.

  2. Create an empty node or locator named FaceMuscles that is child to the Head box. Create as many low-level muscle channels as needed on the node, and set driven keys for each muscle area of the face. Give descriptive names to the low-level muscle channels, such as rightMouthUp, right Mouth Side, and MidUpLipUp. Make sure the channels drive relatively small areas on each area of the face, so it can be posed asymmetrically. Make each channel drive several skeleton joints and blend shapes simultaneously to flex a specific face area.

  3. Create the same low-level muscle channels on the Head box that you created on the FaceMuscles node. Make the low-level channels on the Head box drive the low-level FaceMuscles channels with the same names. Then create a full set of high-level face channels on the Head box that drive multiple FaceMuscles channels. Use the high-level controls to create the initial expressive poses for the entire face. Use the low-level controls to make adjustments to the high-level poses to make the face expressions more asymmetrical. This makes your character's face appear more natural and organic when it is animating (see Figure 5.24).

    5.24. Animating with your high-level and low-level controls enables you to quickly create asymmetrical face poses that look natural.

    graphics/05fig24.gif



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