This tutorial walks through a real animation cleanup task — a 24-frame jump cycle — with a focus on one principle: never let the playhead move while you fix the past.
We'll use ExactKey for the inline edits, but the technique generalizes. If you take only one thing from this post, take the principle. The tool is just the leverage.
The starting point
You have a character jump animation: 24 frames, four poses (anticipation → peak → land → settle), and the IK targets are keyed on every pose. You're parked on frame 24, judging the settled pose, and you spot three problems:
- The peak (frame 12) reads too high — it breaks the silhouette of the next pose.
- The arc on the hand from frame 6 → 12 → 18 isn't smooth — there's a kink at frame 12.
- The ease on the landing (frames 16–20) is too soft — the character feels like they're floating down, not landing.
Three problems, three frames in the past. The native Blender workflow is six round-trips. The ExactKey workflow is six clicks.
Setup
- Open your scene. Park the playhead on frame 24 (the final pose) so you have visual feedback for every change.
- Open a Dope Sheet in one editor and a Graph Editor in another. The Dope Sheet shows you which channels exist; the Graph Editor shows you arcs.
- Hover any keyframe in either editor. You should see ExactKey's halo glow on the key under your cursor — confirms the addon is active.
Problem 1: The peak is too high
The hand IK on frame 12 is at Z = 1.85. We want it at Z = 1.65 — about 11% lower.
Native workflow: Scrub to frame 12, find Hand_IK in the N-panel, edit Z, scrub to frame 24, evaluate, repeat if needed.
ExactKey workflow:
- In the Graph Editor, hover the Hand_IK Z-channel keyframe at frame 12. Halo glows.
- Tooltip after a short dwell shows
pose.bones["Hand_IK"].location[2] · 12 : 1.85. Confirmed. - Double-click.
- In the popup, the Value field shows
1.85. Type*0.89and press Enter. - The viewport — still showing frame 24 — updates if frame 24 derives from this curve. The peak at frame 12 is now
1.6465. Single undo step.
Total elapsed: ~5 seconds. Playhead never moved.
Problem 2: The hand arc has a kink at frame 12
Looking at the Graph Editor, Hand_IK X has keys at frames 6, 12, 18. The middle key is slightly off the curve, creating a kink.
You could drag it — but dragging is imprecise. You want it to fall exactly midway between the values at frames 6 and 18.
The values are: frame 6 → X = 0.4, frame 18 → X = 1.0. The midpoint is 0.7.
ExactKey workflow:
- Double-click the keyframe at frame 12.
- In the popup, type
0.7in the Value field. Press Enter.
Done. Curve is now smooth through frame 12. If you want to verify, hover the new key — the tooltip confirms 12 : 0.7.
If you need to batch this — say, the same fix across X, Y, and Z channels — use Channel Snapshot:
- Shift + double-click the frame-12 keyframe on any one channel.
- The Channel Snapshot popup opens with rows for every channel keyed at frame 12.
- Edit X, Y, and Z all at once.
- Press Enter. All three commit as a single undo step.
Problem 3: The landing ease is too soft
The landing happens between frames 16–20. You have keys at 16, 18, and 20. You want to compress the ease — push the in-betweens closer to the landing frame so the character lands harder.
The technique: scale the deviation from the landing frame. If the value at frame 18 is 0.6 of the way from anticipation peak to landing settle, you want it at 0.85 — closer to settled, harder landing.
You'd normally compute the new values per channel by hand. With ExactKey's relative math and Apply To Selected, you do it in one operation.
ExactKey workflow:
- In the Graph Editor, box-select the keys at frames 16 and 18 across the Hand_IK Z, Foot_IK Z, and Hips Z channels — six keys total.
- Double-click any one of them.
- In the popup, toggle Apply To Selected.
- In the Value field, type
*1.4(push values 40% closer to peak compression). Press Enter.
All six keys receive the same multiplicative delta in a single undo step. The viewport at frame 24 still hasn't moved. Scrub the timeline (now you can — you're done with the edits) to evaluate the new ease.
If *1.4 was too much, Ctrl + Z rolls back all six edits in one step. Try *1.25. Iterate.
The principle
Notice what we did not do:
- We did not scrub away from frame 24.
- We did not lose the visual reference of the settled pose at any point.
- We did not commit any edit that took more than one undo step.
- We did not compute a single value by hand —
*0.89,0.7,*1.4did the math.
Every edit was anchored on the keyframe itself. The playhead, the viewport, and our focus stayed locked on the present while we fixed the past.
That's the entire pitch.
Where to take this next
This same pattern applies to:
- Lip sync — fixing mistimed phoneme keys without losing the audio context you just heard
- Camera animation — adjusting in-between camera positions while parked on the framing you're approving
- Constraint blending — rebalancing influence values via Channel Snapshot at a single frame
- Mocap cleanup — broadcasting per-channel deltas across selections of mocap keys
If you've been doing any of these via scrub-and-N-panel, the ExactKey getting-started guide gets you set up in under a minute.
Stay locked in your final frame. Fix the past in place.