Prepare the modular part intake: inventory, extract, verify, join and the part contract
Full build / Import + headless tests (push) Successful in 41s
Full build / Full desktop build + optional release (push) Skipped

This commit is contained in:
zwitschi committed 2026-11-06 18:54:08 +01:00
1 parent 7a46963e3f
commit f6bb2b1de3
9 files changed
+388 -10

No files matched your search

+19 -6
View File
@@ -770,12 +770,25 @@ regressing gear fit, budget or readability.
place (`short` identity, `buzz` squashed toward the hairline, `long` stretched from the crown),
and each role picks a style through the existing `CHARACTERS[...]["hair"]` field. The T-pose
cache is keyed on the style. The roster now reads as three silhouettes instead of one.
- [ ] **Outfit part library.** Unchanged ceiling: three outfit meshes for twelve roles. The upstream
modular pack is distributed as a Google Drive folder
(<https://drive.google.com/drive/folders/1USAAquX2JJWuA2m6zol0KUkFe3UkZ8zX>), which cannot be
fetched reproducibly by a script, so outfit variety needs either a manual intake of that pack
(with the CC0 licence + SHA-256 record) or new garments authored here. Decide which before
starting; a `bald` hair variant also needs a skull-covering crown on the `worker` base first.
- [-] **Outfit part library (owner chose the one-time manual download).** The upstream modular pack is
a Google Drive folder (<https://drive.google.com/drive/folders/1USAAquX2JJWuA2m6zol0KUkFe3UkZ8zX>);
the owner downloads it once, everything after that is scripted. Steps:
1. download the pack and drop the archive (or its extracted folder) into
`tmp/quaternius-intake/` — that directory is gitignored;
2. `python3 tools/quaternius_parts.py inventory --dir tmp/quaternius-intake` — lists every GLB
with its meshes, triangles, bones and materials, so the usable parts are picked by
measurement instead of by filename;
3. `python3 tools/quaternius_parts.py extract --file <glb> --mesh <name> --out parts/<part>.glb`
writes one skinned part onto the 62-joint rig (the only accepted part shape);
4. `python3 tools/quaternius_parts.py verify --dir assets/models/blender_src/quaternius/parts`
records the SHA-256 of what was kept, then copy the accepted sources into
`assets/models/blender_src/quaternius/parts/` and add the rows to `CREDITS.md`;
5. assign parts per role in `CHARACTERS[...]["parts"]` and rebuild.
Nothing lands in `assets/` until step 5, and the pack itself is never committed.
Tooling is ready and proven: `inventory`/`extract`/`verify` work, and a scratch part joined
onto a base and exported cleanly before the pack arrived. The part contract is in
`assets/models/blender_src/quaternius/parts/README.md`. **Waiting on the owner's download.**
A `bald` hair variant also needs a skull-covering crown on the `worker` base first.
- [ ] Bake per-slot albedo/normal/ORM maps and a per-slot atlas; the five slots currently share one
whole-body UV set, which caps how much the cloth/pants tints can differ.