Forum Replies Created

Page 28 of 277
  • This is the basic approach:

    – make sure the text is in a text-box, not paragraph text (you draw a rectangle with the type tool instead of clicking)

    – make that text-box the width you need initially, but oversize it plenty vertically if you plan on animating it to be less wide later on.

    – make sure the anchorPoint of the text-box is at the top of the box , and corresponds to your paragraph alignment (topleft for left justified, topMiddle for centre aligned, etc.)

    – give the sourceText this expression:

    s=100/transform.scale[0];
    style.setFontSize(style.fontSize*s).setLeading(style.leading*s);

    – now animate the scale parameter and the box will get wider/narrower while the font visibly remains the same size and rewraps.

  • Filip Vandueren

    October 4, 2022 at 12:43 pm in reply to: cached preview

    When I get the error of the 2 frames, a restart of the application is all that helps, after purging cache, disk cache, switching bit depth to force rerenders,… those help when I don’t get as much Ram preview as I want, but 2 frames error = restart

  • Filip Vandueren

    October 3, 2022 at 11:54 am in reply to: Very slow RAM preview

    Try converting the footage to prores before importing into After Effects and see if that helps.

  • Filip Vandueren

    October 3, 2022 at 11:43 am in reply to: Marker duration triggers scale

    Hi Jean,

    try this as an expression for scale of the layer:

    (function getZoomFromMarker() {

    if (!marker.numKeys) return [100, 100];

    nk = marker.nearestKey(time);

    nki = nk.time > time ? nk.index - 1 : nk.index;

    if (nki == 0) return [100, 100];

    m = marker.key(nki);

    markerEndTime = m.time + m.duration;

    if (time > markerEndTime) return [100, 100];

    zoomFactor = parseFloat(m.comment.split(" ")[1]);

    return [zoomFactor, zoomFactor];;

    })();

  • Hi Malcolm, try this for the layer’s anchorPoint:

    posterizeTime(0);
    l = thisLayer;
    w = l.width;
    h = l.height;
    threshold = 0.1;
    s = [0, 0, 0, 0];
    for (x = 0;
    (s[3] < threshold && x <= w); x++) s = l.sampleImage([x, h / 2], radius = [0.5, h / 2], postEffect = false, t = time);
    leftEdge = x;
    s = [0, 0, 0, 0];
    for (x = w;
    (s[3] < threshold && x >= 0); x--) s = l.sampleImage([x, h / 2], radius = [0.5, h / 2], postEffect = false, t = time);
    rightEdge = x;
    s = [0, 0, 0, 0];
    for (y = 0;
    (s[3] < threshold && y <= h); y++) s = l.sampleImage([w / 2, y], radius = [w / 2, 0.5], postEffect = false, t = time);
    topEdge = y;
    s = [0, 0, 0, 0];
    for (y = h;
    (s[3] < threshold && y >= 0); y--) s = l.sampleImage([w / 2, y], radius = [w / 2, 0.5], postEffect = false, t = time);
    bottomEdge = y;
    pixelRect = {
    top: topEdge,
    left: leftEdge,
    width: (rightEdge - leftEdge),
    height: (bottomEdge - topEdge),
    right: rightEdge,
    bottom: bottomEdge,
    center: [leftEdge + (rightEdge - leftEdge) / 2, topEdge + (bottomEdge - topEdge) / 2]
    };
    pixelRect.center;
  • Filip Vandueren

    October 3, 2022 at 9:02 am in reply to: Source text rotation limited to 360 degrees

    You would need to add parent.rotation:

    ((rotation+parent.rotation)%360).toFixed(2);

  • Filip Vandueren

    October 3, 2022 at 8:58 am in reply to: Adjustable countdown for Essential Graphics

    That’s in preferences, I mean in project settings (where you also set color space)

  • Filip Vandueren

    September 30, 2022 at 10:23 am in reply to: Adjustable countdown for Essential Graphics

    Can you go to your project settings and check that the expressions language is on “JavaScript”, it’s probably on Legacy Extendscript mode?

  • I would use the audio waveform effect, and use that as an alpha matte for a second layer, that layer should just create blocks of color moving right to left. That could also be achieved by a simple particle system.

  • Filip Vandueren

    September 27, 2022 at 2:35 pm in reply to: Adjustable countdown for Essential Graphics

    Hi Gerben,

    try this:

    1. startValue = effect("from")("Slider").value;
    2. endValue = effect("to")("Slider").value;
    3. startSecond = 1;
    4. endSecond = 4;
    5. v = ease(time, startSecond, endSecond, startValue, endValue);
    6. new Intl.NumberFormat('nl-NL', {
    7. style: 'currency',
    8. currency: 'EUR',
    9. useGrouping: false
    10. }).format(v);
Page 28 of 277

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