Forum Replies Created

Page 17 of 277
  • Filip Vandueren

    March 2, 2023 at 12:30 pm in reply to: MultiStyle text in one Text Layers

    Hi Kira, does it need to be 1 layer? I’ve just come across a way to do multiple fonts on 1 layer, but the spacing and layout isn’t easy to achieve yet.

  • Filip Vandueren

    March 1, 2023 at 9:08 pm in reply to: Markers triggers layers

    I think you only need to change line 2 into nk = m.nearestKey(time+0.5) ; but I haven’t tested.

  • Filip Vandueren

    March 1, 2023 at 10:28 am in reply to: Point text vs Paragraph text

    There’s no straightforward way to do that, but why do you need to ?

    The coordinates are correct within their own context, and if you need to use the positions elsewhere, you can use spacetransform-methods.

    For example, for both types of text-layers this code:

    sr=sourceRectAtTime();
    toComp([sr.left, sr.top]);

    positions a point correctly at their top left corner.

  • Filip Vandueren

    February 28, 2023 at 3:12 pm in reply to: Apply ease to selected keyframes using scripting

    Haven’t checked, but I think it’s because of the square brackets around your newly created Ease-object. Try:

    var easeSlow = new KeyframeEase(0, 90);
  • Filip Vandueren

    February 27, 2023 at 12:25 pm in reply to: Markers triggers layers

    Although it may need some extra logic if two consecutive markers have the same name, which they don’t in your example… Something like this:

    m = thisComp.marker;
    nk = m.nearestKey(time);
    pki = nk.index - (nk.time > time && nk.index>1 ? 1: 0);
    k = m.key(pki);
    if (k.comment==thisLayer.name) {
    linear(time,k.time,k.time+1,0,100);
    } else if (pki>1 && m.key(pki-1).comment==thisLayer.name) {
    linear(time,k.time,k.time+1,100,0);
    } else {
    0;
    }
  • Filip Vandueren

    February 25, 2023 at 2:19 pm in reply to: Transition/ easing into a parented position

    Not entirely clear how you want to automate the easing, is that using a set time, or another slider that controls the influence of the parent ?

    Perhaps the script “Faux Parent” can help you, although I’m not sure if it also has keyframe-able parenting like the script “good parents” which in turn doesn’t offer an influence slider.

    Search for “parent” on aescripts for more suggestions.

  • Filip Vandueren

    February 24, 2023 at 8:56 am in reply to: sourceRectAtTime for shapes?

    I’ll think you’d need to do something similar to subSourceRect: “disable” all but one of the shapes at certain times so you can get the sourceRect of the layer to represent the sourceRect of that shape.

    The complexity when compared to text, is that it’s easy to manipulate all the characters in a text-layer with a text animator (that’s what they’re for after all).

    But there’s no simple way to automatically target all shapes (in all subgroups) of a shapelayer, each sub shape would need expressions to handle it, and there’s no way to auto-update those if there are shapes added/deleted.

    Even determining which shape gets which index isn’t super straightforward when possibly a lot of grouping an sub grouping could be going on inside a shapelayer

  • Filip Vandueren

    February 23, 2023 at 10:37 am in reply to: Create null with expression or effect?

    I believe Effects can do script-like actions upon user interaction (for example Trapcode Particular can create, rename and Hide Light-layers)

    But writing effects is a whole other beast than expressions or scripts.

    If you’re interested in learning, I recommend https://www.youtube.com/@NTProductions

  • Filip Vandueren

    February 23, 2023 at 10:30 am in reply to: If(this OR that)… times 5.

    another more compact method:

    if ( [1,2,3,4].includes(MENU))  { … }

    or a switch statement:

    switch (MENU) {
    case 1:
    case 2:
    case 3:
    case 4:
    // this will trigger for 1-4
    // blue stuff
    break; // this will stop triggering other statements/conditions below
    case 5:
    // yellow
    break;
    case 6:
    case 7:
    // orange
    break; // etc. etc.

    The final “else clause would be with a

    default:

    statement, then close }

  • Hey Paul,

    the entire setup is made so that we want to know the size of individual characters of the text.

    There’s no built-in method to do this, you can only get the sourceRectAtTime() of the entire text-layer. But what if at certain points in Time, just one character is visible, then getting the sourceRect of the layer would be the sourceRect of that character.

    Imagine that we would make a copy of our text layer and at time 1: character 1 is visibile, at time 2: character 2 is visible etc.

    We would need a subtractive range selector from 0-1, animating its offset by “time”. That range should set all (non selected) characters’ scales to 0% (because setting the opacity to 0% does not remove characters from the bounding box rect).

    That would work, but we would need a second copy of the layer. So why not do it in the same layer, but at a different time than we use visibly in the composition. We could do that at time +100000 seconds and suppose we’ll never use that part of the layer, or we could use negative time: layers and source of layers can perfectly exist before the start of out composition, so why not.

    I choose -100 seconds as a starting point instead of 0, just as a buffer. (expression on offset)

    So, if the time is not negative, and hence visible and used int he composition, the range scaling all the characters down should just be not be active (expression on amount switching it to 0). but it’s a subtractive range, so we have to change the mode to a ‘normal’ additive range when it’s not active (expression on mode switching between mode 2 and mode 1) otherwise everything would be “not not” selected and scaled

    OK, so now we can examine the position, width and height of each individual character (at time -101 for character 1, -102 for character 2,…) , but we don’t want the cursor to be vertically aligned to the shape of each character, otherwise the cursor would be a few pixels lower when next to a “p” than when next to a “Á” character. So we use an extra text animator, to change all the characters to 1 uniform shape, again only in negative time, using the character value property, it will change ” sample text ” to ” xxxxx xxxx ” while keeping the kerning of the original, but it ignores spaces, which is why we need an epxression on sourceText to change regular spaces to special spaces which that animator does change into a character. Because otherwise, the sourceRect of ” ” is of course 0,0,0,0.

    I hope that gives some insights

Page 17 of 277

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