Creative Communities of the World Forums

The peer to peer support community for media production professionals.

Activity Forums Adobe After Effects Expressions Control speed of text tracking

  • Control speed of text tracking

    Posted by David Cabestany on January 23, 2019 at 5:10 pm

    I wrote the expression below. It does what I want to, but I had to manually calculate the duration of the fade so it would match when the layer is ending and accelerate the tracking from that point onward.

    Can anyone help me tweak this expression so the tracking speeds up automatically as the out point of the layer approaches and I am able to extend or retract said out point without having to recalculate the duration of the fade each time?

    Thanks in advance for your help.

    t=time;
    fadeDur = 1.55;

    if
    (t<=2)
    {
    time
    }
    else
    {
    easeOut(time,outPoint,outPoint-fadeDur,0,30)
    }
    ;

    David Cabestany replied 7 years, 6 months ago 3 Members · 6 Replies
  • 6 Replies
  • Andrei Popa

    January 24, 2019 at 7:44 am

    What do you want your expression to do exactly? Because this seems bizarre. Is this applied to your tracking property? Because it increases it to 2 until it arrives to 2 seconds, then it is 0, then it grows during the last 1.55 seconds of your layer.

    Andrei
    My Envato portfolio.

  • David Cabestany

    January 24, 2019 at 3:13 pm

    This is what I’m trying to accomplish. I need to do it on several similarly looking comps which have different lengths in text and durations, hence why I need it to be easy to adjust, by just extending or contracting the put point of the layer.

    13058_simulatedtextfordemopurposes.mp4.zip

    Thanks.

  • David Cabestany

    January 24, 2019 at 3:20 pm

    By the way, your assertion that after 2 seconds it goes back to 0 and then grows again is incorrect, after 2 seconds it continues to grow but not from 0, it keeps the tracking pace it had before.

  • David Cabestany

    January 24, 2019 at 5:24 pm

    I revised the expression to the following.
    But When it reaches the fadeDur point in the layer it resets to 0, because I put valueAtTime(time) it should read the value at the current time and not go back to 0.
    If anyone can help me sort this bit it will be greatly appreciated.

    Thanks.

    t=time;
    fadeDur = 1.6;
    tr=text.animator("Animator 2").property.trackingAmount

    if
    (t<=
    (outPoint-fadeDur))
    {
    time*2
    }
    else
    {
    easeOut(time,outPoint,outPoint-fadeDur,tr.valueAtTime(time),30)
    }
    ;

  • Kalleheikki Kannisto

    January 25, 2019 at 7:16 pm

    As far as I can tell, you can just add “time*2+” to the beginning of the easeOut line.

    Kalleheikki Kannisto
    Senior Graphic Designer

  • David Cabestany

    January 25, 2019 at 7:33 pm

    Thanks, Kalleheikki,

    Yes, I eventually figured it out, but I placed it at the end of the line, like this:

    I’m not very clear on why it works, but it does nonetheless.
    Thank you for taking the time to look into this.

    t=time;
    fadeDur = 1.5;
    tr=text.animator("Animator 2").property.trackingAmount

    if
    (t<=
    (outPoint-fadeDur))
    {
    time*2
    }
    else
    {
    easeIn(time,outPoint,outPoint-fadeDur,(time*2),30)
    }
    ;

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