Forum Replies Created

Page 1 of 2
  • Thomas Frenkel

    November 21, 2022 at 3:09 pm in reply to: Insert Line Break every X number of characters

    I never responded with the solution to my question. If you want the expression to respect manually input line breaks you need a second loop wrapped around like this:

    txt=value;
    lineLength=50;
    finStr = "";
    splt1=txt.split("\r");
    for(n = 0; n < splt1.length; n++){
    outStr = "";
    newLine = "";
    splt2 = splt1[n].split(" ");
    for (i = 0; i < splt2.length; i++)
    {
    if ((newLine + " " + splt2[i]).length > lineLength){
    if (outStr != "") outStr += "\r";
    outStr += newLine;
    newLine = splt2[i];
    }else{
    if (newLine != "") newLine += " ";
    newLine += splt2[i];
    }
    }
    if (newLine != ""){
    if (outStr != "") outStr += "\r";
    outStr += newLine;
    }
    finStr+=outStr+"\r";
    }
    finStr;

  • Thomas Frenkel

    October 25, 2022 at 12:40 pm in reply to: Insert Line Break every X number of characters

    Hi Dan,

    is there a way to make this respect manually input line breaks? So that everytime I do a custom linebreak myself, i is reset to 0. That would be a dream.

    Thomas

  • Thomas Frenkel

    April 9, 2020 at 11:19 am in reply to: Feedback for the text addition template

    Thank you. I’d really appreciate that. Feel free to provide feedback and share any problems or ideas for future updates.
    Thomas

  • Yes I basically just need the final length of the text. But keep in mind that it’s not that easy in this case. I can’t just check the text.length at every keyframe of the sourceText (top row). The Substring affects that value. So I have to check at times where the substring is animated to not be active (using the second row)

    For example: If you animate your text in and out out using the substring it is important to check the text.length at the time of one of the middle keyframes (where the full text is revealed) to get the final text.length. Checking the first keyframe or the last frame of this text’s duration will result in “0”.

    Greetings

  • Thank you. The problem is that the source.text, while being animated via substring, is also keyframed, so that different lines of text/words appear over the duration of the composition. That’s why I can’t use a specific point in time for the final text.

    I also think it’s impossible. Just wanted to confirm from different sources.

  • Ah, I found a workaround:

    I am working with 2 text layers now:

    One uses the slider for the sourceText, which will convert the slider values to a string. This layer is just for the conversion and is not displayed.

    The second text layer will use the converted sourceText of the first layer by just linking it. Then I did the following expression to get the dot:

    val=thisComp.layer(“INPUT”).text.sourceText;
    amtC=val.length;
    sString=amtC-3;
    sString2=3;
    val.substr(0,sString)+”.”+val.substr(sString,amtC);

  • Sorry for digging out this out thread, but I need some help in a quite similar case:

    I have a slider control with values between 1000 and 300000 that I linked to the sourceText. I want to add a dot to have the numbers display like this:

    1.000,
    300.000,
    etc

    I want to keep the luxury of just animating the slider to change the current value. So my guess was to use “length” to get the total amount of characters and work with “substring” for the part before the dot and the part after the dot:

    val=Math.round(SLIDER); //value like “300000”
    amountChars=val.length; //amount of characters
    sString=amountChars-3; //dot is right before the last 3 chars
    val.substr(0,sString); // the first part of the value before the dot

    The problem is, that substring won’t recognize the slider values as a string (unlike the sourceText parameter);
    It works when I use normal text, but not when I input the slider values.

    Would appreciate some help

  • Thomas Frenkel

    October 5, 2016 at 8:41 pm in reply to: How can I achieve this text-light effect?

    Maybe this tutorial can help you. Might be too complex for what you are trying to do though:
    https://www.videocopilot.net/tutorials/advanced_3d_light_rays/

    [Martin Kruul] “I have another quick question in regards to this. In trying to get the 3d rotation per character for the write-on effect, I’m having a hard time having each character rotate on the screen in a 90° angle – the anchor point is turning the entire line of text 90°, not each character”

    Are you working with the text animator and try to combine that with the write-on effect?

  • [Nils Moody] “But I try to avoid them all because the cost of AFX is enough for me and many plug-ins are just making you lazy because you can actually do a lot without them.”
    ….and you can learn a lot more. This is a great mind set, to get really good in After Effects.

    [Nils Moody] “Have you any experience with it? Is it more reliable? Which one are you using?”
    I’m not sure which one is better performance-wise, but I’m pretty sure TimeWarp has the more modern and sophisticated estimation process.

    This may be a stupid tip, but did you try simple frame blending (Frame-Mix) for the muzzle flashes? This is usually used for slow motion effects on low fps footage, but it can make your muzzle flash a bit smoother.

  • Hey Nils,

    not sure if you are aware of the “TimeWarp” effect, which can be an alternative for you. You can use it for pixel motion blur on your prerendered footage:
    https://blogs.adobe.com/creativecloud/pixel-motion-blur-effect-new-in-after-effects-cc-12-0/?segment=dva

    Check this for a comparison: https://www.thepixellab.net/beginning-101-free-motion-blur-in-ae

    If this doesn’t fit your needs, can you post a screenshot of your problem frames? Are they by any chance exactly the start or ending frames of your composition?

    Or maybe there are some unwanted keyframes in your compositon. You can deselect all layers, press “UU” and check.

Page 1 of 2

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