A tiny After Effects script that drops an inertial bounce (overshoot) expression onto every selected property. Keyframe the move, hit the hotkey, get the wobble.
Select one or more keyframed properties in the timeline, run the script, and each one gets a bounce expression:
- After every keyframe, the value overshoots and settles — a decaying sine wave driven by the speed the property was travelling when it hit the key.
- Faster move in = bigger bounce. No movement = no bounce.
- Works on anything that can take an expression: Position, Scale, Rotation, effect sliders, shape properties…
- Any number of properties across any number of layers, in one undo step.
value
│ ╭╮
│ ╱ ╲ ╭─╮
│ ╱ ╰─╯ ╰──────── ← overshoots, then settles
│ ╱
│────╯
└──────◆─────────────────── time
keyframe
- Place
AddBounceExpression.jsxin your Scripts folder and run via File → Scripts → AddBounceExpression.jsx:Windows: C:\Program Files\Adobe\Adobe After Effects [version]\Support Files\Scripts\ macOS: /Applications/Adobe After Effects [version]/Scripts/
- Keep the
.jsxanywhere and trigger it from your hotkey tool of choice, e.g. AutoHotkey:run, "<path-to-AfterFX.exe>" -r "C:\path\to\AddBounceExpression.jsx"
- Keyframe a property (at least two keys, so it's actually moving into the last one).
- Select the property in the timeline — click its name, e.g. Position. Select as many as you like.
- Run the script.
- Done! Scrub past a keyframe to see the bounce.
Open the expression on the property and change the three numbers:
| Variable | Default | What it does |
|---|---|---|
amp |
.03 |
How big the overshoot is |
freq |
1.0 |
Bounces per second |
decay |
8.0 |
How quickly it settles (higher = dies faster) |
To change the defaults for every future use, edit the same three lines inside the script's bounceExpr block.
- The bounce only plays for 1 second after each keyframe; outside that window the property is left at its keyframed value.
- Running it replaces any expression already on the selected properties.
- Linear or fast-in keyframes bounce best — an Easy Ease in arrives at zero speed, so there's nothing to overshoot.
- If nothing is selected you get a single reminder dialog.
- Adobe After Effects (any version with scripting support)
The bounce itself is the classic inertial bounce expression by Dan Ebberts (motionscript.com) — this script just applies it for you in one keypress.
MIT