feat(puppet): v0.3.0 — idle-return locomotion + version bump

- apply_locomotion idle-return: after (now - last_move_time) >
  idle_return_delay, the most-displaced planted leg steps back to its
  current hip position (over idle_step_duration). Group-stagger via
  bumping last_move_time forward by idle_return_stagger.
- M.move_to tracks p.last_move_time when position actually changes.
- README v0.3.0 changelog entry.
This commit is contained in:
Axel Meyer
2026-05-18 18:34:42 +02:00
parent 9882388097
commit 96ccb410d3
3 changed files with 53 additions and 2 deletions

View File

@@ -5,7 +5,7 @@ tracks, rest pose, keyframe animations, procedural animations
(Lua-side), and look-at constraint. No footplant IK in v0.1
(deferred).
**Version:** 0.2.0
**Version:** 0.3.0
**Lib-ID:** lib-core.puppet
**Requires:** (none — pure Lua + engine.render.*)
**Tags:** animation, skeleton, puppet, character
@@ -125,6 +125,21 @@ ownership at write time.
## CHANGELOG
### v0.3.0
- BoneState multi-channel (rot/pos/scl) with world.scl_x/y and world.rot
- Cascaded world-transform with scale propagation (compute_world)
- Procedural locomotion layer via rig.locomotion block (apply_locomotion):
step-trigger, step-placement, step-height, leg-aim + leg-stretch
- Idle-return logic in apply_locomotion: after (now - last_move_time) >
idle_return_delay, the most-displaced planted leg steps back to its hip
position over idle_step_duration; group-stagger via idle_return_stagger
- M.move_to tracks p.last_move_time when position actually changes
- Schema changes: rest.rot/scl required; legacy rest.angle rejected with
clear error message (Substrate-Parity v0.3.0 schema)
- Bone-rig top-level scale field removed; per-frame world state replaces it
- New APIs: bone_world_scale, set_foot_sprite_reach_test_only,
foot_state_test_only, bone_animated_test_only
### v0.2.0
- Rig-format extension (texture, z_order, scale, anchor, asset_pack
fields on bones; rig.bones_z_sorted for render-order)