Creative Communities of the World Forums

The peer to peer support community for media production professionals.

Activity Forums Adobe After Effects Expressions Cross-Composition Time Transformations

  • Cross-Composition Time Transformations

    Posted by Kyle Sorenson on June 28, 2010 at 11:50 pm

    Hi,

    I’ve been doing a lot of thinking about cross-comp timing transformations and the issues they create.

    When you link parameters from a “slave” comp to an a “master” comp, After Effects translates the timecode of one composition to the other linearly – i.e. if you trigger an animation in the master comp at the 4 second mark, the slave comp will start to animate at 4 seconds. Intuitive enough…

    This starts to become interesting when you nest the slave comp and offset its starting point. After Effects takes the offset into account. So if your slave comp starts at 1 second, the start of animation will also be shifted 1 second (in the above example, the animation would start at 5 seconds). Again, this still makes sense…

    But I’m looking for a way to BYPASS these transformations.

    There are many cases where I’d like After Effects to ignore the offset. If the master comp triggers an animation at 4 seconds, I want the slave comp to start to animate at 4 seconds, regardless of whether I’ve offset its in point. I don’t want the slave comp to take into account when the animation was triggered in the master comp.

    In this particular hypothetical, I could write an expression that calculates the offset and accounts for it… but it gets much more complicated when you start dealing with time remapping the slave comp.

    Is there an function that can pull the current position of the composition playhead? Seems like an expression like “comp(“master”).valueAtTime(PlayheadPosition) might be what I’m looking for.

    Is this even possible to fix? Am I crazy for thinking this? It seems like there should be some sort of “collapse time transformations” switch.

    Thanks for any help,

    – Kyle

    Gordon Glenn replied 8 years, 10 months ago 3 Members · 3 Replies
  • 3 Replies
  • Dan Ebberts

    June 29, 2010 at 12:24 am

    It gets pretty weird in a hurry. As you’ve discovered, you can do something like this to match up the times (assumes the position of the layer with the expression is linked to “Layer 1” in “Main Comp”:

    C = comp(“Main Comp”);
    offset = C.layer(thisComp.name).inPoint;
    C.layer(“Layer 1”).transform.position.valueAtTime(time + offset)

    If you throw time remapping into the mix though, I think that really complicates things.

    Dan

  • Kyle Sorenson

    June 29, 2010 at 12:40 am

    The thing is, that sort of expression is like pouring dirt into filtered water. If all you wanted was dirty water, you should have grabbed some from the river before it was run through the filter (OK… perhaps not the most apt analogy).

    Seems like there must be a way to access parameters prior to After Effects performing all of these pesky time transformations on them.

  • Gordon Glenn

    June 27, 2017 at 11:43 pm

    Thank you so much!! This worked for me after 5 hours of Googling without success. It’s the best way to fix your pre-comp’s expression misinterpreting the keyframes from the master start time to make it match. I’m saving this one for sure!

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