Custom Software Development and Engineering

Facial rigging explained

Lots of questions and comments coming in about Ginger (loving the enthusiastic response), so I want to get a sort of base answer as to the how of the rigging.

In character animation within the 3-D realm, blend(morph) targets are used to tween the surface of a shape’s vertices or control points to another destination using a duplicated shape different topology.  Typically morph target’s for facial rigging don’t act as the sole tool, usually its combined using other tools for deformation such as clusters or skeletal(joint) system.

We looked at various libs when we started working on the tools for WebGL, and settled on THREE.js. THREE.js has morph target capabilities so it became my tool to move the shapes for the facial rig from Maya into WebGL.

I’m not going to go into the from-Maya-to-three.js right now, I’ll cover that in a different post.

The goal was to see if I could get multiple morphtargets active at one time with the same values combined, ending with a result that acts the same in WebGL as in Maya. It’s close.

THREE.js morph targets are strictly linear, so I need to make “in-between” targets to aid in altering a linear path from a vertice’s point A to point B.  A good example is Ginger’s jaw movement. Using a linear morph path her jaw would open straight into it’s end pose, not rolling into its end pose.  So a partially opened mouth position was used to simulated a in-between target, to aid in the downward rolling moment into the fully open jaw’s end pose.

I’ll follow up with more detailed posts and information as we continue working on the toolset. For now I need to finish me coffee. -David Steele

Ready to start?

Get in touch. We're ready to listen.