diff --git a/TODO.md b/TODO.md index 2f23821..a0f1de6 100644 --- a/TODO.md +++ b/TODO.md @@ -62,10 +62,13 @@ an active track; ADR-0015 (CC0 / CC-BY with attribution) still governs every int x ±0.53 / y 0–1.82 / z −0.12…+0.35, one neutral material, UVs present, unskinned. The body (no rig) is the input for the rigging step; the script + mesh stay in `tmp/` (CC0, not committed). -- [ ] Decide the rig strategy: retarget the MakeHuman body to the frozen 13-bone `npc_base` - contract (needs a proportion warp, like the Quaternius no-go), or add a second rig/animation - path behind its own ADR. **Owner decision** — the body proportions (shoulder ~x 0.53 m, - hip/arm span) do not match the arm-down 13-bone contract, so a retarget needs a warp. +- [x] Rig strategy decided (owner): **retarget the body to the 13-bone contract**. + `tmp/npc-research/makehuman_retarget.py` rotates the A-pose arms down (−38°/+38°), scales the + arms 1.63× to the contract 0.70 m length, welds the split vertices, smooth-shades, adds the + contract armature + `_auto_weights`, renames the mesh to `npc_base`, and exports + `makehuman_retargeted.glb`. Result: 6,444 tris / 7,186 verts (under 8,000), 14 bones (13 + contract + Hips), skinning yes, arm-down x ±0.356, grounded y 0–1.82. Remaining gap: only the + `skin` slot is painted — cloth/pants/accessory/hair need the clothing/retopology step. - [ ] Re-run `inspect`/`audit`/`fit`/proportions and the 24-NPC budget after each intake; keep the procedural generator as the fallback until a MakeHuman variant ships. diff --git a/docs/npc-model-sourcing.md b/docs/npc-model-sourcing.md index a881b79..5ab27a6 100644 --- a/docs/npc-model-sourcing.md +++ b/docs/npc-model-sourcing.md @@ -206,6 +206,16 @@ only, one neutral material, UVs present, no rig). The body is the input for the contract-rig/retopology step; the script and mesh stay under `tmp/` and are never committed. +Retarget prototype (2026-11-04): `tmp/npc-research/makehuman_retarget.py` rotates +the A-pose arms down (−38°/+38°) and scales them **1.63×** to the contract 0.70 m +arm, welds the split vertices, smooth-shades, adds the 13-bone contract armature +with the project's distance-to-bone `_auto_weights`, renames the mesh to +`npc_base`, and exports `makehuman_retargeted.glb` — **6,444 tris / 7,186 verts** +(under 8,000), 14 bones, skinned, arm-down, grounded. The proportion warp (1.63× +arms) is the same class of issue that blocked Quaternius; here it is accepted for +the body retarget. Remaining: only the `skin` slot is painted — cloth, pants, +accessory and hair need the clothing/retopology step. + - MPFB/MakeHuman is installed and run by a contributor, never by CI or the game build. - Generated bodies and intermediate exports stay in `tmp/` (gitignored); the