User feedback after iteration-4: legs SHOULD cycle through +1/0/-1 (substrate-style — leg renders forward, under body, then behind body). But feet must NOT Y-flip when leg.scl_y goes negative, and must NOT collapse when leg.scl_y=0. They should follow leg-end position only. Three changes: 1. walk_fwd_lower keyframes restored to substrate-style (leg.scl_y sign-flip on both halves: leg_l +1↔-1, leg_r -1↔+1). foot.pos animations REMOVED — cascade through leg.world.scl now correctly moves foot to leg-end position automatically (foot.local.pos stays at rest 25 in y). 2. foot.rest.scl: [1, -1] → [1, 1] (no Y-flip in rest, natural sprite orientation). inherit_scale=false → foot.world.scl stays at foot.local.scl=[1,1] regardless of leg.scl_y. Foot sprite never flips, never collapses. 3. Procedural extended: writes foot.local.rot = -leg.local.rot so foot.world.rot = body.world.rot (feet stay body-oriented even when legs rotate to walk-direction). Speed slowed further from 0.5 → 0.4 (user: still too fast at 0.5).
24 lines
540 B
JSON
24 lines
540 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]}
|
|
},
|
|
{ "t": 0.2,
|
|
"leg_l": {"scl": [-1, -1]}, "leg_r": {"scl": [ 1, 1]}
|
|
},
|
|
{ "t": 0.4,
|
|
"leg_l": {"scl": [-1, 0]}, "leg_r": {"scl": [ 1, 0]}
|
|
},
|
|
{ "t": 0.6,
|
|
"leg_l": {"scl": [-1, 1]}, "leg_r": {"scl": [ 1, -1]}
|
|
},
|
|
{ "t": 0.8,
|
|
"leg_l": {"scl": [-1, 0]}, "leg_r": {"scl": [ 1, 0]}
|
|
}
|
|
]
|
|
}
|