3.7 KiB
NPC Model Sourcing
This page records the source evaluation behind ADR-0015. 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.
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. 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.
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 and
npc-visual-review.md. Commands are in
asset-tooling.md.