3.4 KiB
3.4 KiB
ADR-0015: NPC model variety sourcing
- Status: Accepted (post-0.10.0 planning)
- Date: 2026-11-03
Context
The library has eight skinned characters, and role/seed selection reuses them
across the three venues. Crowds therefore repeat the same faces, builds and
outfits. The existing contract is strict: npc_base mesh node, 13 named bones at
fixed rest positions, five tint slots, front on Blender −Y and an 8,000
triangle/vertex budget.
A review compared free/open-source sources against that contract. Quaternius
Ultimate Modular (CC0), Kenney Blocky Characters (CC0), Khronos CesiumMan and
RiggedFigure (CC BY 4.0) and the MakeHuman base mesh (CC0) were imported and
measured. None was a drop-in; the full results are in
docs/npc-model-sourcing.md.
Decision
- Ship only CC0, or CC BY with recorded attribution. No service asset whose terms restrict redistribution may be used.
- Extend the project-owned procedural generator as the primary path for shipped NPC variety. The first target is four crowd-variety looks, bringing the library to twelve characters.
- Keep Quaternius as a reviewed reference/prototype, not a shipped base. A contract retarget is a no-go because the source is a T-pose 62-bone realistic rig with substantially different proportions from the arm-down 13-bone contract. A future external-rig path would need its own ADR covering its skeleton, animation source and per-model gear offsets.
- MakeHuman is deferred to a separate local development pipeline. Its CC0 base mesh can be decimated into budget, but it needs retopology, a custom rig and project-owned clothing before it is usable. It must not become a CI or build dependency.
- Commit research previews with attribution. CC-BY preview images are development-only and are not bundled with the game or its release packages.
Consequences
Positive
- The shipped library keeps one art direction, one skeleton and one audit gate.
- Crowd variety lands without a new runtime dependency or a second animation system.
- The licence position is simple: project-owned assets plus explicit CC-BY attribution where a preview or future asset requires it.
- The Quaternius evaluation removes a tempting but high-risk retarget from the critical path.
Negative
- Procedural variation is still limited by the existing face and clothing vocabulary; four variants do not provide full age/body diversity.
- Quaternius' animation set remains unused unless a second rig path is approved.
- MakeHuman body-shape diversity is postponed.
- External previews add a small documentation footprint that must stay out of release packages.
Alternatives considered
- Retarget Quaternius onto the
npc_basecontract. Rejected for now: welding brings the geometry inside budget, but the rest pose and body proportions differ enough that a contract rebuild would either distort the model or require a full proportion warp. - Use Quaternius' own rig and animations directly. Deferred: attractive
animation quality, but it adds a second skeleton/animation path and per-model
gear offsets to
NpcAvatar. - Use MakeHuman as the primary body source. Rejected for this milestone: high polygon count, no rig in the base mesh and a separate authoring dependency.
- Use Mixamo or Ready Player Me. Rejected: service terms are not a simple free/open-source redistribution basis for shipped meshes.