Tilt and bank the flying body along its gaze #157

Merged
sermuns merged 2 commits from fly-tilt into main 2026-10-24 22:27:34 +00:00
Owner

A sprint-flying body only turned with yaw: looking up or down left it flat on its back (#151). It now lies along the gaze and, on top of that, rolls into sustained turns like an airplane.

  • liuverse-world: the prone anchors are pitched along the look direction; the gait solver integrates each body's yaw rate into an eased bank, clamped and rolled about the look axis. Only sprint-flying banks; freefall, canopy and all-fours gaits stay level. The solver inputs become one Gaze struct.
  • liuverse: solve_legs passes the body's gaze pitch; a flyer's torch tip follows the pitched body.
  • liuverse-frame: the head, shoes and wings ride the solved pitch and bank; quadruped_parts takes the gait's own pitch so skydive stays gaze-independent.

Nothing extra on the wire: the pose already carries yaw and pitch, so remote clients animate the same attitude.

Tests: gaze dip and lift, turn banking right and left, roll-out to level, freefall staying level; frame-side pitch and bank of torso, head, shoes and wings. User-tested on desktop; just check green.

closes #151

A sprint-flying body only turned with yaw: looking up or down left it flat on its back (#151). It now lies along the gaze and, on top of that, rolls into sustained turns like an airplane. - liuverse-world: the prone anchors are pitched along the look direction; the gait solver integrates each body's yaw rate into an eased bank, clamped and rolled about the look axis. Only sprint-flying banks; freefall, canopy and all-fours gaits stay level. The solver inputs become one `Gaze` struct. - liuverse: `solve_legs` passes the body's gaze pitch; a flyer's torch tip follows the pitched body. - liuverse-frame: the head, shoes and wings ride the solved pitch and bank; `quadruped_parts` takes the gait's own pitch so skydive stays gaze-independent. Nothing extra on the wire: the pose already carries yaw and pitch, so remote clients animate the same attitude. Tests: gaze dip and lift, turn banking right and left, roll-out to level, freefall staying level; frame-side pitch and bank of torso, head, shoes and wings. User-tested on desktop; `just check` green. closes #151
A sprint-flying body only turned with yaw before; looking up or down left
it flat on its back. The prone anchors, the head, the shoes and the wings
now ride the gaze pitch, so the flyer dives and climbs with its own look.
Freefall and canopy attitudes stay set by the fall, not the gaze.

closes #151
The gait solver integrates each body's gaze yaw rate and eases a bank,
like an airplane's: the prone anchors roll about the look axis and the
head, shoes and wings ride the same attitude. Straightening out rolls
back to level; freefall, canopy and all-fours gaits stay level.

The leg solver's eye/yaw/pitch inputs become one Gaze struct, keeping
AvatarLegs::update under the argument-count lint.

closes #151
Sign in to join this conversation.
No description provided.