- BoneState extended with pos/scl (per-frame override channels) and world.scl_x/y (cascaded world-scale) - compute_world() ports substrate puppet.c:692-718 cascade: local.pos multiplied by parent.world.scl before rotation+translation; world.scl = parent.world.scl * local.scl - build_animation parses rot/pos/scl channels; rejects legacy 'angle' - sample_animation interpolates each channel independently; single-side-keyframe holds the present value - look_at math now scale-aware (uses parent.world.scl in bone-world-pos) - build_rig rejects legacy rest.angle; requires rest.rot + optional rest.scl - bone-rig top-level 'scale' field removed; per-frame state replaces it 17 existing puppet-test assertions remain GREEN after fixture migration.
29 KiB
29 KiB