Add a gear-vs-body fit report to the Blender asset tool

`blender_assets.py fit` measures each character head width (skin vertices
weighted to Head in y 1.55-1.81) and clothing radius (cloth skirt in y 0.30-0.52,
pants hip fallback), then prints every attached head/back/chest gear bounding box
with head-band status and x/radial skirt clearance. The report confirms the
glasses width and shoulder-bag coat clip, giving the next fit fixes numbers.
Python tooling 87/87; asset audit clean.
This commit is contained in:
zwitschi committed 2026-11-01 17:52:38 +01:00
1 parent 1ee32215b0
commit da876e3545
5 files changed
+180 -4

No files matched your search

+5 -4
View File
@@ -11,10 +11,11 @@ sunglasses span the whole upper face and the shoulder bag cuts through `npc_coat
live in `tools/blender_assets.py` (`_build_gear()`), the contract in `docs/blender-assets.md`
(gear budget 1500 tris, `GEAR_ATTACH` points in `NpcAvatar`).
- [ ] Measure the fit in Blender, not by eye: extend `blender_assets.py audit` (or add a `fit`
subcommand) to print, per head/back/chest gear piece, its bounding box against the avatar
head width (measured 0.314 m on `npc_coat`), the head height band (y 1.55–1.81) and the
clothing radius (coat/dress skirt flare 0.225–0.26 m), for every character variant.
- [x] Measure the fit in Blender, not by eye: `python3 tools/blender_assets.py fit` prints each
character's measured head width and hip/skirt radius, then every head/back/chest gear
bounding box with head-band status or skirt clearance. Current measurements: head width
0.315 m; coat skirt 0.225 m, dress 0.260 m; sunglasses 0.282 m (0.90x head); shoulder-bag
x-clearance -0.025 m on the coat (radial -0.031 m on the dress).
- [ ] Narrow `sunglasses` from 0.28 m to ~0.20 m. The width is driven by the arms/hinges
(`Hinge` at `x = ±0.11` with a 0.06 box, `Arm` at `±0.138`), not by the 0.03 m lenses, so
pull those in first and shrink the lenses to ~0.024 m radius; keep the lens plane at