Record NPC sourcing decision and crowd prototypes

This commit is contained in:
zwitschi committed 2026-11-03 07:59:58 +01:00
1 parent bfe3c5a701
commit fef3af44c0
10 files changed
+269 -90

No files matched your search

+46 -20
View File
@@ -198,9 +198,11 @@ verify every distribution path. This is the next minor release after the 0.9.x p
## Milestone 0.11.0 — NPC model variety
Goal: break the eight-character clone effect with a reviewed, licence-cleared set of new NPC
looks while keeping the frozen `npc_base` bone, tint-slot and gear-attach contract. Start only
after the 0.10.0 release candidate is published; this milestone must not delay the release.
Goal: break the eight-character clone effect with four licence-cleared crowd-variety looks while
keeping the frozen `npc_base` bone, tint-slot and gear-attach contract. The procedural generator is
the primary path; Quaternius is a reviewed reference and MakeHuman is deferred to a separate local
development pipeline. Start only after the 0.10.0 release candidate is published; this milestone
must not delay the release.
### 0.11.1 Source review and decision
@@ -209,39 +211,53 @@ after the 0.10.0 release candidate is published; this milestone must not delay t
CesiumMan/RiggedFigure CC-BY and the MakeHuman CC0 base mesh; none is a drop-in.
Results, local preview sheet and SHA-256 provenance are in
`docs/npc-model-sourcing.md`.)
- [ ] Review the sourcing research with the project owner and choose Option A (procedural),
- [x] Review the sourcing research with the project owner and choose Option A (procedural),
Option B (Quaternius CC0 intake) or Option C (MakeHuman/MPFB body pipeline); record the
decision in an ADR and in `MEMORY.md`.
- [ ] Add a source licence allow-list and provenance rule: CC0 preferred, CC-BY only with
decision in an ADR and in `MEMORY.md`. (2026-11-03: extend the procedural generator as the
primary path, keep Quaternius as a reviewed prototype/reference, defer MakeHuman to a
separate local pipeline. Recorded in ADR-0015 and `MEMORY.md`.)
- [x] Add a source licence allow-list and provenance rule: CC0 preferred, CC-BY only with
attribution in `CREDITS.md`, and no service assets whose terms restrict redistribution.
- [ ] Decide whether the external preview sheet stays local under `tmp/` or is committed with
the required CC-BY attribution.
(ADR-0015; the CC-BY research previews are attributed in `CREDITS.md`.)
- [x] Decide whether the external preview sheet stays local under `tmp/` or is committed with
the required CC-BY attribution. (Committed as
`docs/blender_previews/sheet_npc_sources_research.jpg` with Cesium CC-BY attribution;
the project-owned crowd prototype sheet is also committed.)
### 0.11.2 Intake and validation
- [ ] Add a Blender `inspect` path that imports a GLB, applies node transforms, reports
tris/verts, bounds, bones, materials, UVs and skinning, and lists contract failures.
- [ ] Add an `adapt` path that scales/grounds the mesh, welds seams, decimates to the
triangle/vertex budget, maps materials into the five tint slots, rebuilds the contract
armature, transfers weights and writes the `npc_base` node name.
- [ ] Add an `adapt` path for future external assets: scale/ground, weld seams, decimate, map the
five tint slots, and either rebuild the contract armature or record an explicit second-rig
contract. The Quaternius prototype showed that a contract rebuild needs a proportion warp,
so this is not on the 0.11.0 critical path.
- [ ] Keep `tools/blender_assets.py audit` as the single final gate; add a regression test for the
intake report/adaptation using a deterministic synthetic or licence-cleared fixture.
- [ ] Document the adapter commands and the go/no-go checks in `docs/asset-tooling.md`.
### 0.11.3 One-character prototype
- [ ] Adapt one Quaternius CC0 variant and capture front, three-quarter, profile, back,
full-body and crowd views plus a walk cycle.
- [ ] Measure the prototype against the `npc_casual` controls: silhouette, face style, hands,
gear fit, rest pose and walk pose.
- [ ] Make a go/no-go decision on Option B; if no-go, remove the prototype from the pipeline and
continue with Option A.
- [x] Prototype one Quaternius CC0 variant: weld/decimate to budget and capture Idle/Walk
renders. (12,518 imported verts -> 3,199 after weld -> 2,423 / 4,654 tris after a 0.75
decimate; Idle/Walk quality is good. Preview in
`docs/blender_previews/sheet_npc_sources_research.jpg`.)
- [x] Measure the prototype against the `npc_casual` controls: silhouette, rest pose, body
proportions and gear fit. (No-go for a contract rebuild: T-pose 62-bone realistic rig,
~0.96 m hip, ~1.68 m arm span and ~0.153 m shoulder joint do not match the arm-down
13-bone contract. Keep as reference; a second rig/animation path needs its own ADR.)
- [x] Make a go/no-go decision on Option B. (No-go for 0.11.0; proceed with the procedural
generator and keep Quaternius as a visual/style reference.)
### 0.11.4 Roster and runtime
- [ ] Approve four new looks (age/build/hair/outfit variation across everyday, workwear and
responder families; no clothing that labels the NPC's behaviour).
- [ ] Build or adapt the approved variants and add them to the manifest with roles and tint data.
- [x] Approve four crowd-variety looks (build, head silhouette, hair/beard, outer layer and
accessory; no clothing that labels the NPC's behaviour). (`npc_crowd_a` bun/slim/sunglasses,
`npc_crowd_b` bald/broad/beard/shoulder bag, `npc_crowd_c` coat/umbrella, `npc_crowd_d`
hood/cup; prototype sheet committed.)
- [ ] Add the four approved specs to `CHARACTERS`, build and commit their GLBs/AO maps, and
update the manifest with roles and tint data. (Prototype assets are local under `tmp/`;
do not add them to the 0.10.0 release candidate.)
- [ ] Replace the fixed `character_model_for()` mapping with deterministic per-role pools and add
tests for repeatability and duplicate avoidance.
- [ ] Rebuild and verify gear fit for every new variant (`blender_assets.py fit` plus the runtime
@@ -256,6 +272,16 @@ after the 0.10.0 release candidate is published; this milestone must not delay t
- [ ] Exit: a reviewed 12-character library passes contract audit, portrait/gear acceptance,
the 24-NPC budget and licence/provenance review without changing the runtime contract.
### 0.11.6 Deferred MakeHuman local pipeline
- [x] Evaluate the MakeHuman CC0 base mesh for a later separate local development pipeline.
(19,158 verts / 36,972 tris; scaled to 1.82 m; decimate 0.35 -> 3,780 verts / 6,468 tris;
UVs present, no normals/material groups/rig. Feasible only with retopology, a custom rig and
project-owned clothing; keep out of CI/build.)
- [ ] Decide whether body-shape diversity still matters after the 12-character library lands; if
yes, prototype the local MPFB/MakeHuman pipeline outside the repo and commit only the final
CC0-derived assets with provenance.
## Future 0.x / non-blocking candidates
- [ ] Live 3D body-camera replay.