Forum Replies Created

Page 1 of 12
  • Yoan Boisjoli

    April 4, 2025 at 12:49 am in reply to: Penner easing expressions with layer slide

    Hey all,

    I went down this same rabbit hole trying to make Penner easings work reliably in After Effects, especially when switching between 1D, 2D, and 3D properties or building templates for clients.

    After getting tired of breaking expressions and rewriting the math every time I wanted to change an easing type, I ended up spending two years learning to script and building a tool called Keyless. It applies Penner easings without keyframes and just works across property types.

    If you’re still dealing with this kind of setup, it might save you a few headaches:

    https://aescripts.com/keyless/

    I’m at the stage where I’d genuinely love any feedback if anyone here gives it a try.

  • Hey everyone,

    This thread brings back memories. I ran into the same issues trying to apply Penner easings to different property types, especially in expression-driven setups. Doing it manually was always a bit fragile, especially across 1D vs 2D.

    I ended up building a tool called Keyless that automates this. It applies Penner easings without keyframes and works across 1D, 2D, and 3D properties. No need to rewrite expressions every time, just apply and tweak.

    I’m at the stage where I’m looking for feedback to try and make it better. I spent two years learning how to script and making it so let me know if you tried it!

    https://aescripts.com/keyless/

  • Yoan Boisjoli

    April 4, 2025 at 12:41 am in reply to: Penner easing expressions with layer slide

    Hey all,

    I came across this thread while digging into Penner easing issues in AE a while back, and it brought me back. I hit a lot of the same walls, especially trying to get easing like easeInOutExpo or easeOutQuint to behave cleanly with time offsets and user controls in MOGRTs.

    I was so fed up that I built a tool to solve it. It lets you apply Penner easings to any property in After Effects, without using keyframes. It auto-detects the property, adds a control layer, and uses expressions under the hood so everything stays editable.

    If you’re still dealing with these types of easing headaches, this might help:

    https://aescripts.com/keyless/

    Just launched it recently and would love any feedback from folks who’ve already been down this rabbit hole.

  • Hey Amir,

    I know this post is a few years old, but I stumbled on it while digging into Penner easings in AE a while back. Totally feel your pain and I hit the same wall when trying to integrate those curves cleanly into expressions, especially for MOGRTs where linear() and ease() just weren’t giving enough control.

    That frustration actually led me to build a script called Keyless. It lets you animate with Penner easings and full timing control, but without setting keyframes. It auto-detects the property type and sets up the easing using expression controllers instead.

    If anyone’s still looking for a way to simplify this kind of setup, here’s the tool:

    https://aescripts.com/keyless/

    Just launched it this week and would love feedback from folks who’ve gone deep into this kind of thing.

  • Hey Roland,

    I checked out the link you shared, and you’re absolutely right that After Effects’ expression engine supports modern features like let and const. Unfortunately, template literals (${} syntax) aren’t part of the supported features, at least not yet.

    If you’ve found a workaround or a unique method where template literals actually work, I’d be super curious to hear about it! Always happy to exchange ideas.

    Cheers!

    Yoan

  • Hey Roland!
    I don’t think After Effects expressions support modern JavaScript template literals. because they use an older version of JavaScript (specifically JavaScript 1.2).
    Instead, you can achieve the same result using standard string concatenation methods. Here’s how you would rewrite your expression in After Effects:

    var baseText = text.sourceText;
    var addText = thisComp.layer("add Text").text.sourceText;
    baseText + " " + addText
  • Geez Dan! I took the complicated route ! hahaha yeah that works perfectly.

    Is this using the new Per Character expression in 2025?

  • Hey Gerald, don’t know if it can help but this is pretty useful and I think it might help you out!

  • Guttentag Vlad!

    I managed to do it via multiple text fill color (RGB) animators (one for each color).

    Then I added an expression selector that goes like this to aim at each character:

    (textIndex % 5 == 0) ? 100 : 0; //5 is the amount of color choices and 0 is the char index

    The zero here is the one I’m changing on each animators.
    Then I’m having the colors changing every 5 frames via an expression on the color property of the color animator.

    seedRandom(index, true); // Ensures each layer has a unique random sequence
    var colors = [
    effect("Color Control")(1),
    effect("Color Control 2")(1),
    effect("Color Control 3")(1),
    effect("Color Control 4")(1),
    effect("Color Control 5")(1)
    ];
    colors[Math.floor(timeToFrames(time) / 5 + random(0, 5)) % colors.length]

    I’m uploading the after effects file. Hope it helps !

  • Yoan Boisjoli

    March 9, 2025 at 2:24 pm in reply to: New AE v25 Text Expression methods …

    Hey Roland !

    haha yeah it’s always like that!

    No haven’t tried the other functions. I’m curious though, as soon as I have a bit of time on my hands, I’ll experiment with them !

Page 1 of 12

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