The Bounce and Overshoot Animation Trick Every Motion Designer Should Know
Mastering motion design means understanding keyframes and their ease curves.
There are two deeper concepts of motion design to understand past the standard Linear, Hold and Easy Ease keyframes. The concept of "overshoot" and "bounce."
Overshoot and Bounce represent movement that adds life beyond a PowerPoint presentation.
Overshoot: going past a desired value and returning (e.g. swinging through)
Bounce: resolving a desired value with incremental rebounds (e.g. hitting a wall)
In this article, we'll look at native After Effects methods with manual keyframes and the Graph Editor and compare them to Motion Studio's Excite and Jump tools and the Cubic and Value easing panels.
The Native After Effects Workflow
After Effects does not have native Overshoot or Bounce tools, since the movement can be subjective and context dependent.
The default After Effects methods are manual keyframes or, using a simple expression.
Manual keyframing
To set up a quick example for both Overshoot and Bounce:
- set a staring property (Scale: 50) value with a keyframe
- scrub forward in time and add the end value (Scale: 100)
To Overshoot with keyframes: indicate an overshoot with a median keyframe between start and end values (Scale: 150)
To Overshoot with bezier handles: select the end value and use the keyframe Bezier handle with the Graph Editor
To Bounce with keyframes: indicate a bounce with a rebounded value and a new keyframe (Scale: 75) and a duplicate end keyframe (Scale: 100)
To Bounce with bezier handles: set a duplicate end keyframe (Scale: 100) and use the Bezier handle to shape a rebounded value.
For more "convincing" and lifelike animation these oscillations to create Overshoot and Bounce are duplicated with shorter durations and amplitude to diminish and resolve.
Manually setting keyframes is very accurate and precise, but can be intensive to set and change, or have objects/layers feel natural and synchronized.
TIP: Motion Studio has a full Easing suite, with simplified controls and Cubic Easing controls to easily work with pro Overshoot and Bounce.
The expression approach
Since setting keyframes manually can be so time intensive, After Effects has a more common method using the property Expressions and a simulated "inertial" bounce.
Common bounce expression:
freq = 3;
decay = 5;
n = 0;
if (numKeys > 0){
n = nearestKey(time).index;
if (key(n).time > time) n--;
}
if (n > 0){
t = time - key(n).time;
amp = velocityAtTime(key(n).time - .001);
w = freq * Math.PI * 2;
value + amp * (Math.sin(t * w) / Math.exp(decay * t) / w);
} else {
value;
}
TIP: this bounce expression is property universal, so can work on [x,y,z] properties, single properties and decimal values.
PRO-TIP: this bounce expression works best with a Linear keyframe as the secondary value that will bounce/overshoot. The math in the expression behaves more realistic without trying to work with Easy Ease speed and velocity confusion.
Like any manual method (like keyframes) setting the bounce expression on multiple properties can become hard to manage, since the expressions are independent.
To simplify some of the management you can rig up Slider controls and link expressions with the pickwhips to make the setups easier.
TIP: one of the benefits of using .FFX controls with expressions, is then properties like Frequency and Decay, can have keyframes set — which opens up tons of dynamic animation styles.
How do I add bounce and overshoot to animation in After Effects?
If you want to save time from manually setting keyframes, or managing independent property expressions, you can use Motion Studio and the two custom tools Excite (overshoot) and Jump (bounce).
These two Motion Studio tools have improved expressions, global references and more, making bounce and overshoot motions easy to adjust live.
Excite: overshoot
To set up Excite, select one or, more keyframable properties (even across multiple layers), open the Excite tool in Motion Studio and Run.
Deeper expressions and custom effect controls will be created on each layer and automated across properties.
TIP: Overshoot means going past a desired value and returning (e.g. swinging through)
Excite has three main parameters:
Overshoot is the magnitude of how far past a value is possible. A higher value means a larger "wobble."
Bounce is the frequency of the oscillations. A low value is slow, a high value is rapid.
Friction is the decay, or the speed at which the oscillations and overshoots resolve. With 0 friction property values can oscillate perpetually, and a high friction will resolve fast.
Setting (or, keyframing) these three parameters will tailor an overshoot and add life to keyframable properties.
Jump: bounce
To set up Jump, select one or, more keyframable properties (even across multiple layers), open the Jump tool in Motion Studio and Run.
TIP: Bounce means resolving a desired value with incremental rebounds (e.g. hitting a wall)
Deeper expressions and custom effect controls will be created on each layer and automated across properties.
Jump has three main parameters:
Stretch is the maximum property value change, which sets the peak auto-value of a bounce that will diminish.
Gravity works to dampen and decay the bounce. A high value is short and fast bounces, a low Gravity makes a floating slow motion.
Max Jumps is a range/limit to resolve the bounce reflections (e.g. bounce x2 times)
Using both overshoot and bounce together
Excite and "overshoot" are like a swing, and Jump and "bounce" are like a rebound from a surface impact. Since both motion patterns are automatically changing values. They can't be used on the same property.
However, separated properties across a Layer(s) (like, Scale and Position) can use Excite or Jump for their independent movements.
Common Questions About Bounce and Overshoot in After Effects
What's the difference between overshoot and bounce?
Proper definitions will try to use the term "harmonic oscillation" (e.g. change positive and negative from a value) to describe overshoot. Most spring, swing or wave motions are overshoots. Overshoot adds a "pre" or "post" anticipation of action.
Bounce will often be used with the word "asymmetric oscillation" (e.g. single side rebound). Most bounces, hits and impacts would be considered a bounce.
TIP: to master bounce and overshoot, try using the keyframeakeyframableble Motion Studio tools for Jump and Excite, to gradually change (ex: Gravity)
Can I apply overshoot to multiple properties at once?
Yes, expressions can be shared across properties. For smarter and flexible overshoots, use the Excite tool in Motion Studio to apply overshoot in bulk from one Run Tool operation.
Excite automatically sets global Effect Controls and builds separate custom effect controls to tune the movement.
How do I make the overshoot more subtle?
Overshoot (and bounce) is an expression that is dependent on the velocity and speed of the previous keyframe. This means that occasionally an unexpected and wild overshoot might happen.
To fix this, try using Friction in the Effect Controls to lower the overshoot value. Friction will cause the overshoot to resolve faster and more subtle.
Friction is the decay, or the speed at which the oscillations and overshoots resolve. With 0 friction property values can oscillate perpetually, and a high friction will resolve fast.
Does the inertial bounce expression work on all properties?
Yes (mostly) the bounce expressions work on all keyframable properties with some exceptions.
Some properties like Modes or Lists use Hole keyframes and have static value changes, seeing a gradual "bounce" or "overshoot" through properties will be difficult to see, but can technically be applied.
How do I control how many times an object bounces?
The amount of bounce, when using the common inertial bounce expression, is controllable with the frequency and duration.
Or, for easier management, use the Jump tool in Motion Studio for keyframable and expanded expression control and the Max Jump effect parameter.
Excite and Jump are available now. Try Motion Studio free for 7 days — no credit card required.
