The use of shape keys allows us to model some very specific facial expressions, notably those which produce deformations such as skin folds and creases. By building a shape key library you can interpolate between them to create very convincing facial expressions. The problem is that you're always limited to the size of your library, and building a huge one requires an equally huge amount of time and effort.
A good solution to achieve more freedom when building facial expressions is to add another layer of lattice-based controllers so that the animator can mold the face as desired in real time. This is easier, quicker, and makes your file lighter for not having an insane amount of modeled shapes. But the real benefit is that it allows you to achieve pretty good results.
With this mixed-technique approach we can get the best of each tool: modeling specific creases and wrinkles with shape keys; freely deforming the mesh in real time with lattices; and using bones where we need rotation (for the eyelids or the jaw, as we'll cover in the next recipe).
004-Lattice.blend
. You'll see a face already set up with shape key controllers as the result of our previous recipe. This is our starting point.We're going to create some Lattice modifiers to deform our head mesh, but we'll make them deform only specific regions. We need one lattice to deform the face as a whole, one for fine tuning the upper lip, and another for the bottom lip. In order to achieve this, we need to create three vertex groups: one for each lattice.
A lattice is a special object in 3D applications: visually, it's shape is similar to a subdivided mesh box, but it's not visible on the rendered image. It's purpose is to deform a mesh object based on the position of its control points. There is another modifier in Blender that allows us to achieve similar results: the MeshDeform modifier. Instead of using this special lattice object to deform our mesh, it uses another mesh (with fewer vertices) as the reference for the deformation.
face, lips_bottom
, and lips_top
, as seen in the following screenshot: lips_bottom
and lips_top
vertex groups, painting its regions as seen in the next screenshot. Notice that the lips_top
vertex group also adds the nose to its influence region (dark):With the regions of influence properly painted, it's time to create the Lattices to deform our mesh.
Lattice_Face
.Now that we have the Lattice and Vertex Group properly created, let's add the modifier.
If you enter into the lattice's Edit Mode and move any of its points, you'll see that the mesh is deformed accordingly. Now we just need to set some controllers to act on the Lattice. Since we already have an armature (on layer 2) to control the eyes and shape keys, it's a good idea to use it to also control the Lattice points.
Eyebrows_Center
. Move (M) it to an empty armature layer (such as layer 3), and make it the only armature's visible layer by pressing Shift + M and choosing that layer. This layer should have only bones that affect lattices, so you know where to find them. You should now have something similar to the next screenshot: Eyebrows_Center
bone. Go to the Hook modifier panel and click on Assign and then Reset to recalculate the modifier. Eyebrows_center
bone. You'll see that the assigned point follows it and the face shape is deformed by the Lattice, as seen in the following screenshot:This process can also be applied to have a finer control over the shapes shapes of eyelids, if you need more control than just opening and closing them.
After you finish assigning all the lattices, bones, and hook modifiers, you should end up with a very flexible rig, which allows you to freely deform the mesh on top of previously assigned shape keys. The following screenshot shows an example of it, and you can find the complete exercise in the file 004-Lattice-complete.blend
. The shape keys controllers are the square bones, while the lattice controllers are the cross-shaped ones:
By assigning lattices to specific regions of the face through vertex groups, you can control them with bones through the Hook modifier, thus easily creating free deformations on top of any existing shape keys.
This method is good for creating smooth and subtle changes in the mesh, but you shouldn't be limited only to faces. Bouncy bellies in fat characters or muscles can also be tweaked with this technique.
Chapter 4: Adding expressions using Shape Keys
3.140.188.244