Lip Sync

updated 24th July 1998
I found, to my surprise, that it is possible to linearly interpolate between two bicubic_patch models and maintain a smooth surface.  So an animated mouth can be done simply by modelling the shape of each phoneme (I did it in spatch) and then using a simple program to interpolate between them.

The lip models in this example could certainly be improved since modelling organic shapes is not my forte and I only used a few different shapes.  Also, in this version, the C file has to be compiled for each animation.  Adapting it to use data files won't be too hard.  I was happy with the results though and I'm currently working on a more sophisticated program to do the animation.
(As for the better animation program POV 3.1beta was released so I've been too busy playing with that)

Here are the shapes I used
 
Basic mouth
A
EE
J or SH
M
U or OO
V
 
Here's an AVI file of the lips in action. As I said it needs work but the principle seems sound.
Here's the Spatch models, c source and .pov and .ini files in a zip file and individually.
lipsync.c
blank.dat
a.dat
i.dat
j.dat
m.dat
u.dat
v.dat
lipsync.ini
lipsync.pov
blank.spt
a.spt
i.spt
j.spt
m.spt
u.spt
v.spt

The .dat files were made by exporting to POV and then stripping out all but the vectors, then using search/replace to make them C compiler friendly.

POV-Ray 3.1 Beta is out now and I've converted the C program into a POV macro with the data from the Spatch models in an array.  This should make it a lot easier to maintain and to experiment with different models ( no more compiling, switching back and forth between programs etc.)
Here's what I've come up with so far (exactly the same, just translated to POV 3.1)  lipsmacro.pov

Home Mail me