Expression to move letters when paths expand

New Here ,
Jun 07, 2022 Jun 07, 2022

Copy link to clipboard

Copied

I have to animate a bunch of lines of text where I need to disort the path of a letter and make the other letters in the word adjust to the new size. All of these letters are part of one singular Shape Layer. I start distorting the first letter and then the second until I distort all the way to the last. 

 

I'm strugglign to make an expression similar to .sourceRectAtTime where if I expand a letter, the rest should move to the side automatically. Any ideas?

 

TYIA!

TOPICS
Expressions , FAQ , How to

Views

25

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Adobe Community Professional ,
Jun 07, 2022 Jun 07, 2022

Copy link to clipboard

Copied

Unfortunately, sourceRectAtTime() only returns the size of a whole layer. If you converted the text to outlines and you want to scale one letter in x at a time, you could tie that Shape/Transform/Scale to the position value of each of the other letters. If you want to animate the actual path of each letter instead of just the scale, you will need one letter on each layer. That is the only way you could tie the width of a single letter directly to the position of the other text layers using sourceRectAtTime(). Your screenshot looks more like animating the path than X-scale, so I think you need one layer for each letter. I am also guessing that you do not want the entire width of the line of text to remain constant, so each letter scales as the expanding letter animates. Keeping the width of the line of text is possible. It's just more complicated.

 

I don't have time to write the expression for you now, but if you stack the layers with the first letter on the top layer. You use index-1 as the source layer, then combine the width of that layer, the width of the current layer, the position of the source layer, the position of the current layer, and the width of the current layer, you should be able to create an expression for positon for each layer that will line up the layers based on their width and keep shifting everything as you animate the size of each layer. The first layer would not have an expression.

 

If just scaling each letter is an option, a much easier solution would be to keep the layers as text layers and add a pair of scale animators, then animate both the start and end points for the two copies of scale.

 

 

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Adobe Community Professional ,
Jun 08, 2022 Jun 08, 2022

Copy link to clipboard

Copied

LATEST

A simple case of "Why even bother to make things so complicated?" Simply split up the layers and move them around. There is no need to rig anything with expressions here. It's all just illusion painting with splitting up the layers vertically in suitable positions and having some strokes expand. The rest then is just grabbing ther layers and keyframing their positions, which you would have to do one way or the other, anyway.

 

Mylenium

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines