I want to make a Dorkly animation (https://www.youtube.com/watch?v=ZVTLsQ8iNCM), 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.
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 (https://vimeo.com/220359572) 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];
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?