User manual-test feedback after iteration-3 hip-stable + leg-rotation fixes: 1. Animation too fast for actual map traversal → play walk_fwd_lower and walk_upper with speed=0.5 (effective 1.6s cycle, was 0.8s). 2. Second half visually broken → was substrate's sign-flip trick where leg.scl_y goes +1 (opposite of rest -1) and foot.pos.y flips negative. Cascade foot.world.scl_y = +1 * -1 = -1 → foot rendered Y-flipped. User: 'die füße ... darf hier die skalierung nicht negativ werden'. New cycle: each half extends ONE leg (scl_y=-1 matching rest) while the other stays at scl_y=0 (collapsed/invisible). foot.world.scl_y never goes negative — only [0, +1]. Alternating-leg gait. Substrate first-half preserved verbatim; second-half mirrors with role swap.
29 lines
856 B
JSON
29 lines
856 B
JSON
{
|
|
"id": "walk_fwd_lower",
|
|
"track": "lower",
|
|
"duration": 0.8,
|
|
"loop": true,
|
|
"keyframes": [
|
|
{ "t": 0.0,
|
|
"leg_l": {"scl": [-1, 0]}, "leg_r": {"scl": [ 1, 0]},
|
|
"foot_l": {"pos": [0, 0]}, "foot_r": {"pos": [0, 0]}
|
|
},
|
|
{ "t": 0.2,
|
|
"leg_l": {"scl": [-1, -1]}, "leg_r": {"scl": [ 1, 0]},
|
|
"foot_l": {"pos": [0, 25]}, "foot_r": {"pos": [0, 0]}
|
|
},
|
|
{ "t": 0.4,
|
|
"leg_l": {"scl": [-1, 0]}, "leg_r": {"scl": [ 1, 0]},
|
|
"foot_l": {"pos": [0, 0]}, "foot_r": {"pos": [0, 0]}
|
|
},
|
|
{ "t": 0.6,
|
|
"leg_l": {"scl": [-1, 0]}, "leg_r": {"scl": [ 1, -1]},
|
|
"foot_l": {"pos": [0, 0]}, "foot_r": {"pos": [0, 25]}
|
|
},
|
|
{ "t": 0.8,
|
|
"leg_l": {"scl": [-1, 0]}, "leg_r": {"scl": [ 1, 0]},
|
|
"foot_l": {"pos": [0, 0]}, "foot_r": {"pos": [0, 0]}
|
|
}
|
|
]
|
|
}
|