Creative Communities of the World Forums

The peer to peer support community for media production professionals.

Activity Forums Adobe After Effects Expressions Pickwhipping animations between comps of different length

  • Pickwhipping animations between comps of different length

    Posted by Hiski Suomela on October 22, 2019 at 7:50 am

    Hi!

    Is there a simple solution for creating linear expression between two comps of different length?

    I have a null in a comp which is 40 seconds long (“liikunta-character-D1-001”) and another null in a comp which is 4 minutes long. The null in 4mins comp has a linear expression like this in its position so that it would follow the keyframes of the other comp:

    handCTRL = comp("liikunta-character-D1-001").layer("hand_CTRL").transform.position[1];

    linear(handCTRL,510,90,274,600)

    So how would the keyframes start in the right time in the main composition? Now the linear reads the keyframes in the actual time, not the in-point of the shorter comp.

    I’m always bad at describing so please, ask if I was unclear 🙂

    EDIT: I’m aware I can keep the pre composition same length as the main composition and just cut the in and out points to have the animations in the right time. I’m looking for a solution for comps of different length.

    Hiski Suomela replied 6 years, 10 months ago 2 Members · 4 Replies
  • 4 Replies
  • Dan Ebberts

    October 22, 2019 at 1:38 pm

    Is the issue that one of the comps is a layer nested inside the other comp and it’s start time is offset from 0? Or is it just that they’re different lengths and you need to compress the time of longer one to match the time of the shorter one?

    Dan

  • Hiski Suomela

    October 22, 2019 at 1:57 pm

    I made a simple representation file where you can see the problem. I’d like the null in 4 minute comp to start moving exactly when its control null moves in the 1 minute composition. Now it starts moving too soon. ☺

    https://f1.creativecow.net/file/13834/13834_comptocomplinearexample.aep.zip

  • Dan Ebberts

    October 22, 2019 at 4:06 pm

    Try it this way:

    ctrlComp = comp(“1 minute comp”);
    L = thisComp.layer(ctrlComp.name);
    CTRLnull = ctrlComp.layer(“Null 2”).transform.position;
    linear(CTRLnull.valueAtTime(time – L.startTime)[0],90,430,60,430)

    Dan

  • Hiski Suomela

    October 23, 2019 at 6:52 am

    Thanks, Dan! Works perfectly.

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