Creative Communities of the World Forums

The peer to peer support community for media production professionals.

Activity Forums Adobe After Effects Expressions nested 2 leves problem when keyframing expression not working

  • nested 2 leves problem when keyframing expression not working

    Posted by Domingo Escalante on August 29, 2016 at 1:39 pm

    Hello, i got 3 comps
    1) Mouth -> secuence layers of mouth (7 frames)

    2) Face -> a mask face video with the “Mouth” precomp in, tracking a null cuz the face video moves and the mouth precomp has “time remaping” linked to a control slider in the Main_comp

    3) Main_comp -> a background video with the “Face” precomp inside.

    In the Main_comp I have the “Face” Precomp divide in 3 instances because the face spawn in few shoots not the entire timeline besides they follow diferents nulls and i have a null control slider (the mouth has linked to it), the 3 instances Face precomp i make it “freeze frame” and i move the slider and the mouth moves with no problem. but when i keyframe the slider to change the mouth for make it smile when timeline its on face instance 1 and sad in instance 2 etc it dont works, it only works the keyframing when i delete in the 3 instances the “freeze frame”. but if i do that the face moves

    i notice the inPoint working better than startTime expression

    pls help me, hope u can understand or tellme to correct my english

    t = comp("Main_comp").layer("Face").inPoint
    comp("Main_comp").layer("control").effect("Slider Control")("Slider").valueAtTime(t+time)

    Domingo Escalante replied 9 years, 8 months ago 2 Members · 2 Replies
  • 2 Replies
  • David Conklin

    August 29, 2016 at 5:14 pm

    Hey there.

    It seems like you have a somewhat complex system. I think posting your project file (if you’re able to) might help us see the specifics. It’s hard to say what the issue may be, but I have a guess.

    Inside of your ‘face’ comp, the expression you’ve written references the layer ‘Face’ in order to find the current time. t=comp("Main_comp").layer("Face").inPoint However, you have 3 layers named ‘Face.’ I think this is confusing the expression. The ‘Face’ comp doesn’t know you have 3 instances of it in the Main_comp, and that expression is evaluating based on the inPoint of the top most ‘Face’ layer only. This means that the ‘t’ in your expression is equal to about 21 seconds, and therefore not working properly for layers that exist before 21 seconds.

    I think if you used just one ‘Face’ layer and started it at frame 0 it would work more correctly. You can always hide the mask in the shots where it’s not needed by keyframing the opacity. The other option would be to triplicate the ‘Face’ comp into ‘Face-Sh01,’ ‘Face-Sh02’ and ‘Face-Sh03’ and then change your expression inside each of those comps to be more explicit. Something like t=comp("Main_comp").layer("Face-Sh02").inPoint

    I am not 100% sure that this is causing your issue, but I think the expression in the ‘Face’ comp is getting confused because there are 3 layers called “Face” in your “Main_comp.”

    Give that a try and see if it works. If not, maybe a file or any other info you can give might help us to find a solution.

    Best of luck!

    David Conklin
    mographcode.tumblr.com

  • Domingo Escalante

    August 29, 2016 at 10:03 pm

    ty dan ur my friend.. well i ended duplicating the face comp like 15 times at the project panel and changing the expression inside each face. i cant make 1 instance face work because i have few nulls tracks , i though i could do it they way i tought

    understanding the whole project, how would you do it?

    i almost bring the layers inside face comp to the main and leave behind the precomp :’/

    ty for ur reply

We use anonymous cookies to give you the best experience we can.
Our Privacy policy | GDPR Policy