ADOBE AFTER EFFECTS: Forum Expressions Tutorials Creative Cloud

# One shape adjusting to match max value of another shape

FAQ   •   VIEW ALL
 One shape adjusting to match max value of another shape on Jan 24, 2018 at 8:02:51 pm

I am a complete noob at expressions so any help greatly appreciated!

I have 2 rectangle shapes. Rectangle 1 describes a path through movement of its y-position, with keyframes that have values of (example) 100, 300, 200, 400, 250, 600, 700, 400, 750 etc... so it is describing a generally upward movement but with dips backwards. Rectangle 2 shape y-axis scale is currently linked via a linear function to extend from its origin so that rectangle 2's y-scale corresponds to the y-position of rectangle 1's. In this way, the edge of rectangle 2 is locked to rectangle 1.

I have done this as follows

Expression on Scale on RECTANGLE 2

t = thisComp.layer("RECTANGLE 1").transform.yPosition;
x = linear(t, 30, 800, 50, 2);
[2.5,x]

This works perfectly. My problem is I need the scale of Rectangle 2 to track the position of Rectangle 1's maximum value up till that point, not it's current value. So as Rectangle 1 reaches a new high and dips backward, Rectangle 2 stays at a length that corresponds to Rectangle 1's highest value till that point in the composition. This is almost like the 'peak hold' function on a graphic equaliser. Every time a new peak is achieved, the scale holds that peak.

```t = thisComp.layer("RECTANGLE 1").transform.yPosition; x = linear(t, 30, 800, 50, 2); [2.5,x] ```