A Unity editor tool that automatically reduces AnimationClip asset size via RDP compression that converts Stream curves to Constant + missing-binding cleanup
Problem
Character AnimationClip assets are excessively large.
Curves whose values never actually change are also stored as Stream (keyframe-based), which is wasteful
Bone/component-path bindings that vanished when the character rig changed remain in the clips
Manually optimizing hundreds of clips is not realistic
Constraints
Animation quality must not change after compression — if tolerance is exceeded, keep the original automatically
Previously, converting to Linear Tangent caused animations to stutter visibly
Implementation
01
1. RDP keyframe compression
Convert Stream → Constant for curves with no variation or with deltas inside the tolerance.
After compression, validate the actual curve error and automatically retain the original when tolerance is exceeded.
Unify on SetEditorCurve instead of clip.SetCurve() → prevents YAML format duplication (fixes a bug where the previous approach actually increased size)
Tangent: Linear → ClampedAuto — resolves the prior stutter issue and allows a more generous error tolerance
Expanded the Weighted-mode removal scope to all non-Rotation curves
02
2. Missing-binding cleanup
Automatically detect and remove bindings whose bone/component paths no longer exist in the prefab.
Auto-locate prefabs via the Animation/ → Prefab/ folder mapping
Handles all curves including Rotation, plus ObjectReference curves (Sprite swap, etc.)
Built-in safety check for mixing different character folders — must run per Cookie (per character folder) to behave correctly
03
3. Safety-first design
Risky options like Scale removal and missing-binding cleanup are OFF by default
"Test Run" button — preview results before actually applying
Settings are auto-persisted via EditorPrefs (survives window close)