Creative Communities of the World Forums

The peer to peer support community for media production professionals.

Forums Adobe After Effects Expressions Multiple position ease expression

  • Multiple position ease expression

  • Scott McGee

    October 31, 2018 at 12:18 pm

    I have 20 text layers. different amount of lines per text layer

    It comes on from the top left side and then when the next on comes in moves down underneath, then the next one comes on from the side and again cycle continues.

    I thought about cheating, so I’d use a position expression and just animate the y position and have it follow the leader.

    But I need the text layer that is moving downwards to move at the same time, then next text layer is moving sidewards, but it also has to calculate how much it is moving down based on sourceRectAtTime.

    I’m current thinking, my 1st text layer is the master and everyone just follows suit, but below already looks like it’s going to be really messy and I have to still include sourceRectAtTime() anyone got any ideas how to make this easier?

    if(time < inPoint+1){
    }else if (time > thisComp.layer(index-1).inPoint && time < thisComp.layer(index-2).inPoint){
    ease(time,thisComp.layer(index-1).inPoint,thisComp.layer(index-1).inPoint +1,[value[0],200],[value[0],300]);
    }else if (time > thisComp.layer(index-2).inPoint && time < thisComp.layer(index-3).inPoint){
    ease(time,thisComp.layer(index-2).inPoint,thisComp.layer(index-2).inPoint +1,[value[0],300],[value[0],400]);

  • Kalleheikki Kannisto

    October 31, 2018 at 3:09 pm

    I am not convinced that I understand how the animation is supposed to look; pictures would be good.

    Do you have to do this multiple times with different texts or is this a one-off?

    If a one-off, how about just animating with ease between the start and end points and using a master null for overall motion, if there is such?

    Kalleheikki Kannisto
    Senior Graphic Designer

  • Scott McGee

    October 31, 2018 at 3:35 pm

    Hey Kalleheikki I can do one better. I’ve attached a gif

  • Kalleheikki Kannisto

    October 31, 2018 at 6:41 pm

    Ah, I see. That definitely looks tricky.

    You might consider a motion path approach — since every piece of text follows the same route, it could probably be done that way.

    Then the issue would become how to determine where along the motion path each layer is, which would be something to do with the total number of lines of text and number of lines of text up to and including the current layer. And you will need someway to control the spacing between the texts as well.

    So it would be a valueAtTime() expression, the position being that of a null that moves along the motion path, and each piece of text would be somewhere along the motion path depending on number of lines plus spaces preceding it. The path would be the shape of an “L” turned 180 degrees, so it came from the side and then moved down like you have.

    Not really simple either, but might be more manageable.

    Kalleheikki Kannisto
    Senior Graphic Designer

  • Scott McGee

    November 1, 2018 at 8:48 am

    Cheers Kalleheikki,

    I was hoping you would have had some magical expression I just couldn’t fathom on my own hahaha.

    I figured a way that might work. I’m just working on it this morning, but my test did work yesterday before I finished for the day.

    So I’ve precomped and auto cropped my precomps. Then my precomps in my Master. Items inside are triggered using an expression with a Marker.

    This seems to work seamless. But let’s see what happens when I add the next 23 layers.

    Again cheers for the input.

  • Kalleheikki Kannisto

    November 1, 2018 at 9:23 am

    Hi Scott, sounds good — hope that works out!

    I thought of another possibility, in case it doesn’t: How about tying the y position of a layer to the y position of the layer above it plus an offset that is dependent on the height of the content times the x offset of the layer above. Basically you would use the x position of the layer above (when it moves in from the side) as the “0-100 slider” for the additional y offset. If you keep the amount of motion on the x axis the same for all layers, you can normalize to that range. Then you would just have to ease animate each layer in from the side and the vertical motion would be calculated by expression. I believe it would ripple down through all the layers. (Although the sequence of layers may affect it, based on my recent experience, so it might be it needs to be the layer below, not above).

    Kalleheikki Kannisto
    Senior Graphic Designer

Viewing 1 - 6 of 6 posts

Log in to reply.

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