Forum Replies Created

Page 18 of 65
  • Hi Trent. Thanks for the answer. I was not clear enough. My text is a boxText and the linbreaks are the one created by AE. I don’t know of any expression to identify those end of lines, that can be used in .split(). I guess that is kind of what I hoped to exist, an expression to identify those automatic line breaks.

  • Andrei Popa

    May 8, 2021 at 7:24 am in reply to: Showdown counter with expression

    Select your layer and press U. You should see a Point Control property. Modify the values/position of this property for a different speed.

  • Try to use rect = L.sourceRectAtTime(L.sourceTime(2),true); I had the same problem if the layer was moved forward or backward in the timeline.

  • That is quite an impressive rig he created there.

    As he mentions in the video, you need to change the name of the animator. From “Animator 1” to whatever you need. But I would not go with this huge expression unless I really need it. It is quite long and with more texts that have this, your render time will increase.

  • I use a text animator for this. Just add a text animator and set the position and scale to look like superscript(or whatever different style you need), add an expression selector and add this expression to the selector

    txt = text.sourceText.replace(/\r/g,"").split("");
    "®™sd".indexOf(txt[textIndex-1]) != -1 ? 100 :0

    Replace the “®™sd” string with the characters you want to adjust. Downside is that they will be adjusted everywhere, so if you want one to be adjusted just in one place, this does not work.

  • Even if it is not optimized, this should work.

    Modify sp value to change the speed.

    var sign = '|';
    var blinkInterval = 5;
    //speed, frames per character
    var sp = 3;
    len = value.split("").length;
    var i = linear(time,inPoint,inPoint + len * sp * thisComp.frameDuration,0,len);
    // checkbox to turn the cursor on and off
    var on = effect ('On/Off') ('ADBE Checkbox Control-0001');
    var frames = timeToFrames (time);
    var check = frames / blinkInterval;
    if (on == 1) {
    if (time < inPoint + len * sp * thisComp.frameDuration) {
    end = sign;
    } else {
    if (Math.floor (check) % 2 == 0) {
    end = sign;
    } else {
    end = '';
    }
    }
    } else {
    end = '';
    }
    text.sourceText.substr (0, i) + end;
  • Andrei Popa

    April 17, 2021 at 1:10 pm in reply to: Wiggle across one axis with no overlap

    The lines should go upwards, in the order they get when you press ctrl+d to duplicate them. Something like:

    Line4

    Line3

    Line2

    Line 1

    But I think Dan’s solution is better because mine tends to stack the lines on the right side if there are too many.

  • Your function here has some mistakes. It does not go through the layers inside a comp if it finds one, it does not modify the length of the layer source aswell as the layer itself if it finds a comp. I have made some small changes. This worked for me.

    function setLayersDuration(comp, durationValue){
    comp.duration = durationValue;
    comp.startTime = 0;
    //comp.outPoint = comp.inPoint + durationValue;
    for(var j=1; j<=comp.layers.length; j++){
    var layer = comp.layers[j];
    if (layer.source instanceof CompItem){
    $.writeln('we have a CompItem');
    // layer.source.duration = durationValue;
    layer.source.duration = durationValue;
    layer.outPoint = durationValue;
    setLayersDuration (layer.source, durationValue)
    } else {
    $.writeln('we have a layer');
    layer.outPoint = layer.inPoint + durationValue;
    }
    }
    }

  • Are you sure all the layers in the composition are also extended? And you have no time remap on any of the elements?

  • Andrei Popa

    April 13, 2021 at 7:13 am in reply to: Wiggle across one axis with no overlap

    Here is an idea.

    I made the first line wiggle between mid of comp and 0. Then, for each of the following, I made them wiggle from the previous line to the end of the comp. Make sure to set the x positions of the lines to 0, otherwise you will have to subtract it from the wiggle and that is just unnecessary computing.

    On the first line put this expression(after you set the first value of position to 0):

    startPos = thisComp.width/4;
    freq = 1;
    wiggDistance = startPos;
    [startPos+wiggle(freq,wiggDistance)[0],value[1]]

    Duplicate it and then, on the second line put this expression:

    prevPos = thisComp.layer(index+1).position[0];
    wiggDistance = (thisComp.width-prevPos)/2;
    startPos = prevPos+wiggDistance;
    freq = 1;
    [startPos+wiggle(freq,wiggDistance)[0],value[1]]

    Now, you can duplicate this second line for as many times as you want. You may want to diminish the wiggDistance for the first line if you add a lot of line, because the left part of the comp will have less action.

Page 18 of 65

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