Files
security-game/docs/screens/head-review/README.md
T
zwitschi d1898b3221
Full build / Import + headless tests (push) Successful in 48s
Full build / Full desktop build + optional release (push) Skipped
Overhaul the head source: weld + relax the decimated MakeHuman head into one clean manifold shell
2026-11-04 15:49:44 +01:00

60 lines
2.4 KiB
Markdown

# Head rework — review page (2026-11-04)
This page is the review checkpoint for the NPC head rework. The goal was to replace the
sphere-and-floating-primitive face with a head that has real nose / chin / jaw landmarks at
portrait distance.
## What changed
The original procedural face is a head sphere plus separate nose, mouth, ear and eye primitives.
The new head uses the **decimated MakeHuman head** (CC0, 1,573 tris) as the base shape and keeps
the project's separate eyeballs, brow and mouth pieces on top. An AI judge was used to drive the
decision: it scored the procedural rework at ~3/5 and then picked the MakeHuman head as the
clearer silhouette.
| | Source | Tris (head) | Read |
| --- | --- | --- | --- |
| **Before** | procedural `_face` (sphere + primitives) | ~1,900 | flat face, slit eyes |
| **After** | overhauled MakeHuman head + project eyes/brows/mouth | ~1,880 | smooth nose/chin/jaw landmarks |
The head source was overhauled 2026-11-04: the blocky decimated MakeHuman head was welded
(merge-by-distance) and Laplacian-relaxed into one clean manifold shell (`makehuman_head.glb`,
1,548 tris skin), then the project eyes/brows/mouth were added.
## AI-generated target concept
The rework was guided by two generated concept frames (front + profile, `bytedance-seed/seedream-4.5`).
![concept](sheet_concept.jpg)
## 1.85 m comparison (top = current, bottom = new)
Left to right: front, three-quarter, profile.
![1.85 m comparison](sheet_compare_1.85.jpg)
## New head at 1.5 m (portrait)
![1.5 m portrait](sheet_head_1.5.jpg)
## Contract and checks
- `blender_assets.py inspect` on the assembled `npc_casual` with the new head: **14 bones,
skinned, no issues**.
- Source: `assets/models/blender_src/makehuman_head.glb` (CC0, attributed in `CREDITS.md`).
- Python 167/167, Godot 277/277, `check_docs` OK.
## Remaining polish (known, not blockers)
1. The hair cap still reads as a stepped block instead of hugging the skull.
2. The brows weld to the face but can read as a slightly separate bar.
3. The neck underside cap is plain; it is hidden by the body neck in the assembled character.
4. The head skin is 1.5k tris (smooth but low-poly); a retopology pass could add resolution if a
portrait shows faceting.
## Decision needed
Approve or reject the MakeHuman-head direction. If approved, the next step is rolling it into the
other 11 variants (one asset family at a time) with a before/after sheet per batch, and re-running
the 24-NPC budget + AO bake.