Papa Construction
Let's break down how Papa's Face works and how it looks SO DANG GOOD
Curve Deformation
Papa's face takes a lot of turns, especially around the mouth area, so this character would almost not have been possible without this solution.
Clusters are driven across distinct paths along the mesh. Each spline curve designates a separate avar.
The cross hairs you see are the locators that are moving up and down these paths.
Here is a basic view of the node network for the mouth corner that goes Left to Right
You see the the motion path information filters into the locator. The cluster is parent constrained to the locator. The nodes on the left manage the math and speed at which the locator moves across the spline path.
Not everything moves along a drawn curve, though. Some clusters are deformed through rotation, or bending.
A cross section of Papa's Eye - the clusters of points moving his eyelid rotate perfectly around the center of the eyeball geometry. This ensures that the eyelid makes a nice rounded path around the eyeball, rather than using blend shapes giving a linear look. It's subtle, but important to the overall look.
To show this principle in action, you have to pull Papa's Jaw WAAAAY open!
You can see that his jaw wraps into a circle. That's because his jaw pivot point is actually located far back in his neck! Putting the pivot of the jaw far back allows for the jaw to still open with rotation, but not look like some kind of muppet with a hinge in his mouth. This was a creative way of making Papa's forward facing mouth look natural.
*YAWN*
The Three Curve Principle and Football Shape
An important part of the addition theory is the use of the three curve principle in Papa. Certain parts of the face need at least 3 different avars to be complete. The brows for example have an inner, mid and outer control. When they add up together at a value of 1 or 100, they will make a BEAUTIFUL arc. It's all about balancing the points between all the avars you've set up.
The Left, Mid and Right avars fire together and look pretty nice.
The lips should lift into a football shape. This helps balance with the Jaw UD as well.
The eyelids have inner, mid and outer controls. When used together, it can shape the eyelids to how you need. This keeps the eyelids feeling fleshy and responsive to the information around the eye like squints and brows.
Sculpts
It's great that movement happens in arcs and splines, but sometimes you can lose volume due to the nature of weighting points. That's when we introduce a sculpt to push those points back to retain volume.
The mouth corner moves in a nice fashion, but once it takes that turn around the front of the mouth those points are going to collapse.
The sculpt fires as the control goes further towards the center of the mouth. The points no longer collapse into his face. Retaining volume is key.
Sculpts are should be used on every avar, but with papa only the most important ones were dealt with since we got into crunch time pretty quickly.
You want to avoid doing too much with a sculpt, because its the clusters that should be doing the moving. The sculpt just pushes info in and out as necessary.
Lattices
Go get more appeal out of our character, I needed his long muzzle to be able to turn, bend, squash and stretch. This was done by making an expression that deforms a joint chain. Said joint chain was able rotate and scale lengthwise.
I set up clusters along every "rung" of this lattice. The joints in the joint chain affected these clusters. Doing so modified the lattice.
Eyeballs were tricky, because I needed them to react to the head geo. I put the eyeballs in a lattice, and had that lattice wrap deformed to the main head lattice. The eyeballs were still able to rotate, but within their respective lattices. Teeth and tongue were a little more complex, but followed the same principles. This took a lot of problem solving to get right and work with everything else.
The main head lattice could only affect the head. Unfortunately in maya lattice assignment is a little finicky. I took a copy of papa, assigned the lattice to the vertices that I needed, then I used the paint blend shape weights tool to smooth out the influence of the lattice. That copy of papa was blend shaped into the final body. This copy is what receives all the other face movers.
This shows papa's face being scaled up. I wanted the eyes to scale up - but to do that the sockets needed to follow exactly. All while the Eyelids and brows are working right. Layering up deformations was the key to solving this problem. I found a script that allows me to to add objects to a lattice, and I used that to add these verts to the eyeball lattice that scales up and down. I used the paint blend weights tool to smooth out this scaling.
The tricky part of this is that the deformations of the eyelids had to happen BEFORE this scale function happens, otherwise points will move unpredictably in the eyelid area. Layering up deformation allowed for me to have a non destructive setup where I could go down a level to troubleshoot specific problems.
Obviously making a rig is a lot more involved than just doing step A then B.
This is a shortened version of different techniques used to build the rig.