I'll try to briefly explain the rig. For every span of the mouth (splines running to and from the lips) I have one bone for the up and down motion and one for the left and right motion. Each UD bone is a child of the corresponding LR bone. It had to be two bones instead of one for a few reasons that I would have difficulty ariticulatng here. The points around the mouth are assigned to the UD bones and are weighted using AMweights to give them a nice falloff. This was a tedious process, and luckily versión 11 will have the AMweights functionality built in.
Next I set about creating a series of poses that moved the mouth bones in different combinations to create different shapes. For instance, the Corner_R_UD pose moves the UD bones on the right side of the mouth to form the curve of a smile or frown. The bone rotation alone gets me most of the way there, but for complex areas like the cheeks I do some custom muscle animation on top of the bone motion.
The advantage of using this kind of modular bone setup in a face is more consistency of deformation between poses, since they're all driving the same underlying bone structure. Once you articulate one part of the mouth you can use it with múltiple combinations of other controls and always get predictable results. I find there is too much room for variation and inconsistency when relying on straight muscle motion for facial articulation. Also, this character's mouth is such a dominant part of his image and this method allows me to control the shapes very precisely. If his mouth were tiny then I might get away with regular muscle motion, as I did in the brows.
Currently the mouth has about 24 controls and I've still got some more to add.
Below is a screen shot of all the mouth bones. It looks like a mess, I know, but I hide all the bones except for the jaw when animating. The jaw itself uses rotate relationships instead of poses, but the effect is the same. On the left you can see some of the Pose Sliders controling the mouth.
As for they eyes, they are controlled with poses and some simple bone rotation, scaling and translation. The poses were created using deformer lattices. I can taper them, bend them in different directions and blink them with poses.
The head bone has a volume-preservation expression on it for easy squash and stretch. Anytime I scale the Z value the X and Y change value accordingly. I've alos made a pose to move the mouth up and down to help the squash and stretch (or "squetch" as we call it at Pixar). The rest of the squetch is achieved with good old-fashioned animation tricks.
Many people have asked me to do a tutorial and I wouldn't mind but I just don't have the time. It's taken me years just to do this much on my spare time, and with a kid on the way I can't imagine I'll have more time soon!