Skip to main content
Participant
February 22, 2020
Question

After Effects - Typewriter add slide control for speed and length

  • February 22, 2020
  • 2 replies
  • 2494 views

Hello - I want to use the preset typewriter for several blocks of text. I want the text to appear consistently at the same speed and possibly stop mid way through then continue with the same speed as before. I would like to use an expression since it would be very tedious to use keyframes. The block of texts are often different lengths.

I would like ABCDE to type on the same speed as DKSOEKDKSKKD, DK…would take longer since it is longer, but character appear at the same speed. But be able to pause, example DKSO for 2 sec before continuing on at the same speed as before adding the rest of the text.

 

I found an expression that controls the speed, so it is consistent between text blocks, but how can add a slider to control length of completion, but keep the same speed control?

It = time - thisLayer.inPoint;

T = It * effect("Speed")("Slider");

F = Math.round(It % 1);

 

if (F == 1 | (T, 0)) {

  Fl = "";

} else {

  Fl = " ";

}

substr(0, T) + Fl

 

The original had L = text.sourceText.length; but there was nothing “tied” to this expression.

This topic has been closed for replies.

2 replies

Roland Kahlenberg
Legend
February 23, 2020

I developed a full-featured type-on effect a while ago. Use the Percentage Completion prop to animate/hold the type on effect.

Here's the Promo Video -
https://www.youtube.com/watch?v=cXTPPXZisZY

And the download link -

http://www.broadcastGEMs.com/mediaServer01/typeOnGEMs_FREE_DOWNLOAD_Dec2017_V1.zip

IMPORTANT - You have to use the Legacy Extendscript Expressions Engine.

Very Advanced After Effects Training | Adaptive & Responsive Toolkits | Intelligent Design Assets (IDAs) | MoGraph Design System DEV
cxjNSAuthor
Participant
February 24, 2020

Very cool with the cursor, and it will be great for future projects. However, one still need to keyframe the delivery in - speed the text delivered depends on keyframes so you have to determine how many keyframes to make it consistent between blocks of text. Thank you - as mentioned, will be nice to use in the future.

Mylenium
Legend
February 22, 2020

The code does basically nothing but insert spaces. It doesn't really control the actual speed. It's just faking it by adding more characters to the source text, which I can't imagine is something anyone would want. That being the case, you will need to take a totally different approach and actually dig into the text animators themselves. There is no extra code required, just figuring out a constant rate, which can be easily done by switching the animators to absolute character index. One way or another you are going to need to animate something, anyway. It may be a better use of your time to actualyl read the help on text animators and their specifics rather than trying to look for instant magic solutions.

 

Mylenium

cxjNSAuthor
Participant
February 23, 2020

Thank you for the advice -
No, this is not what we want, adding more characters. However, there was nothing addressing the question directly, therefore we reached out to this forum.
Looking at different sources did not provide an explanation, at least at our understanding level, how to control the typewriter preset so that it delivers the characters at the same speed but allowing to pause. If you simply add the preset to two lines of text, varying in length, they will appear on at the same time, one delivering characters faster than other. Yes, you can adjust with keyframes, but if you have a lot of text, it becomes rather time consuming.
If one puts (time - inPoint) * # - # will be speed in which the characters are delivered, you can put this on two separate blocks of text and will deliver the characters at the same time - constant. But we would like to add a controller to be able to pause the animation, ie. after two lines, pause for 2 sec, then continue delivery of the text at the same consistent character speed delivery.
Is this possible – if so, how?!