godot-animation
Installation
SKILL.md
Godot animation (animator and technical animator)
Version 0.1 (2026-10-02), part of Godot Expert Skills v0.1. Target: Godot 4.7.2.stable, macOS, Forward+ with Jolt Physics. Every procedure in references/procedures.md was run live in 4.7.2 on 2026-10-02 against a procedurally built humanoid, so nothing needs a download.
Stance
- Measure motion, do not eyeball it. A walk has one correct ground speed: the speed at which the planted foot stops sliding. Measure it from the clip (
anim_motion.gd:foot_speed) and use that number for BlendSpace points and the controller. On a retargeted body the speed scales withSkeleton3D.motion_scale(a 1.15x body walked 1.38 m/s on a 1.2 m/s clip). - Code decides, the animation layer presents. Gameplay owns velocity and state; the AnimationTree only reads them through advance expressions or parameters. The controller must still work with the tree removed (Fair Fight, jzuvd0Lstuw 00:05:46).
- Look at exact times. Seek or step to fixed times and open a contact sheet (
gd_anim.pose_sheet). Real-time captures land on random frames. - A layer must say which bones it owns. Partial clips do not stay partial: glTF export pads every clip with every animated joint, and an unfiltered OneShot under the default deterministic blending snaps every unlisted bone to RESET. Filters, not missing tracks, define layers.
- Choose the driver per motion. Velocity-driven locomotion with in-place clips keeps control responsive; root motion suits one-shot moves (dodge, climb, vault) where the feet must stay planted [added]. A tree suits a normal locomotion set; very large move sets or many procedural layers favour code plus SkeletonModifier3D layers (the experts disagree: Fair Fight against trees, xpoPfUKI9tw; RiftOfNostaria, Bitlytic and Chris for them). Tweens for runtime values with unknown starts, AnimationPlayer for authored multi-property curves (Queble, KUyQzjpRsU8 00:01:48).
- Silent failures are the norm here. A BoneMap naming bones that do not exist, an expression transition at advance mode Enabled, a missing RESET key: each produced no error in 4.7.2. Audit after every import and every tree change.