Add MakeHuman head hair/body prototype and 12-variant rollout plan
This commit is contained in:
1 parent
958d3ae0ff
commit
b297c4543f
9 files changed
+269
-89
No files matched your search
@@ -26,10 +26,12 @@ five tint slots, 16,000/16,000 character cap, optional extra bones beyond the re
|
||||
**Current state:** `assets/models/npc/` contains the tracked frozen `npc_base.blend` and its
|
||||
gitignored `.blend1`; the 12 production characters are assembled procedurally by
|
||||
`tools/blender_assets.py` from `_shape_head_mesh`, `_face`, `_hair` and `_hands_and_shoes`.
|
||||
There is no per-part source asset library yet. The MakeHuman body prototype and its temporary
|
||||
head/hand swap live under `tmp/npc-research/` and are not the shipped path. This overhaul supplies
|
||||
the reusable head/face and hand parts that both the procedural characters and the MakeHuman body
|
||||
can consume.
|
||||
The MakeHuman head is now a second head source (`build_character(head="mh")`,
|
||||
`build --head mh`, `npc_parts.py assemble --head mh`) and all 12 variants assemble inside the
|
||||
16,000-triangle cap with it. The procedural body, hands and clothing remain unchanged. The
|
||||
MakeHuman body prototype and its temporary head/hand swap live under `tmp/npc-research/` and are
|
||||
not the shipped path. This overhaul supplies the reusable head/face and hand parts that both the
|
||||
procedural characters and the MakeHuman body can consume.
|
||||
|
||||
This workstream supersedes the face/head and hands items in §C until the prototypes are approved;
|
||||
the rest of §C remains the broad review checklist.
|
||||
@@ -93,16 +95,18 @@ the rest of §C remains the broad review checklist.
|
||||
- [x] Compare two or three subdivision/loop variants at 1.85 m front/three-quarter/profile and a
|
||||
1.5 m portrait. Pick the variant that reads best before changing all 12 characters; keep the
|
||||
rejected variants local.
|
||||
- [-] Rebuild a standalone MakeHuman-derived head from the researched CC0 base and save it to
|
||||
- [x] Rebuild a standalone MakeHuman-derived head from the researched CC0 base and save it to
|
||||
`assets/models/blender_src/makehuman_head.glb`; record provenance/review in
|
||||
`docs/makehuman-head-review.md` and the preview sheet. (Final build: 12,641 tris / 7,690
|
||||
split verts; assembled `npc_casual` 15,532 tris / 13,310 verts / 14 bones, `inspect` clean.
|
||||
Latest attempt: skin eyelid mask, recessed globes, flat iris/pupil discs, surface-anchored
|
||||
brows. Vision verdict: still **REJECT** — globe depth is inconsistent between front,
|
||||
three-quarter and profile, the lid does not visibly clip the globe, and the iris reads
|
||||
decal-locked at three-quarter; prototype stays local and un-integrated.)
|
||||
`docs/makehuman-head-review.md` and the preview sheet. Final build: 12,642 tris /
|
||||
7,690 split verts, bounds x −0.094..0.094, y −0.180..0.042, z 1.530..1.803. The owner
|
||||
accepted the **basic human head** on 2026-11-04; the automated vision gate still records
|
||||
the eye-region REJECT as deferred polish (globe depth, lid overlap, iris at three-quarter).
|
||||
The assembled path now adds a skull-conforming hair cap, a hidden-scalp trim and a narrowed
|
||||
neck/shoulder body. Assembled `npc_casual --head mh`: 14,753 tris / 12,822 raw / 12,823
|
||||
seam-split verts / 14 bones / 9 materials, `inspect` clean.
|
||||
- [ ] Build true upper/lower eyelid masses that overlap the globe in front, three-quarter and
|
||||
profile views (not a socket hole), then re-run the vision gate before integrating the head.
|
||||
profile views (not a socket hole), then re-run the vision gate. Deferred: the owner accepted
|
||||
the basic head, so this is polish, not a rollout blocker.
|
||||
|
||||
Compared `head_proto` at seg 24 (670 verts), 48 (1,558 verts) and 64 (2,470 verts) at 1.85 m
|
||||
and 1.5 m, front/three-quarter/profile. Vision-judged: **s48 wins** — s24 is too faceted
|
||||
@@ -117,12 +121,11 @@ the rest of §C remains the broad review checklist.
|
||||
imported GLB came out black and is superseded by the proper `.blend`-source bake). Flag: the
|
||||
prototype ears reach x ±0.162 vs the 0.1575 head-radius reference, so headgear may clip and
|
||||
must be re-measured at rollout.
|
||||
- [ ] Get owner sign-off on the one-variant prototype, then roll the approved head/face into the
|
||||
other 11 variants one asset family at a time, with a before/after sheet per batch.
|
||||
**Blocked on owner sign-off.** Sign-off material is ready: the s48 prototype vs the current
|
||||
`_face` at 1.85 m front/three-quarter/profile
|
||||
(`docs/blender_previews/sheet_head_proto_before_after.jpg`); the s24/s48/s64 comparison table
|
||||
is in `docs/3d-model-review.md`. Rollout waits for the owner's go/no-go.
|
||||
- [-] Owner review of the assembled one-variant prototype (`npc_casual --head mh`) before the
|
||||
12 shipped GLBs change. The basic human head is accepted (2026-11-04); the review now covers
|
||||
the skull-conforming hair cap and the narrowed neck/shoulder body silhouette. Local renders:
|
||||
`tmp/npc-parts/prototype_mh/renders/` (portrait front/three-quarter/profile + full body).
|
||||
Rollout starts only after this review.
|
||||
|
||||
### 4. Hands and grip prototype
|
||||
|
||||
@@ -151,6 +154,30 @@ the rest of §C remains the broad review checklist.
|
||||
|
||||
### 5. Assembly and rollout
|
||||
|
||||
**MakeHuman 12-variant rollout.** - [x] Make the head source selectable from the main builder:
|
||||
`blender_assets.py build --head mh --only npc_casual,...` and
|
||||
`npc_parts.py assemble --variant <name> --head mh --out <stem>`. The default stays `face`
|
||||
until the hair/body review passes.
|
||||
- [x] Verify every variant assembles with the MakeHuman head inside the 16,000/16,000 cap
|
||||
(pre-export triangle counts, `inspect` clean; `npc_casual` seam-split verts 12,823):
|
||||
`npc_casual 14,753`, `npc_jacket 15,153`, `npc_coat 15,817`, `npc_vest 15,579`,
|
||||
`npc_dress 15,215`, `npc_hoodie 15,837`, `npc_firefighter 15,987`, `npc_guard 15,729`,
|
||||
`npc_crowd_a 14,947`, `npc_crowd_b 14,693`, `npc_crowd_c 15,433`, `npc_crowd_d 15,833`.
|
||||
- [x] Recover head budget without touching the accepted face: remove head faces fully covered by
|
||||
the hair cap, keep boundary faces as a safety band, and trim the hidden neck plug to 12
|
||||
segments. This saves ~950 tris on every variant.
|
||||
- [ ] Owner approves the hair cap and full-body silhouette on the local `npc_casual` prototype.
|
||||
- [ ] Rebuild the 12 committed character GLBs with `--head mh`, in asset-family batches, then
|
||||
regenerate their AO maps and manifest entries. Never run a no-op full-library rebuild.
|
||||
- [ ] Run `blender_assets.py audit`, `fit`, `inspect` and `texels`, plus
|
||||
`python3 tools/npc_proportions.py report`; record the 12-variant proportion table.
|
||||
- [ ] Re-run the Godot NPC tests and capture the 12 × 6 baseline
|
||||
(`src/test/capture_npc_baseline.gd` → `python3 tools/npc_baseline.py sheet`); inspect the
|
||||
sheet for outliers before committing.
|
||||
- [ ] Update `docs/makehuman-head-review.md`, `docs/3d-model-review.md`,
|
||||
`docs/blender_previews/README.md`, `docs/npc-model-sourcing.md`, `CREDITS.md` and
|
||||
`docs/development-status.md` with the accepted head/hair/body state and final counts.
|
||||
|
||||
- [ ] Integrate the approved parts into `build_character` with deterministic joins, weights, UVs and
|
||||
AO. The final output remains one `npc_base` skinned mesh under the existing 13-core armature;
|
||||
optional extra bones are allowed but the core rest positions stay fixed;
|
||||
|
||||
Reference in new issue
Block a user