70 lines
3.7 KiB
Markdown
70 lines
3.7 KiB
Markdown
# NPC Model Sourcing
|
||
|
||
This page records the source evaluation behind [ADR-0015](adr/0015-npc-model-variety-sourcing.md).
|
||
The shipped path is the project-owned Blender/procedural library; external sources
|
||
remain references or local prototypes unless a later ADR accepts them.
|
||
|
||
## Evaluation
|
||
|
||
The library needs variety beyond the original eight silhouettes while preserving
|
||
the `npc_base` contract: mesh node, 13 required core bones (optional extras
|
||
allowed), five tint slots, −Y/+Z front, grounded feet and the 16,000/16,000
|
||
character budget.
|
||
|
||
| Source | Licence | Result |
|
||
| --- | --- | --- |
|
||
| Quaternius Ultimate Modular | CC0 | Good silhouette/decimation material, but a 62-bone T-pose realistic rig and different proportions; not a drop-in. Kept as a reference/prototype. |
|
||
| Kenney Blocky Characters | CC0 | No matching rig; style is much blockier than the project look. |
|
||
| Khronos CesiumMan / RiggedFigure | CC BY 4.0 | Different bone names/rest pose and no five-slot materials; not a drop-in. |
|
||
| MakeHuman / MPFB base | CC0 | Useful body-shape base, but requires retopology, a custom rig, clothing and part integration. Active local pipeline, not the shipped path. |
|
||
|
||
The contract mismatch is the expensive part, not decimation: retargeting a
|
||
different rig or rebuilding slots/weights can distort the body and invalidate
|
||
gear placement. Any future second-rig path needs its own ADR and animation/gear
|
||
offsets.
|
||
|
||
## Decision and outcome
|
||
|
||
- Extend the project-owned procedural generator as the primary shipped path
|
||
(12-character library, crowd variants, role pools).
|
||
- Keep Quaternius as a studied reference, not a shipped base.
|
||
- MakeHuman is a local development pipeline for body-shape diversity; it must
|
||
consume the same head/hand parts as the procedural library and never become a
|
||
CI/build dependency.
|
||
- Record CC0/CC-BY provenance; CC-BY previews require attribution in
|
||
[`CREDITS.md`](../CREDITS.md).
|
||
|
||
## MakeHuman prototype notes
|
||
|
||
The local prototype (`tmp/npc-research/`, never committed) scaled the base to
|
||
1.82 m, grounded it, triangulated/decimated it and retargeted it to the 13-core
|
||
armature. The first retarget measured **6,444 / 16,000 tris and**
|
||
**7,726 / 16,000 verts**, 14 bones, skinned, arm-down, five slots. It exposed
|
||
the expected issues: a 1.63× arm-scale warp at the deltoid/shoulder, blocky
|
||
decimated hands, rough slot boundaries and a head/neck shadow gap. The later
|
||
project head/hands swap reduced this to **6,407 / 16,000 tris and**
|
||
**6,651 / 16,000 verts**, but manual shoulder/neck retopology and part cleanup
|
||
remain before it can be considered shippable.
|
||
|
||
A standalone MakeHuman head is recorded in
|
||
[`makehuman-head-review.md`](makehuman-head-review.md). The owner accepted the basic
|
||
human head on 2026-11-04; the assembled path (`build_character(head="mh")`) adds a
|
||
skull-conforming hair cap and hides the scalp under it. The 12 shipped GLBs still use
|
||
the procedural head until the hair/body review and rollout in [`TODO.md`](../TODO.md).
|
||
The MakeHuman body should reuse the approved local head/hand parts rather than forking
|
||
a second face implementation.
|
||
|
||
## Provenance rules
|
||
|
||
- CC0 preferred; CC-BY only with attribution in `CREDITS.md`; no service asset
|
||
whose terms restrict redistribution.
|
||
- Downloaded research and generated previews stay in `tmp/`/gitignored folders;
|
||
only final audited assets and committed review sheets enter the repository.
|
||
- Record source URL, licence, author, date and what decision the reference
|
||
informed. Never treat a generated concept as licensed map/model data.
|
||
|
||
Measurements, visual decisions and accepted limits are in
|
||
[`3d-model-review.md`](3d-model-review.md) and
|
||
[`npc-visual-review.md`](npc-visual-review.md). Commands are in
|
||
[`asset-tooling.md`](asset-tooling.md).
|