FORUMS: list search recent posts

Special Auto Lip Sync

COW Forums : Adobe After Effects

<< PREVIOUS   •   FAQ   •   VIEW ALL   •   PRINT   •   NEXT >>
Ángel Molina López
Special Auto Lip Sync
on Feb 2, 2019 at 3:18:42 pm

Hi everybody:

I want to make a Dorkly animation (, that is, 8-bit puppets opening and closing their mouths. The difference I want to add is when the mouth is open the puppet get stretched (scaled) in the Y axis and when is closed the puppet returns to its original size. I have managed to get a semi-automatic sync method but it still takes up too much time. Can you think of any automatic or quasi-automatic method? I've seen things get done with Adobe Character but I don't know if it would work with the scale issue.

Regards and I hope I made myself clear.

Return to posts index

Kalleheikki Kannisto
Re: Special Auto Lip Sync
on Feb 3, 2019 at 9:39:27 am

You can use audio to keyframes result with a simple piece of expression code that sets the threshold of when to stretch the pixels.

Kalleheikki Kannisto
Senior Graphic Designer

Return to posts index

Ángel Molina López
Re: Special Auto Lip Sync
on Feb 6, 2019 at 4:09:12 am

Thank you for your replies. Kalleheikki, the technique you have spoken of is the one I'm using now, but I was looking for something more automated. I've been searching and I think I've found a way. Lars is a genius ( and has made an expression that allows the transfer of keyframes from CA (Character Animator) to AF and it works perfectly well. It saves you a lot of time.

Now, the scale problem. I've assigned a null that responds to the values adopted by the mouth so I tasked it when the mouth is open, the puppet stretches. To do this, I've used the following expression:

x=thisComp.layer("SIDE MOUTH GREEN").effect("LJ - visemes - MSD")("viseme nr.")
else if (x==3) [148,199];
else if (x==7) [148,199];
else if (x==10) [148,199];
else if (x==11) [148,199];
else [148,189];

The problem is as follows. When there are two consecutive sounds that are equivalent to an open mouth (FOR - GO - tten), the puppet doesn't move and that's a pretty dull stuff. What should be said to AF is: if after an open mouth value goes another open mouth value, on the changed value disable the stretching for X time. What'd be the expression that would be needed to achieve that? I know I could do it manually but I want to broaden my skills.

Thank you in advance.

PS: Is there any way to shorten the expression I have written?

Return to posts index

<< PREVIOUS   •   VIEW ALL   •   PRINT   •   NEXT >>
© 2020 All Rights Reserved