Expression to offset shape group scale animation?

Community Beginner ,
Jun 15, 2022 Jun 15, 2022

Copy link to clipboard

Copied

I’m animating dots shapes from typography converted to shapes scaling up with overlapping animation. There are lots of circles in a shape layer and I want them to come on with a X frames distance. Is there a way you can offset keyframes like you can layer or do I have to do it manually? What would be your fastest way of doing it with an expression?

 

So far I have these 2 options, but they only work towards one shapes group but it doesn't propagate towards groups 3,4, and so on

 

for x5 frames offset

offset = .2;content(“NAME OF THE GROUP“).transform.scale.valueAtTime(time-offset);

 

for x1 frame offset

offset = thisComp.frameDuration;content(“NAME OF THE GROUP“).transform.scale.valueAtTime(time-offset);

 

Cheers!

TOPICS
Expressions , Scripting

Views

77

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

correct answers 1 Correct answer

Community Beginner , Jun 15, 2022 Jun 15, 2022

Thank you Dan,

 

I tried your expression but it is sending me an error. I had attached a screenshot.

 

I amended it to this one

offset = .1;
id = thisProperty.propertyGroup(2).propertyIndex;
content("B 2").content("Group 2").transform.scale.valueAtTime(time-id*offset)

The part I changed is the content ("Group 1") with ("Group 2")

And it works!

 

Thank you

Likes

Translate

Translate
Adobe Community Professional ,
Jun 15, 2022 Jun 15, 2022

Copy link to clipboard

Copied

You misunderstand how expressions work. Their scope is limited to whatever property they are applied to and they can only "look up" external values, but you cannot enforce anything downstream by just applying it to a single property and hoping it will ripple through the group. If at all, you'd have to copy & paste the expression to all matching properties. That said, even then your code is incomplete as of course in order to get an actual gradual expansion you'd have to multiply the delay and offset values by some sort of index per item, but that entirely depends on how your shapes are organized and how you want them to be scaled. At the very least you have to provide some screenshots. Otherwise, if you're really only dealing with dots you may want to explore other techniques like this one:

 

Gradient Controller - After Effects Tutorial - YouTube

 

There's many more, but really, you have to be more specific and explain in more detail what you are looking to achieve.

 

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
Adobe Community Professional ,
Jun 15, 2022 Jun 15, 2022

Copy link to clipboard

Copied

It's not exactly clear how you want this thing to sequence, but in any case, an expression that needs to figure out where it is, timing-wise, in the sequence, requires it to know how you have the shape layer structured. You can use propertyGroup() to navigate the levels of the hierarchy, but it can be tricky because there are hidden levels that you need to take into account. It would be helpful if you can post a screen shot of your timeline with all the shape layer levels exposed.

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 15, 2022 Jun 15, 2022

Copy link to clipboard

Copied

Could you use a repeater?

RickGerard_0-1655312797995.gif

 

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
Community Beginner ,
Jun 15, 2022 Jun 15, 2022

Copy link to clipboard

Copied

Thank you for your reply. Very helpful to touch base and explore some options.

I'm creating a setup so my team can quickly animate dots from corporate typography whenever we need to deal with text under the agreed animation style (this is the scale-up of each dot for each letter with an offset of 1 to 5 frames). At the moment we need to animate de dots that shape the letters manually and once we convert to shapes each letter, we finish having several groups all named sequentially.

 

The aim here is:

1-Finding a way to expression values inside a single layer that hosts several groups vs sequence animation of several layers (it will delay the workflow if we have to, after converting each letter to shapes, then split each dot into a single layer and the sequence layers to achieve the offset)

2- Offsetting each group scale animation based on the previous group id (group number)

 

I'm attaching 3 screenshots of how one dot would animate, so my aim is to find a way to animate the whole letter's dots sequentially with an expression.

 

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 15, 2022 Jun 15, 2022

Copy link to clipboard

Copied

Can you post a project file that has what you're showing in the screenshots (circle letters converted to shapes)?

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
Community Beginner ,
Jun 15, 2022 Jun 15, 2022

Copy link to clipboard

Copied

https://www.dropbox.com/s/8nybhif4c1hgd1e/Letter_animation.aep?dl=0

Here is a link to download an AEP with a single letter (already converted into shape groups).

 

Cheers!

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 15, 2022 Jun 15, 2022

Copy link to clipboard

Copied

I'm not sure this is ultimately what you're after, but this will sequence the dots in the B2 letter groups to follow the scale animation of the dot in Group 1:

 

offset = .1;
id = thisProperty.propertyGroup(2).propertyIndex;
content("B 2").content("Group 1").transform.scale.valueAtTime(time-id*offset)

BTW, the file I downloaded looks like the one you posted your screenshots from (I don't know if that was your intention). In any case, I ended up where the expression error was: in the START_01 comp, GREAT DEAL ON BROADBAND 2 Outlines layer/Contents/B2/Group 2/B/Transform: Group 2/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
Community Beginner ,
Jun 15, 2022 Jun 15, 2022

Copy link to clipboard

Copied

LATEST

Thank you Dan,

 

I tried your expression but it is sending me an error. I had attached a screenshot.

 

I amended it to this one

offset = .1;
id = thisProperty.propertyGroup(2).propertyIndex;
content("B 2").content("Group 2").transform.scale.valueAtTime(time-id*offset)

The part I changed is the content ("Group 1") with ("Group 2")

And it works!

 

Thank you

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