Skip to main content
Known Participant
Dec 22, 2020 8:04 PM UTC
Answered

Shape layer resizing from non-centered anchor point

I'm sorry the title is confusing. I'm not sure how to describe this more succintly, but an example will tell you what I'm after:

 

 

I have a shape layer, a rectangle with rounded corners. I want it anchored from the top edge and I want to maintain the same radius of the rounded corners no matter what size changes I make to the rectangle. The size property seems to ignore both the layer anchor point and the (smaller) shape anchor point. Changes to the size property are anchored in the center of the shape. All I can get to work is an expression. It works great, but there must be an easier way that I'm missing! Can anyone tell me an easier way?

 

Here's my expression solution:

 

 

On the Rectangle Path 1 > Position property

x = content("Rectangle 1").content("Rectangle Path 1").position[0];
y = content("Rectangle 1").content("Rectangle Path 1").position[1];
y += .5*content("Rectangle 1").content("Rectangle Path 1").size[1];
[x,y]

Essentially I have the shape positioning itself according to the size property, freezing the top edge in place no matter what height changes I make to Rectangle 1.

 

Any tips appreciated. Thanks!

Roland Kahlenberg
Roland KahlenbergCorrect answer
Legend
Dec 22, 2020 8:33 PM UTC

This is how it's done. However, it's much more intuitive to apply the Expression to the Rectangle's Content>Transform>AnchorPoint property.

And your Expression can be simplified since you're only wanting to offset the AnchorPoint's y value.

y = -.5*content("Rectangle 1").content("Rectangle Path 1").size[1];
[0,y]

Very Advanced After Effects Training | Adaptive & Responsive Toolkits | Intelligent Design Assets (IDAs) | MoGraph Design System DEV

9 replies

GabrieleLS
Inspiring
Sep 22, 2023 1:06 PM UTC

@Roland Kahlenberg 's solution works perfectly. It could also be applied to the x-axis:

x = -.5*content("Rectangle 1").content("Rectangle Path 1").size[0];
[x,0]

 

 

Translate
Participant
Jun 7, 2024 8:09 AM UTC

It's really helped me bro. Thanks a lot

Translate
Participant
Mar 29, 2021 6:42 PM UTC

It's great to have a solution but how lame is it that we need to write code to overcome a system that completely ignores 2 anchor points! 🙂 

Translate
Participant
Sep 13, 2022 4:07 PM UTC

Just another way Adobe products actively work against it's users.

Translate
Roland Kahlenberg
Roland KahlenbergCorrect answer
Legend
Dec 22, 2020 8:33 PM UTC

This is how it's done. However, it's much more intuitive to apply the Expression to the Rectangle's Content>Transform>AnchorPoint property.

And your Expression can be simplified since you're only wanting to offset the AnchorPoint's y value.

y = -.5*content("Rectangle 1").content("Rectangle Path 1").size[1];
[0,y]

Translate
Very Advanced After Effects Training | Adaptive & Responsive Toolkits | Intelligent Design Assets (IDAs) | MoGraph Design System DEV
Known Participant
Dec 30, 2020 10:06 PM UTC

Thank you Roland!

Translate
Roland Kahlenberg
Legend
Dec 31, 2020 4:35 AM UTC

It took you a while to come back onboard, Michael.
😉

Thanks for replying and have a great year ahead.

Do keep us in mind as you push ahead in 2021 — Happy New Year to You and Your Lovely Ones.

Translate
Very Advanced After Effects Training | Adaptive & Responsive Toolkits | Intelligent Design Assets (IDAs) | MoGraph Design System DEV