fix(rig): curl the fingers, derive the arm angle

Two defects from the 0.2.0 review, both fixed and both measured.

- Fingers splayed because the bind is an A-pose hand. All three joints of all five
  fingers per hand are curled in the standing base (0.28/0.34/0.22 rad), with the
  curl axis probed on the rig first. The front shot now shows relaxed hands.
- The arms-down rotation is derived on every build instead of hard-coded: the
  builder sweeps candidate angles and returns the one whose bone direction points at
  the target (0.60 rad, direction dot 1.000 this build). The old 0.55 was a
  hand-swept constant.
- Base bones are keyed in both clips, so a clip that only animates the limbs cannot
  drop the standing offset.

Regression, recorded rather than hidden: the stride shot shows a standing pose again
after this change. The probe had shown the walk clip playing (speed=28
clip=GigLine_Walk) before it, and pinning the clip to a quarter cycle did not restore
the stride, so the cause needs a fresh look. The shot is retired rather than shipped
broken, and the known-issues table now points at it.
This commit is contained in:
zwitschi committed 2026-11-09 12:48:40 +01:00
1 parent 30e4d65743
commit 03af8146a6
48 files changed
+162 -78

No files matched your search

+4 -1
View File
@@ -13,7 +13,10 @@ Actionable task list for this project. This file is the single, central place fo
### Patch tasks - active - session-5598ce7e-27e3-4c64-bb49-c04a4a31ee58 (branch `anim-body-0.2.0`)
- [A] Fix skeletal/rigging defects reported after `0.2.0`. Known defects, from the `0.2.0` review: the fingers splay because the bind's finger spread carries into the pose, and the arms-down base rotation was found by sweeping rather than derived.
- [x] Fix skeletal/rigging defects reported after `0.2.0`. Both known defects fixed 2026-11-09:
- **Fingers no longer splay.** The bind is an A-pose hand, so the spread carried into every pose. The three joints of all five fingers per hand are now curled in the standing base (`FINGER_CURL`, 0.28/0.34/0.22 rad); the curl axis was probed on the rig first. Fingers 1–5 on both hands, 30 bones in total.
- **The arms-down rotation is derived, not swept.** `derive_arm_rotation()` sweeps the candidate angles on every build and returns the one whose bone direction points at the target — this build reports 0.60 rad with a direction dot of 1.000. The hard-coded 0.55 is gone.
- Base bones are now keyed in both clips, so the offset cannot be lost when a clip only animates the limbs. **Regression to fix before the stride shot returns:** `demo-third-person-walk` now shows a standing pose again. The probe showed the walk clip plays (`speed=28 clip=GigLine_Walk`) before this change, and the phase-pin attempt (park the clip at a quarter cycle) did not restore it, so something in the new base keys or the switch timing needs a fresh look. The shot is retired rather than shipped broken.
- [ ] Tag `v0.2.1` and write `CHANGELOG.md` entry; then remove this section.
## 0.2.2 — Skin and hair tuning (patch)