Generating complex facial expressions from a 3D face model is usually a difficult task. Traditionally several hundreds parameters would be necessary to precisely control the face. Such complexity makes the task acessible only to seasoned animators. More intuituve parameterizations in term of emotions usually yield a fairly limited range of expressions.
We explored several ways of designing facial expressions from a library of expressions. The main idea is to generate facial expressions by combining them linearly. We combine 3D face models using 3D morphing techniques that:
The simplest way to combine facial expressions is to assign a single weight or percentage to each contributing expressions. The following example shows the blend of 50% of "surprise" and 50% of "sadness" yielding a "worried" expression.
In order to span a broader set of facial expressions, we combine faces in a localized way. We split the faces in several regions that behave in a coherent fashion and assign weights independently to each region. This next exemple shows the design of a "fake smile" by combining the top part of a "neutral" expression with the bottom part of a "joy" expression.
To get finer control, we designed a painting interface in which the "colors"
are facial expressions. Once an expression is seleced. a 3D brush can be used
to modify the blending weights in selected area of the mesh. The strokes are
applied directly on the rendering of the current facial blend, which is updated
in real-time. The fraction painted has a gradual drop-off and is controlled
by the opacity of the brush.
Click on the image to the right for an exemple of this technique.
The following faces where generated from eight initial facial expressions (top left).