Swap the full 12-character roster onto the CC0 Quaternius bases
Full build / Import + headless tests (push) Successful in 40s
Full build / Full desktop build + optional release (push) Skipped

This commit is contained in:
zwitschi committed 2026-11-06 13:56:30 +01:00
1 parent 1ce173e9d1
commit a6ccd86f85
39 files changed
+583 -173

No files matched your search

@@ -0,0 +1,33 @@
# Quaternius build sources (CC0 1.0)
These are the **build inputs** for the shipped NPC roster, not runtime assets.
`blender_src/.gdignore` keeps Godot from importing this directory.
Source: Quaternius *Ultimate Modular Characters* and *Ultimate Modular Women*
(<https://quaternius.com/packs/ultimatemodularcharacters.html>), licence CC0 1.0,
attribution recorded in the repository `CREDITS.md`.
| File | SHA-256 | Bones | Meshes |
| --- | --- | --- | --- |
| `Casual.glb` | `bc2d84fba249ebaa0629cb9d133ad37234196e4b8004aa205a6397abed04e05c` | 62 | 4 skinned + Icosphere helper |
| `Casual_Hoodie.glb` | `f5b722199f7628b24550989af4230f65d5230727df9c326fd2b3e360effe5249` | 62 | 4 skinned + Icosphere helper |
| `Worker.glb` | `8d0f454336c2effc5c08f63a177af3a82d1a7af025ca9588b40e4c90c4703534` | 62 | 4 skinned + Icosphere helper |
Each file also carries 24 animation clips; the build exports **no** animation data, so
the shipped GLBs contain the mesh, the 62-joint skin and the material slots only.
Reproducing the shipped characters:
flatpak run org.blender.Blender --background \
--python "$PWD/tools/blender_assets.py" -- build --only npc
Upstream quirks the build compensates for (see `docs/npc-model-sourcing.md`):
1. every mesh ships a **degenerate UV map** (all loops at `0,0`) with flat-colour
materials, so the build Smart-UV-unwraps and repacks before export;
2. the meshes must be joined **without welding** — `remove_doubles` corrupts the
skin weights;
3. the rest pose is a T-pose, so the arm-down rest is baked by
`_bake_quaternius_rest()`;
4. the upstream material names differ per file, so each source carries a slot map
down to the project's five tint slots.