Download the project files here .
When I started this tutorial, I had no idea what kind of character I wanted to use as an example. But he/she definitely needed a prominent mouth, so I just began with that. My modeling method of choice is polygonal, followed by smoothing with Cinema's HyperNURBS, as outlined in my previous tutorial.
So the plan was to start with the upper lip. first I did some scribbles on paper, just to figure out the minimum of points needed. Then I created an M-shaped linear spline (#1) as the desired profile, with the point count that I had figured out. The spline was extruded with six subdivisions and converted into a polygonal object, so that now I had a polygon "patch" with 9x6=54 points. This was supposed to be enough to model a nice looking upper lip.
#1 - Spline for upper lip and resulting polygons
The bottom lip was done in a similar way, just in this case I found it easier to create a round profile spline and loft it along a second spline. This got me closer to the final shape.
Well, now comes the fun part. Those two thingies don't look much like lips yet, so you will have to push some points around until they do (#2). I threw them into a HyperNURBS object right away and kept checking the rounded subdiv shape frequently. If you happen to have a good picture of a mouth, you could use that as a template. In this case I just kept checking my own lips in the mirror and pushed and pulled points until I was happy. In #1 you can see the original spline for the upper lip on top, below is the extruded polygon result, and below that is the same geometry after moving the points into a lip shape. Notice that the outer points were welded into one, so we get triangular polys at the mouth corners. This will make it easier to connect the lips to the face later on.
#2 - Lips after pushing points
For the face I used a standard cube, that was scaled down in z-direction, smoothed with a HyperNURBS and converted to polys (#3). Unlike a sphere, a smoothed cube doesn't contain any triangular polys and is much nicer to work with.
#3 - Smoothed cube for the face
Putting the mouth where the face is
First of all, I deleted some polys at approximately the place where I wanted to place the mouth (#4). In the front view, I lined up the lips with the face and used the knife tool to make vertical cuts in the sphere, until the number of points at the edges matched up (#5). Take a look at the images, this part is hard to explain, but not so hard to do. Now it took some time to move the edge points of the face around, until they matched the edges of the lips. Once I was happy with that, I connected my three polymodels (face, upper and lower lip) to one model and connected the edge points with new polygons (#6).
#4 - Lips in front of face
#5 - More polys inserted in face
#6 - Lips connected to face
More facial features
As I said in the beginning, until now I wasn't even sure what kind of character this was coming out to be. I could have just left it as a squished cube with a big mouth, but someone looking over my shoulder said it reminded her of a moon. I decided that a sun seemed more favorable, so I added a scaled sphere for a cheap nose, two eyes of the same shape and extruded every second polygon around the edge of the face to get some "sunrays" (probably the only thing that differentiates the sun from the moon, in this case). Since the mouth was going to open, it needed a bunch of teeth and a simple tongue, again made from smoothed cubes. I added a bright yellow material on the outside, and a black one for the inside, and yes, I used a light on the sun.
#7 - How the eyelid works
One thing about the eyes: there are actually two spheres per eye, one for the eyeball itself, the other one slightly bigger for the lid (#7). This one is cut with a cube, using a boole A minus B operator. So every time I want my sun to blink, I just have to scale down the cube (the axis is offset towards the bottom, so that the upper lid blinks a lot more than the lower).
#8 - The complete geometry
Up to this point, I hadn't really decided on what animation method I wanted to use. I played around with morph targets, deformers and even point level animation, but I found that bones in connection with motion groups gave me the most flexibility, even though this needed a bit more preparation. We have to set up bones around the mouth to control clusters of points and mimic the natural muscles (#9/10). There is one big bone for the lower jaw, three each for upper and lower lip, and one for each corner of the mouth. After putting the bones into place, I painted point selections and assigned them to the bones (#11/12). This part is crucial - make sure you test the movement of each bone thoroughly and rotate them to the extremes. This will save you a lot of work later. The bones of the lower lip, the tongue and the lower teeth are all childs of the big lower jaw bone, so that they all rotate with it (#13). Once you got all your bones set up and activated, you should be able to get a wide range of mouth expressions just by rotating (not moving) them.
#9 - Bones for lips, front view
#11/12 - Bone influence, lower jaw and mouth corner
#10 - Bones for lips, side view
#13 - Complete bone hierarchy
Although I keep bitching at MAXON for not including a relative/absolute option with their motion groups, in this case I could make good use of this feature to control my bones. The goal was to create a library of expressions that could be accessed easily for later animation. Here's how it works: let's say you want an expression for laughter. Rotate your bones, until your character looks happy (I suggest rotating the bones that control the corners of the mouth way up :-) Now set a key for every bone angle. Look at your timeline. There should be 9 keys, if you have the same setup I have #14). It's important to set a key for every bone, even if you didn't rotate it. Also, create an empty track on your model geometry (the parent of all bones). This is important because otherwise Cinema won't let you create a Motion Group. Select all the tracks you want to group (nine for the bones + the empty one on the geometry) and create a Motion Group. There is your laughter, frozen into one little sequence (#15) - pretty nice, huh? Notice that we are using the Motion Groups kind of out of context, because we didn't really create any motion. If you are familiar with Maya, what we did is create the equivalent of a pose, but it works very well for our project. I suggest you create a negative time range and an empty object. Now you can move your laughter expression onto that object into the negative time range, thus creating a library of expressions you can draw from for your animation purposes (#16). You could even use them on any other characters that have a similar bone setup. Be careful if you add new objects in between your bone hierarchy - this will screw up your motion groups. Just put new objects at the end of the hierarchy and everything should be fine. And don't forget to add a neutral expression that you can always go back to.
#14 - Keys set on all bones...
#16 - Library of facial poses
#15 - ...and grouped into one sequence........
Lip Sync and more...
Want your character to talk? Well, I won't go into much detail about that here, because there is a bunch of books on the subject already out there - and I have already given you everything you need. Most books will tell you that there are 6-8 basic mouth positions for speech (#18), so just create them, store them in your library, load your sound track directly into Cinema, break down the phonemes (I found that to be the hardest part) and watch your character talk. Remember that motion groups let you mix positions, so if you want your character to talk in a more friendly manner, you can just create another motion track and mix in your laughter expression (#19). Very elegant.
#18 - Seven poses for speech
#19 - Speech poses in action
Of course there is much more to animating the face than just moving the lips or blinking the eyes. Depending on the complexity of your model, add more bones to control cheeks, ears or whatever. You don't have to stick to bones - using other deformers within your motion group should be no problem at all. I strongly suggest not to be lazy like me and add eyebrows to your character. They go a long way in adding emotion.
Click on the graphic to play the movie
I hope this tutorial gave you the basic idea of how to manage facial animation tasks. As usual, comments are welcome.
Feel free to discuss this technique in the Cinema 4D forum at Creativecow.net.
Send your thoughts: