Forum Replies Created

Page 1 of 275
  • You can achieve this effect without expressions with the card dance effect,

    first create a repeating grid of circles, add a card-dance with the exact number of rows and columns, and use a gradient layer’s intensity to drive the X/Y scale of the ‘cards’

  • Filip Vandueren

    September 20, 2023 at 9:50 am in reply to: Learning Expression

    I recommend this site and YouTube series:

  • Filip Vandueren

    September 19, 2023 at 8:27 am in reply to: valueAtTime() not working in nested comp

    Hi Joel,

    I’m suspecting that it’s not really the anchorPoint that is being animated, but you’re just using the anchorpoint for that toComp() method.

    You should also include the time with the toComp method like this:

    compMaster = comp("Comp");
    mouseLayer = compMaster.layer("Mouse Cursor");
    precomp = compMaster.layer("Precomp");
    layerStart = precomp.startTime;
    anchor = mouseLayer.transform.anchorPoint.valueAtTime(time + layerStart);
    mouseLayer.toComp(anchor, time + layerStart);

    Caveat that this code supposes that only that startTime has changed, so the speed of the preComp layer (stretch or timeremapping) must be at 100% or the code won’t work.

  • Filip Vandueren

    September 16, 2023 at 12:05 pm in reply to: animate the amount of text on a path (After Effects)

    Ah, sorry, I use the wrong split() parameter, this works:

    words = value.split(/\s+/g);
    numWords = Math.floor(effect("Slider Control")("Slider").value);
    words.slice(0,numWords).join(" ")+" \u200b";

    \W is any character that’s “not a word character” and it’s too strict (it only matches a-z, 0-9),
    while \s is any “whitespace” character, which we need in this case.

  • Filip Vandueren

    September 13, 2023 at 9:26 am in reply to: Per character 3D question
  • Filip Vandueren

    September 13, 2023 at 9:04 am in reply to: Per character 3D question

    Hi Pete, there’s no method to do this in the same way one would do it with a layer’s anchorpoint.

    The “per character 3D” shows small individual anchorpoints for each letter, but hose are not accessible with expressions.

    A different approach to do it is by moving the letters along the path (for text on path, you can use x-position and it will slide along the path, a full revolution would be 2*PI*R)

    Then doing an expression selector on an opacity animator, with a manually dialed in number of how many degrees wide your text-layer is.
    But it gets tricker if you also want to move the camera, or the text is dynamic etc.

  • Filip Vandueren

    September 11, 2023 at 11:21 am in reply to: animate the amount of text on a path (After Effects)

    Hi Alessio,

    I would do it like this:

    words = value.split(/\W+/g);
    numWords = Math.floor(effect("Slider Control")("Slider").value);
    words.slice(0,numWords).join(" ")+" \u200b";

    split() makes the string an array of words, slice() limits the number of elements from the array, and join() converts it to a string again

    In this case I think I’d add that extra space before the \u200b.

  • Filip Vandueren

    September 7, 2023 at 11:00 am in reply to: if/else if statements

    Hi Sean,

    that’s a lot of code to work through on a screenshot, so I haven’t

    At first glance it all looks OK, but the first thing I would try is to change all the assignments at the start of your code by ending them with …(“Checkbox”) .value;

    a Checkbox is an object, not a number, usually Javascript/expressions are smart and ‘cast’ the object to be its value according to the context, but maybe in this case that’s what’s breaking.

    Also, and perhaps that’s the more likely culprit:

    I would group all conditions of the if check into a set of parentheses, so don’t say:

    if (a ==1) || (b==1) {


    if ( (a==1) || (b==1) ) {

    In practice you could also dismiss all the ==1 because if they are 1, they are already True.

    if ( a || b)

  • Filip Vandueren

    September 1, 2023 at 11:09 am in reply to: Get Deformed Shape Path Data

    Hi Nils,

    There’s no way to do that directly.

    Some effects can be mimicked with expressions, for example by simulating our own Wiggle Paths/Wiggle Transforms via a createPath() expression.

    But merging Paths is not do-able I think. For one, it’s very hard to program that logic into an expression, and apart from that: 1 Path property must always just contain one “string” of vertices, not a compound path such as can be created with a merge/subtract operation…

  • Hi Steve,

    Presumably you’re putting the containing composition at the bottom of the layer-order, but because of compositing it has to be rendered first, so that’s what’s throwing a wrench in the works:

    the other layers have not yet been rasterized, which would define their sourceRect, and their position depends on their parent, which is sampling the sourceRect of its childs, etc. there’s the circular logic.

    If the Shape Layer is on Top, the problem disappears. So you could get creative with extra copies of the contained layers on top of the shape, that are parented to their hidden counterparts ?

Page 1 of 275

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