Bend the torso from the hips and add bow and twerk test animations

- LimbBend.anchoredAtEnd keeps the far end in place (the hips on the
  legs) and folds the other half, and angleAt/axis expose how far the
  limb has turned at a point.
- PoseApplier bends the body from the hips and carries the head and arms
  with it: their pivots follow the bent torso and they turn with its ring.
- Test animations: bow (torso only) and twerk. The gametest shoots the
  twerk at the top and bottom of its bounce, including from behind.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
2026-09-26 19:57:50 +02:00
co-authored by claude
parent 8bac5eef64
commit 34aba293b6
6 changed files with 252 additions and 27 deletions
+9 -2
View File
@@ -50,8 +50,15 @@ renderer: build a spine, put a ring of shared vertices along it, and draw the fa
limb's spine, not their own inflated box, so they stay attached.
Axis 0 folds towards the front (-Z) and PI/2 towards +X, in the limb's own space. Knees fold back,
so they use axis PI. The body bends too, but the head and arms don't follow its upper half yet.
Held items still attach to the unbent arm.
so they use axis PI.
The torso is anchored at the hips instead of its pivot (`LimbBend.anchoredAtEnd`), so the legs stay
attached and the chest leans. The head and arms are siblings of the body in the vanilla model, so
`PoseApplier` carries them: their pivots follow the bent torso, and they turn with its ring there
(`LimbBend.angleAt`). An arm carried by a forward lean swings back like a diver's, so emotes that want
hanging arms tilt them forward by about the lean (see the `twerk` test animation).
Held items still attach to the unbent arm, and the cape doesn't follow the torso yet.
## Commands