Viseme blending for facial animation

Started by
0 comments, last by Bacterius 9 years, 4 months ago

I'm coding a facial animation system that takes recorded speech and animates a 3D head model. First the audio is converted to phonemes and timings, which are then mapped to visemes, which correspond to blend shapes on the head model. To blend between visemes, I'm doing a linear interpolation of the blend shapes, which leads to somewhat jerky animation.

To make the animation more fluid, I realized I would have to implement some sort of curve system. I ran across this paper: https://www.vision.ee.ethz.ch/publications/papers/proceedings/eth_biwi_00243.pdf. The idea behind their animation system is to force the curve to go through certain visemes (like vowels, and labial consonants like m,b,p), and be attracted towards other visemes based off weights.

[attachment=24730:Capture.PNG]

The paper says that they used NURBS curves of order 3, but from what I know about NURBS, the curve only passes through the start point and end point. The curve in this picture seems different. Technically you can overlap a bunch of control points to force a curve through a point, but this makes the curve more rigid.

So my overall question is, what curve technique should I use for an animation system like this?

Advertisement
You could perhaps use Catmull-Rom splines. Those are guaranteed to go through each control point, and are widely used in animation (though I don't know about facial animation in particular).

“If I understand the standard right it is legal and safe to do this but the resulting value could be anything.”

This topic is closed to new replies.

Advertisement