• Advertisement

Archived

This topic is now archived and is closed to further replies.

Facial customization and lip synching

This topic is 4972 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I understand that lip synching can be done by having various versions of your head model in different speech poses and morphing between them. I am not sure however, how facial customization (eye distance, nose size, etc.) is done. Also, how do I combine the two techniques together so I can lip-sync with a facially customized character? Regards Rael

Share this post


Link to post
Share on other sites
Advertisement
I believe you can do the whole thing with morph targets.

Say you''ve got a model of a nose, and two parameters for it, "flared-ness" and "pointyness". Each parameter can range from -1 to 1; by default they''re at 0. That''s your ''control'' position.

For each parameter, you''d have a mesh at each end of the scale (a ''morph target''). The pointyness one for instance - at pointyness = 0, you''d have a very rounded nose mesh stored. Wheras at pointyness = 1, you''d have a very pointy nose mesh stored. Each mesh would have the exact same topology as the control mesh - all you''re doing is moving vertices.

So, you can interpolate (''morph'') between meshes depending on your parameter. The result is, for each parameter, a set of positions a specific group of vertices - the ones that make up the nose, or the eyes, or the legs, or whatever.

Then, I guess you''d do something like average all the positions supplied for a vertex by different parameters. Possibly a weighted average, so that the pointyness of a nose has more influence on the result than the flared-ness.

I''m not sure, though. This is just based on what I''ve played around with in Softimage.

Share this post


Link to post
Share on other sites
Cool, I am just reading up on morphing animation in Jim Adams book and it seems like a pretty good solution. I will experiment with some code I think and see what comes out. Maybe post on this board if anyone is interested.

Thanks for your advice.

Rael

Share this post


Link to post
Share on other sites

  • Advertisement