Forum Replies Created

Page 8 of 18
  • John Martin

    December 10, 2025 at 5:36 pm in reply to: Help looping a custom particle CC particle world effect

    yo Jessica! I know a brand new method that does a perfect loop without getting crazy, it’s something that you can’t find on youtube. Send me your footage and i’ll show you how it looks like and in case you like it i’ll explain how i did it!

    peace

  • John Martin

    December 5, 2025 at 12:29 pm in reply to: Line Trails Stuck To The Ground

    Here’s the custom tutorial for you Robert, enjoy! i hope you appreciate the help! https://youtu.be/WILSuLuWfAE

  • John Martin

    December 5, 2025 at 5:52 am in reply to: Line Trails Stuck To The Ground

    hey Robert, the solution is simpler than you imagine but it requires knowing a specific trick you don’t find online, send me the footage and i’ll create a custom tutorial with the solution, talk soon bro!

  • Hey Klaus, it’s time to solve this, I’ve worked on some code for you, i left some comments so you can orient yourself, it turns the null’s proximity into a one-shot trigger for each shape. When the null crosses into the defined distance, the expression records that moment and starts a self-contained 0→100→0 animation for that shape. The animation keeps playing even if the null leaves immediately, and it won’t restart until the null exits the range and enters again later.

    Good luck and lemme know if you apprecciate the help!

    // Paste this on the property you want to animate (e.g. Glow Opacity or a Slider).
    // Adjust rangeMin, animLen and nullName as needed.
    var rangeMin = 100; // trigger distance in pixels
    var animLen = 1.0; // animation length in seconds (how long the 0->100->0 plays)
    var nullName = "Null 1"; // name of your null layer
    var easeInOut = true; // use ease() for smooth curve (true) or linear (false)
    var nl = thisComp.layer(nullName);
    var frameDur = thisComp.frameDuration;
    var maxBack = animLen + 0.5; // how far back to search for a trigger (seconds)
    function distAt(t){
    var pShape = thisLayer.toComp(thisLayer.anchorPoint);
    var pNull = nl.toComp(nl.anchorPoint);
    return length(pShape, pNull);
    }
    // find the most recent entrance (time when distance crossed from >range to <=range)
    // search backward up to maxBack, stepping by one frame
    function findLastEntrance(t){
    var steps = Math.ceil(maxBack / frameDur);
    for (var i = 0; i <= steps; i++){
    var ts = t - i*frameDur;
    if (ts <= 0) break;
    var dNow = distAt(ts);
    var dPrev = distAt(Math.max(0, ts - frameDur));
    if (dNow <= rangeMin && dPrev > rangeMin){
    // refine a bit with half-step binary search for a slightly more accurate entrance time
    var a = Math.max(0, ts - frameDur);
    var b = ts;
    for (var k = 0; k < 6; k++){ // 6 iterations -> ~1/64 frame accuracy
    var m = (a + b)/2;
    if (distAt(m) <= rangeMin) b = m; else a = m;
    }
    return b;
    }
    }
    return -1;
    }
    var t = time;
    var lastEnter = findLastEntrance(t);
    if (lastEnter < 0){
    // no recent trigger within animLen+0.5s -> idle
    0
    } else {
    var prog = (t - lastEnter) / animLen;
    if (prog < 0 || prog > 1){
    0
    } else {
    if (easeInOut){
    // go 0 -> 100 -> 0 using a triangular eased curve
    var val;
    if (prog <= 0.5){
    val = ease(prog*2, 0, 1, 0, 100); // first half 0->100
    } else {
    val = ease((prog-0.5)*2, 0, 1, 100, 0); // second half 100->0
    }
    val
    } else {
    var val;
    if (prog <= 0.5){
    val = linear(prog*2, 0, 1, 0, 100);
    } else {
    val = linear((prog-0.5)*2, 0, 1, 100, 0);
    }
    val
    }
    }
    }
  • John Martin

    December 1, 2025 at 7:12 pm in reply to: Line Animation

    hey bro! i recorded a full custom tutorial for you with the solution, enjoy!
    https://youtu.be/f4qy5lBC5qg

  • John Martin

    November 26, 2025 at 6:01 am in reply to: Mocha AE & offscreen corners

    hey Gary, send me the Raw footage so i try my own methods to track it (Mocha is overestimated, there are better solutions at this point in history), thank you!

  • John Martin

    November 25, 2025 at 2:35 pm in reply to: CSV dramatic performance decrease in AE2025

    hey bro! unfortunately AE 25 is known to have a regression in how it parses CSVs in expressions compared to 24. it’s just the way it is.

    short solution: stick with 24 for this specific task if you need speed!

    for a longer solution i’m gonna leave you a couple of tips:

    1) Strip any trailing commas and empty lines.

    2) Save CSV as plain UTF-8 without BOM.

    3) Consider replacing $.evalFile() CSV parsing with a small JSON file instead since JSON parsing in expressions hasn’t changed and is more robust in AE25.

    I hope this news is not too bad to read, but i prefer to be as honest as possible, hope that helps!

  • John Martin

    November 25, 2025 at 2:26 pm in reply to: Combine multiple paths into 1 path

    my pleasure! 🔥

  • John Martin

    November 25, 2025 at 12:19 pm in reply to: Combine multiple paths into 1 path
  • John Martin

    November 25, 2025 at 8:41 am in reply to: Combine multiple paths into 1 path

    i made a tutorial with the full solution, this is for you! https://youtu.be/vQNGuPFaAHk

Page 8 of 18

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