Raise the NPC character budget to 24k and refine the prototype neck
This commit is contained in:
1 parent
f0d4b81239
commit
79224c5acf
19 files changed
+128
-56
No files matched your search
@@ -18,7 +18,7 @@ Goal: replace the sphere-and-primitive face and hand construction with a local,
|
||||
development pipeline that can build, inspect and compare the **head/face** and **hands** separately
|
||||
before assembling them into the shipped character. Prioritise face readability at portrait
|
||||
distance, then hand silhouette and gear contact. Preserve the `npc_base` contract, the 13 core-bone rig (optional extra bones allowed),
|
||||
five tint slots, 16,000/16,000 character cap, optional extra bones beyond the required 13, and the Compatibility/Web path.
|
||||
five tint slots, 24,000/24,000 character cap, optional extra bones beyond the required 13, and the Compatibility/Web path.
|
||||
|
||||
*Skill route: `character-artist`, `retopology`, `sculpting`, `rigging`, `uv-workflow`,
|
||||
`texture-workflow`, `materials`, `lookdev`, `asset-optimization`, `qa-review`.*
|
||||
@@ -28,7 +28,7 @@ gitignored `.blend1`; the 12 production characters are assembled procedurally by
|
||||
`tools/blender_assets.py` from `_shape_head_mesh`, `_face`, `_hair` and `_hands_and_shoes`.
|
||||
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
|
||||
24,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.
|
||||
@@ -45,7 +45,7 @@ the rest of §C remains the broad review checklist.
|
||||
`docs/3d-model-review.md` §Baseline inventory.
|
||||
- [x] Define measurable acceptance: face front/three-quarter/profile at 1.5 m and 1.85 m; hands
|
||||
open and gripping at 0.8 m; silhouette, eye/mouth readability, ear/nose/jaw planes, finger
|
||||
separation and gear contact. Keep the 16,000/16,000 cap; optional extra bones are allowed, but the required 13 core bones and rest positions must not move.
|
||||
separation and gear contact. Keep the 24,000/24,000 cap; optional extra bones are allowed, but the required 13 core bones and rest positions must not move.
|
||||
Recorded in `docs/3d-model-review.md` §Overhaul acceptance criteria.
|
||||
- [x] Confirm the identity boundary: `npc_base.blend` is the frozen fallback and must not absorb
|
||||
prototype detail unless a separate contract decision approves it.
|
||||
@@ -195,7 +195,7 @@ the rest of §C remains the broad review checklist.
|
||||
### Full-body MPFB prototype
|
||||
|
||||
Goal: assemble the accepted MakeHuman head onto a CC0 MPFB body with project hands, shoes and
|
||||
14-bone contract rig, inside the 16,000/16,000 character budget. Local development only until the
|
||||
14-bone contract rig, inside the 24,000/24,000 character budget. Local development only until the
|
||||
owner reviews the silhouette and a production integration decision is recorded.
|
||||
|
||||
- [x] Build the dev pipeline at `tmp/npc-research/build_mpfb_npc.py`: create a macro-driven MPFB
|
||||
@@ -203,10 +203,19 @@ owner reviews the silhouette and a production integration decision is recorded.
|
||||
apply the helper MASK, scale to 1.81 m, retarget the A-pose arms to the contract wrist
|
||||
(`x=±0.27`, `z=0.78`), cut the neck at 1.505, decimate, bisect the clothing boundaries, paint
|
||||
the five slots, add a short neck flare, project hands, rounded shoe shells, cuffs, the
|
||||
accepted head and the 14-bone armature. Current output: **15,317 tris / 13,690 glTF verts /
|
||||
13,702 seam-split verts / 1.810 m / 14 bones / 10 materials**; `inspect` clean, feet grounded.
|
||||
accepted head and the 14-bone armature. Current output: **19,747 tris / 11,475 glTF verts /
|
||||
1.810 m / 14 bones / 10 materials**; `inspect` clean, feet grounded.
|
||||
The torso is inflated radially by 12% through z 0.72–1.40 (tapering out at the collar) so the
|
||||
shirt reads as fabric rather than body paint.
|
||||
- [x] Raise the character contract to 24,000 triangles / 24,000 glTF vertices so the MPFB body,
|
||||
the accepted head and a fused neck can coexist with headroom for the 12-variant clothing.
|
||||
Bumped `CHAR_MAX_TRIS`/`CHAR_MAX_VERTS`, `npc_pipeline.MAX_TRIANGLES`/`MAX_VERTICES`,
|
||||
the adapt defaults, the tests, `AGENTS.md`, ADR-0016 and the project skills.
|
||||
- [-] Fix the head/neck/shoulder junction so there are no gaps, square collars or hard rims.
|
||||
Done: circular boolean bore, smooth lathe, accepted head trimmed at its narrow neck (1.55),
|
||||
no dark notches or wide brim; prototype at 19,747 tris. Remaining: a thin jaw crease and a
|
||||
hard shirt-shoulder point in three-quarter view. Next candidate: reshape the shirt shoulder
|
||||
or a shaped collar that follows the neckline, not a torus or flat disk.
|
||||
- [x] Replace the spiky decimated MPFB hands with the project palm/finger primitives, straighten the
|
||||
splayed MPFB feet so the shoes point forward, and use rounded shoe shells + cuffs instead of
|
||||
flat blocks. Use flat slot colours in the prototype because the one-shot MPFB UV unwrap does
|
||||
@@ -299,7 +308,7 @@ an active track; ADR-0015 (CC0 / CC-BY with attribution) still governs every int
|
||||
### Intake and adaptation
|
||||
|
||||
- [x] `adapt` path added to `tools/blender_assets.py` (`adapt --file <in> --out <out>
|
||||
[--target-tris 16000]`): imports the GLB, applies transforms, grounds the feet, welds seam
|
||||
[--target-tris 24000]`): imports the GLB, applies transforms, grounds the feet, welds seam
|
||||
splits and decimates to the budget, then exports. The five tint slots + 13-core rig
|
||||
(optional extra bones allowed) stay a manual step (recorded in the command doc).
|
||||
- [x] `audit` stays the final gate; `test_adapt_requires_blender` covers the non-Blender error
|
||||
|
||||
Reference in new issue
Block a user