Lip Syncing Audio and nesting projects questions
After Effects CC 2014
Hi, I'm trying to do a lip sync for a character. It's taking a really long time and I figured I'd come here to see if I was ignoring a faster way or something.
Ok, so my character is a precomp made up of other precomps, one being the mouth, which uses the effect CC Jaws to open and close. At 0%. mouth is closed, at 100%, completely open. I set up a null named Controller on the outside of all the sub comps (I call this top composition "Master”) with a slider, which controls the CC Jaws completion buried in the precomps. It all seems to work well. I saved that project as its own AE file and import that file into other bigger files of edits where the character needs to be.
Then in order to lip sync, I drag the master composition from that file into the timeline, and cut the video where the Master comp begins, then copy that video and paste it into the Master comp so that I have the audio to animate to inside where the Controller null is, and once I’m done animating to it, delete that video, and since the video was at the exact point it was on the topmost composition, the time is right, and the animation matches the audio outside of it. Already this is sounding quite confusing.
Anyway, to check what the lines are (before I delete the inner video), I have to Cmd drag over the video ever so slowly to figure out where the mouth would open and close, and animate that. I could use period to check the audio, but that doesn’t really help with the details of WHERE the mouth should open etc etc. Is there a better way to figure out sound-based things like that?
Also, I needed this character to appear multiple times in the video. I learned the hard way that you can’t just duplicate the composition (because any change made to one will change them all in a symbiotic way instead of its own instance) but instead had to import the same project multiple times for each time it needed to appear differently.
Now at first that seemed to work, but then I realized that even though the keyframes were successfully different for every instance, the only keyframes that ALL of them were “listening to” was the last one. This was because deep in the Master re-import comps, they were still all referencing to the slider in the “Master” comp.
I solved this by renaming the Master comps for each import in the project panel as Master1, Master2, etc, and then changing the instructions to look for each of those. That way they all had a different name. My question is, why did I need to do that? Wouldn’t each import of the project be an independent entity?
Finally, I discovered a potentially better way to do this animating by using convert audio to keyframes and linking the slider to that slider. The only problem with that is it’s a little erratic. Sometimes his mouth doesn’t close completely, so I used an if/else to set it to 0 if it was below 20, and multiply it by 1.2 if it wasn’t.
It’s still pretty choppy though. Is there a way that I could add more animation between 0 and 100? Usually when I’m doing this by hand, I animate straight from 0 to 100 each time the mouth opens, but with maybe 5 frames of inbetween those two keyframes. With the audio keyframe method, there’s no space between the two values. Is there anyway to aid that? I really hope so, because this method is so quick.
Also, I did watch a couple lipsyncing tutorials, but they dealt with a more precise version with drawn mouth shapes, and that's not what I'm going for here. But there were still some very nice concepts to learn in them.
Also, I couldn’t really find a great scripting dictionary, the AE official one is kinda confusing and I couldn’t even find Math.round in it. Anyone know a better one?
I have solved the lip syncing problem! Rather, a great and kind redditor has.
Using this expression, I'm able to do a RAM preview at 15 fps (anyone know a way to go slower?) and drop markers in in realtime, and the same mouth animation will play every time it hits a marker. Lip syncing in minutes instead of hours!
I'd still like answers to the rest of my questions though please