ADOBE AFTER EFFECTS: Forum Expressions Tutorials Creative Cloud

Elastic Follow the Leader

COW Forums : Adobe After Effects Expressions

<< PREVIOUS   •   FAQ   •   VIEW ALL   •   PRINT   •   NEXT >>
Brian Swarthout
Elastic Follow the Leader
on Dec 1, 2017 at 4:31:18 am
Last Edited By Brian Swarthout on Dec 1, 2017 at 9:45:40 am

Hello,

I've been racking my brain on this one for a few days and can't seem to crack it. I'm crafty with basic expressions but am no master. I figured I'd consult the best!

I'm basically attempting to recreate the behavior of a Shape Repeater with a few exceptions:

1. Each shape layer (in this case circles) involved in the "repeater" must be a specific pixel size diameter.
2. Each shape layer must be "dropped off" in it's resting position rather than each shape moving at a different rate to it's resting position.
3. The entire unit of circles must respond to each others position to allow for keyframe overshoot using Dan Ebbert's overshoot expression.

Please see image attached below for a visual reference.

Currently, I have all of the shape layers controlled by the position of a null (named POSCTRL). Each shape has the expression below in it's Position property. The value seen in the expression is the resting position of that shape layer; this number changes on each shape according to it's resting position. The position of the null is controlled by a slider, linear-ed to the start and end position of the null. This way, as the animation occurs, the circles stop following the null when they reach their final resting position. The slider control allows me to tightly control the easing and rate of the animation. The only reason each circle is on a different shape layer is to enable it to have children layers following each layer.

I cannot figure out how to have this animation function with overshoot so that there's "elasticity" on the whole module. I'd love for each circle to be "dropped off" on they're way out from the starting position but then when the final circle overshoots it's position, the circles behind get pulled along proportionally with it. Just like a repeater with the overshoot expression applied to its position property. There must be a more elegant way to set this up?

Thanks in advance to this wonderful community!



nullPos = thisComp.layer("POSCTRL").transform.position[1];

if (nullPos&lt;2104.3484) {
[value[0],nullPos]
} else {
[value[0],2104.3484]
};


Return to posts index

<< PREVIOUS   •   VIEW ALL   •   PRINT   •   NEXT >>
© 2017 CreativeCOW.net All Rights Reserved
[TOP]