Free Resource

AE Expressions Cheat Sheet

5 essential After Effects expressions you can copy-paste right now. Each one saves hours per project — no scripting knowledge required.

5Expressions
100%Copy-paste ready
FreePrice
01

Smooth Bounce

Elastic overshoot on any keyframed property

Adds a natural elastic bounce to any keyframed property. Instead of a dead stop, your animations will overshoot and settle organically — just like real objects. Works on position, scale, rotation, or any numeric property.

expression.jsx
AE Expression
// Smooth Bounce — paste on any keyframed property
freq = 3;    // oscillation speed
decay = 5;   // how fast the bounce dies out
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 - 0.001);
  w = freq * Math.PI * 2;
  value + amp * (Math.sin(t * w) / Math.exp(decay * t) / w);
} else {
  value;
}
Pro Tip

Lower the decay value (try 3) for a bouncier, more playful feel. Raise it (try 8) for a subtle, refined settle. This is the single most-used expression in professional motion design.

02

Auto-Fade

Opacity fade in/out based on layer timing

Automatically fades a layer in at its in-point and out at its out-point. Set your fade duration once and forget it — the expression handles the rest no matter where you trim the layer.

expression.jsx
AE Expression
// Auto-Fade — paste on Opacity
fadeIn = 0.5;   // seconds to fade in
fadeOut = 0.5;  // seconds to fade out
Math.min(
  linear(time, inPoint, inPoint + fadeIn, 0, 100),
  linear(time, outPoint - fadeOut, outPoint, 100, 0)
);
Pro Tip

Use different values for fadeIn and fadeOut to create asymmetric transitions (fast in, slow out works great for text reveals). You can also apply this to Scale instead of Opacity for a grow/shrink effect.

03

Wiggle with Damping

Wiggle that fades out over time

Standard wiggle() runs forever. This version starts strong and gradually settles to zero — perfect for impact hits, camera shakes, or anything that should start chaotic and end calm.

expression.jsx
AE Expression
// Wiggle with Damping — paste on any property
freq = 5;        // wiggles per second
amp = 50;        // starting amplitude
fadeTime = 2;    // seconds to fully dampen
t = time - inPoint;
if (t < fadeTime) {
  dampedAmp = linear(t, 0, fadeTime, amp, 0);
} else {
  dampedAmp = 0;
}
wiggle(freq, dampedAmp);
Pro Tip

For camera shake on impacts, use freq=12 and amp=25 with a short fadeTime of 0.4s. Apply to a null parent of your camera for cleaner results. Stack this with a slight rotation wiggle for extra realism.

04

Loop Out with Offset

PingPong loop with progressive offset

Creates a seamless back-and-forth loop from your keyframes, with each cycle building on the previous one. Great for UI animations, loading indicators, or any repeating motion that should feel alive.

expression.jsx
AE Expression
// Loop Out with Offset — paste on keyframed property
// Modes: "cycle", "pingpong", "offset", "continue"
try {
  loopOut("pingpong");
} catch(e) {
  value;
}
Pro Tip

Switch "pingpong" to "offset" to create a loop where each cycle picks up from where the last left off — perfect for a counter that keeps incrementing or a position that keeps moving forward. Use "cycle" for a simple exact repeat.

05

Audio-Reactive Scale

Sync scale to audio amplitude

Drives any property from audio input. First use Keyframe Assistant > Convert Audio to Keyframes on your audio layer, then apply this expression. Your animation pulses to the music automatically.

expression.jsx
AE Expression
// Audio-Reactive Scale — paste on Scale
// Step 1: Select audio layer > Keyframe Assistant >
//         Convert Audio to Keyframes
// Step 2: Paste this on the Scale property:
audioLayer = thisComp.layer("Audio Amplitude");
audioVal = audioLayer
  .effect("Both Channels")("Slider");
minScale = 80;    // scale at silence
maxScale = 120;   // scale at peak volume
s = linear(audioVal, 0, 40, minScale, maxScale);
[s, s];
Pro Tip

Adjust the "40" threshold based on your audio — quiet tracks need a lower value (15-25), loud tracks need higher (50-70). Apply to multiple layers with slightly different minScale/maxScale values for a layered, organic feel.

Go Deeper

Want the full video walkthrough?

Our 15-minute tutorials show you exactly how to set these up in your projects — with real examples, edge cases, and pro workflows you won't find in the docs.