ADOBE AFTER EFFECTS: Forum Expressions Tutorials Creative Cloud

# Manual Inertia bounce

FAQ   •   VIEW ALL
 Manual Inertia bounce on Jun 23, 2015 at 4:58:29 pm

Hey guys,

I've used the inertia bounce expression in ae for years now and when i came to do it manually, i just couldnt get the same effect.

I understand the logic, this is how I would do it:

position A +10 frames to position B, 5 frames later move object +10 pixels past position B, 4 frames later move object -8 pixels past position B, 3 frames later move object +6 pixels past position B etc until it becomes it's resting position)

Does anyone know the best way to achieve the inertia bounce manually similar to the expression's results? I can't seem to but maybe im doing something wrong within the speed/value graphs?

Some pro tips would deffinately be appreciated!

Thanks :)

Dan.

 Re: Manual Inertia bounceon Jun 23, 2015 at 7:54:00 pm

it would be difficult to reproduce something precise manually...

also, there are many different inertial bounce expressions and within each there are settings for frequency and spring constant/decay, etc, so you would need to provide the expression.

one tip though, since most bounce expressions don't change the frequency of the bounce, i'd start by making all the keyframes the same number of frames from each other. the only exception i'm aware of that changes the frequency is dan ebberts' realistic-bounce-and-overshoot expression

Kevin Camp
Art Director
KCPQ, KZJO & KRCW

 Re: Manual Inertia bounceon Jun 23, 2015 at 8:36:48 pm

Hi Kevin,

The main expression I use is as follows:

// Inertial Bounce (moves settle into place after bouncing around a little)
n = 0;
if (numKeys > 0){
n = nearestKey(time).index;
if (key(n).time > time){
n--;
}
}
if (n == 0){
t = 0;
}else{
t = time - key(n).time;
}

if (n > 0){
v = velocityAtTime(key(n).time - thisComp.frameDuration/10);
amp = .05;
freq = 4.0;
decay = 2.0;
value + v*amp*Math.sin(freq*t*2*Math.PI)/Math.exp(decay*t);
}else{
value;
}

Any idea what I could do keyframe wise to achieve something similar? doesnt have to be exactly like the above, just would like to know how to keyframe one in general!

thanks

 Re: Manual Inertia bounceon Jun 23, 2015 at 11:20:21 pm

since your expression is based off the velocity coming into the last keyframe, you'll need to do a little math to manually keyframe this.

for starters the frequency (or cycle) is 4, so the complete movement from low keyframe to high keyframe back to the next low keyframe is 1/4 of a second. if you are working at 30 fps, that's a messy 3.25 frames between keys, i'd go with 4 frames between keys.

let's call the value of the end keyframe the base value. to estimate the overshoot amount go back 2 keyframes and subtract that value from the base value, move 2 keyframes past the base value keyframe and add that value to the base value.

you'll need to factor in decay as you go further.... your decay rate of 2 would be about a 60% every cycle, so about 80% every keyframe, so to set the first up swing, move down the timeline 4 more keyframes and subtract 80% of the overshoot amount from the base value.

then move 4 keyframes down the timeline and add 80% of that value you just calculated for the upswing to the base value.

and keep doing that until your overshoot value gets close to 0.

and you'll want to make all the 'bounce' keyframes easy-ease keyframes.

Kevin Camp
Art Director
KCPQ, KZJO & KRCW

 Re: Manual Inertia bounceon Jun 26, 2015 at 9:15:24 am

Hi Kevin,

I think I understand what you mean, I assume the base value your reffering to is the stopping point of the object? (last keyframe).

Is there anyway you could be kind enough to mock me up a basic example to take a look at in AE?