feat(client): 3D locomotion sandbox — character walks the live Gauntlet (T-1088)

New SR_LIVE sandbox scene: CharacterVisual composited in a 3D greybox world
derived from server snapshots. Per-leg constant-velocity interpolation keyed
to the stance throttle, 'server feet / client eyes' facing (wire octant while
moving, client aim octant idle), cadence-synced gait state machine on
AnimationPlayer custom blends, D-148 orthographic follow camera (-30deg
default, T-cycle presets), sim-space grid shader, camera-side wall cutaway,
accumulating never-evict tile store with four-state visibility tint.

Additive seams only: InputMapper.facing_angle_provider (2D path unchanged),
CharacterVisual.play_animation blend_time param + get_animation_player().
Visual harness gains per-scenario scene field + SR_AUTOPILOT input scripting.
210 new gdUnit assertions across five suites; verified live (230/230 total,
clean smoke, screenshot at .cache/screenshots/locomotion_idle_live.png).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-06 13:23:16 +02:00
co-authored by Claude Fable 5
parent ce1811b5f9
commit a7801a942a
21 changed files with 3555 additions and 8 deletions
+30
View File
@@ -76,6 +76,19 @@
"atlas_gen_open": {
"ticks": 240,
"description": "Live: real atlas opener (HudGroups) + GJ71c Layer-1 overlays (#960)"
},
"locomotion_idle_live": {
"ticks": 90,
"live": true,
"scene": "res://scenes/locomotion_sandbox.tscn",
"description": "Live 3D sandbox: character idle at Hub spawn — greybox floor, -30 deg frame (T-1088)"
},
"locomotion_cutaway": {
"ticks": 540,
"live": true,
"scene": "res://scenes/locomotion_sandbox.tscn",
"env": { "SR_AUTOPILOT": "stance_up,south:6.0" },
"description": "Live 3D sandbox: autopilot walks south into a wall — cutaway stub golden (T-1088)"
}
},
"flows": {
@@ -98,6 +111,23 @@
{ "action": "MoveNorth", "label": "near wall" },
{ "action": "MoveSouth", "label": "fog hiding" }
]
},
"locomotion_gaits": {
"interval": 2,
"live": true,
"scene": "res://scenes/locomotion_sandbox.tscn",
"env": {
"SR_AUTOPILOT": "east:2.0,stance_up,east:2.0,stance_up,east:2.0,stance_down,stance_down,stance_down,south:2.0,wait:1.5"
},
"description": "T-1088 stance ladder movie — NOT golden-compared. Movie mode starts no server: run `cd server && cargo run --bin settled-reach-server -- --test-mode` first, then `SR_LIVE=1 SR_PORT=9876 tests/run-visual --movie locomotion_gaits`",
"steps": [
{ "action": "wait", "label": "careful gait east" },
{ "action": "wait", "label": "walk gait east" },
{ "action": "wait", "label": "sprint gait east" },
{ "action": "wait", "label": "crouch gait south" },
{ "action": "wait", "label": "settling to idle" },
{ "action": "wait", "label": "idle rest" }
]
}
},
"crops": {