From db5adfa62a66d0149950cc5da73e23e8c4de1d0c Mon Sep 17 00:00:00 2001 From: bflatastic Date: Thu, 8 Oct 2026 17:17:24 +0700 Subject: [PATCH] Docs: parity.md and gaps.md G8 describe ease presets (#254) Co-Authored-By: Claude Opus 5.5 --- docs/gaps.md | 3 +++ docs/parity.md | 22 ++++++++++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/docs/gaps.md b/docs/gaps.md index 051d2394..0c3de4a0 100644 --- a/docs/gaps.md +++ b/docs/gaps.md @@ -185,6 +185,9 @@ The most important missing piece: it turns every other estimate here into a meas - After Effects SDK plug-ins cannot run in EffectCraft. Our own WebAssembly plug-in API exists ([plugins.md](plugins.md)). Grow it: documentation, examples, and original effects that cover what the most common third-party plug-ins are used for (particles, glows, 3D objects, sabers). +- Done so far: ease presets (Window ▸ Ease Presets, `keys.easePreset.*`, #254) cover what + ease-curve plug-ins are used for: easing curves kept by name, drawn and edited in a value graph, + and applied to pairs of keyframes ([parity.md](parity.md#update-ease-presets-254)). ### G9. Reach diff --git a/docs/parity.md b/docs/parity.md index e55a880b..28e24028 100644 --- a/docs/parity.md +++ b/docs/parity.md @@ -400,6 +400,28 @@ Browser in the web app (landed in M13.10: browser storage and File System Access wrong signatures and versions, fuel exhaustion, traps and bit-identical output; script `Socket` validates ports, and ScriptUI resource strings accept trailing array commas. +## Update: ease presets (#254) + +**Window ▸ Ease Presets** is our own panel for what ease-curve plug-ins are used for in After +Effects (G8): keep easing curves by name and apply them to pairs of keyframes. A curve is the out +handle of the first key and the in handle of the second, in the Keyframe Velocity dialog's terms: +influence in percent, and speed relative to the segment's average speed, so one curve fits any +duration and change of value. Applying it eases every pair of neighbouring selected keyframes of +each property in one undo step, per dimension, and along the motion path for spatial properties +(as Easy Ease does); an Auto Bezier key keeps its other side. Twelve built-in curves (Linear, +Smooth, Ease In-Out Soft / plain / Strong, Accelerate and Decelerate with Strong variants, Expo +In-Out / Accelerate / Decelerate) are our own numbers; user presets are kept in the settings store +(`ease_presets.json`; a corrupt file or entry is skipped, never fatal). The panel draws each preset +as a thumbnail (a click applies it) and the working curve in a value graph whose two handles drag; +Apply, From Keys (the curve between the first selected pair), Save Current, Rename and Delete. +Commands: `keys.easePreset.apply {preset | curve}` (`curve` as `{outInfluence, outSpeed, +inInfluence, inSpeed}` or cubic-bezier handles `[x1, y1, x2, y2]`), `keys.easePreset.capture`, +`keys.easePreset.save {name, curve?}`, `keys.easePreset.list`, `keys.easePreset.rename {name, +newName}`, `keys.easePreset.delete {name}`; automation ids `easePresets.*`. + +Not yet: curves with more than one bend (bounce and elastic shapes, which need keyframes in +between), preset import / export files, and a live preview on the keys while dragging the handles. + ## Update: M5.9–M5.14 keyframes, M3.15 clipboard, M12.8 responsiveness - **The app froze every 10 s on Windows** (M12.8): the cache budgets' memory reading started