Forum Replies Created

Page 13 of 1081
  • Dan Ebberts

    November 15, 2024 at 5:29 pm in reply to: Delay start time for mulitples comps randomly

    So do you have these comps as layers in a main comp and you want each layer to start at a random time? If so, you’d enable Time Remapping for each of those comp layers and apply this Time Remap expression (which will give each one a random start time between 0 and 5 seconds):

    minStart = 0; // min start time (seconds)
    maxStart = 5; // max start time (seconds)
    seedRandom(index,true);
    tStart = random(minStart,maxStart);
    Math.max(time - tStart,0);
  • Dan Ebberts

    November 14, 2024 at 5:33 pm in reply to: Flow field expression

    This application is perfect for noise(), the expressions built-in Perlin noise field generator. I’d start with a rotation expression like this:

    dDiv = 1000; // distance divider
    tDiv = 2; // time divider
    maxAngle = 180; // maximum angle (+ or -)
    r = noise([position[0]/dDiv,position[1]/dDiv,time/tDiv])*maxAngle;
    value + r

    For reference, I used this position expression to position a grid of identical 100×100 layers with anchor point centered:

    hSpace = 100; // distance between columns
    vSpace = 100; // distance between rows
    nCols = Math.round(thisComp.width/hSpace);
    origin = [hSpace,vSpace]/2;
    myCol = (index-1)%nCols;
    myRow = Math.floor((index-1)/nCols);
    origin + [myCol*hSpace,myRow*vSpace];

  • Dan Ebberts

    November 13, 2024 at 2:22 am in reply to: AE2024.6.2 – Expression Removing Second Font in line

    Unless you’re taking advantage of the new per-character styling feature in AE 2025, whenever you apply an expression to the source text property, all characters get the same styling as the first character.

  • Dan Ebberts

    November 12, 2024 at 11:24 pm in reply to: Use markers to drive text highlight and fade

    I’m not sure how helpful this will be, but it might give you some ideas. For your text layer, add an opacity Animator and set the Opacity value to 0. Then add an Expression Selector and delete the Range Selector. Set the Expression Selector’s “Based On” property to “Words”. Then add this expression to the Expression Selector’s Amount property:

    m = thisComp.layer(index-3).marker;
    val = 100;
    fadeTime = 1.5;
    if (m.numKeys > 0){
    n = m.nearestKey(time).index;
    if (time < m.key(n).time) n--;
    if (n > 0){
    if (textIndex <= n){
    t = time - m.key(textIndex).time;
    val = linear(t,0,fadeTime,0,100)
    }
    }
    }
    val
  • Dan Ebberts

    November 9, 2024 at 8:35 pm in reply to: ValueAtTime + easing, controlled by marker

    Ah, OK. That’s a little trickier. This assumes that the number of points on the path doesn’t change, but other than that I think it will work:

    markerTime = thisLayer.marker.key("End").time;
    if (time > markerTime){
    p1 = points(markerTime);
    p2 = points(key(numKeys).time);
    i1 = inTangents(markerTime);
    i2 = inTangents(key(numKeys).time);
    o1 = outTangents(markerTime);
    o2 = outTangents(key(numKeys).time);
    c = isClosed();
    p = [];
    i = [];
    o = [];
    for (j = 0; j < p1.length; j++){
    p.push(ease(time,markerTime,markerTime+1,p1[j],p2[j]));
    i.push(ease(time,markerTime,markerTime+1,i1[j],i2[j]));
    o.push(ease(time,markerTime,markerTime+1,o1[j],o2[j]));
    }
    createPath(p,i,o,c);
    }else{
    value;
    }
  • Dan Ebberts

    November 9, 2024 at 7:13 pm in reply to: ValueAtTime + easing, controlled by marker

    Wait, what are you trying to do?

  • Dan Ebberts

    November 8, 2024 at 10:45 pm in reply to: ValueAtTime + easing, controlled by marker

    Like this maybe?

    markerTime = thisLayer.marker.key("End").time;
    val = value;
    if (time > markerTime){
    val = ease(time,markerTime,markerTime+1,valueAtTime(markerTime),key(numKeys).value);
    }
    val
  • Dan Ebberts

    November 8, 2024 at 12:20 am in reply to: Move layer by random amount over time interval

    That’s interesting and strange. See if this makes it any better:

    moveFrames = 5;
    holdFrames = 15;
    range = 200;
    moveDur = framesToTime(moveFrames);
    totalDur = framesToTime(moveFrames+holdFrames);
    seed = Math.floor(time/totalDur);
    t = time - seed*totalDur;
    seedRandom(seed,true);
    offset1 = seed > 0 ? random([-range,-range],[range,range]) : [0,0];
    p1 = value + offset1;
    seedRandom(seed+1,true);
    offset2 = random([-range,-range],[range,range]);
    p2 = value + offset2;
    linear(t,0,moveDur,p1,p2)
  • Try it this way:

    var fontArray=[
    "Impact",
    "AbrilFatface-Regular",
    "KufiStandardGK",
    ];
    txt = text.sourceText.toLowerCase();
    v=Math.round(effect("Slider Control")("Slider"));
    text.sourceText.style.setFont(fontArray[v]).setText(txt)
  • Dan Ebberts

    November 7, 2024 at 12:47 am in reply to: Offset animation, then loopOut.

    I’m not real clear on exactly what you’re asking, but it might end up being something like this:

    tOffset = effect("Slider Control")("Slider");
    t1 = key(1).time;
    t2 = key(2).time;
    dur = t2 - t1;
    t = (time - (t1 + tOffset))%dur;
    valueAtTime(t1+t)
Page 13 of 1081

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