Forum Replies Created

Page 30 of 277
  • I get how the shape can adapt, but how do the two texts adapt to each other? Just position wise ?

  • Filip Vandueren

    September 20, 2022 at 12:38 pm in reply to: How to change text to bold using expressions?

    Having the original text with asterisks in a separate layer is a good idea BTW.

    Try this for your dual-styled layer:

    • expression for sourceText:

    t=thisComp.layer("inputTextLayer").text.sourceText;

    st = t.style;
    st.setText( t.replace(/\*/g,'') );
    • add an animator with these properties:
      • Stroke Opacity: 100%
      • Stroke Color: expression: text.sourceText.style.fillColor + [0,0,0,1];
      • Stroke Width: expression: text.sourceText.style.fontSize/16;
        the smaller that last number, the fatter your Faux Bold, it depends on your font, anything from 8-30/40 could work (the thinner the font you start with, the higher this number will also likely be, it’s a design decision)
      • Optionally, you could add a tiny bit of tracking at about 1-2
    • remove the default Range selector from the animator and add an expression selector.
      This is the expression for the selector amount:
    t=thisComp.layer("inputTextLayer").text.sourceText.replace(/\n|\r|\u0003/g,"");
    bold=false;
    upTo = textIndex;
    for (i=0; i<upTo; i++) {
    if (t[i]=="*") {
    bold=!bold;
    upTo++; i++;
    }
    }
    bold ? 100 : 0;
  • Here’s a version that doesn’t try to do everything in 1 layer, and also a slightly different approach on how I stored the ranges.

    – 1 guide-layer to enter the “html”

    – 1 guide-layer to analyse what character-ranges are affected by what “tag”

    – 1 layer that “renders” the html.

    It should render about 2.5 times faster, but I’m sure there’s still room for improvement.

    https://we.tl/t-UcUZZglNv7

  • Hi Malcolm, as you know that solution was just a purely academic excercise to see if I could figure out some way to do it in just 1 layer.

    I’ll see if I can come up with some optimisations, but expressions selectors always seem to bog down after effects. I’ll report back shortly.

  • Filip Vandueren

    September 20, 2022 at 9:46 am in reply to: “Illegal” variable names in expressions?

    You are correct.

    For example height gets interpreted as thisLayer.height and you can’t assign a value to that.

    So it’s best to avoid variable names that are property and method names of thisComp, thisLayer, thisProperty

  • A solutin without scripts:

    When you rename your comp to “0001”, then each subsequent duplicate of the comp will increase their name 2,3,4…

    so your text-layer’s expression could simply be:

    thisComp.name;

    or if you name it something like “Hologram Area #0001”,

    you could do:

    thisComp.name.split(“#”)[1];

    to get the final part of the name that has it’s number.

    You’ll manually have to duplicate the comp 500 times, and add to the render queue.

  • Filip Vandueren

    September 17, 2022 at 1:37 pm in reply to: Collapsing words into acronyms

    What would you want the extra letters do ? Squish together until they are width 0? Fade out, then the remaining letters merge? Move out of the way in a different manner ? I think you need to design an example first, hand animate it, and then we can think about how to Automate that.

  • Filip Vandueren

    September 16, 2022 at 9:15 am in reply to: Recreate speed graph with bezier curves

    Hi Evgueny,

    The Speed Graph Curves are the Derivative (Gradient) of the Value Graph Curve.

    The tangents (which are always horizontal) also have a relation to the tangents of the Value Graph Curve: the Y-position is the gradient of the Tangent of the bezier handle in the value graph, the X-Width is 1/2 of the X-width of the Bezier handle of the value Graph.

  • Filip Vandueren

    August 7, 2022 at 10:09 pm in reply to: Get value for expression from Info panel.

    Perhaps you can make a hidden copy of the layer with 3D Channel Extract, then use sampleImage() on the resulting grayscale depth matte

  • Filip Vandueren

    August 2, 2022 at 9:24 pm in reply to: Line graph animation

    You would start with a dataset, like a .csv.

    Then to draw the line; this expression on a Path should get you started:

    w=1600;
    pts=[];
    endF=1+timeToFrames(time);
    for (i=0; i<=endF; i++) {
    data = parseFloat(footage("data.csv").dataValue([1,i]));
    pts.push([i*(w/endF),data]);
    }
    createPath(pts,[],[],false);

    That will draw a line, that gets a new datapoint every frame from column 2 of data.csv, but the total width will always be 1600 pixels.

Page 30 of 277

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