Group the top-level docs into docs/project, docs/design, docs/assets and docs/process, each with its own README index. Delete the superseded docs/screens/head-review page and sheets. Rewrite every markdown link, absolute docs path and tool/test reference to the new locations, fix the pre-existing broken anchors and remove the dead Joke Shop photo-board link. check_docs OK, Python tooling 167/167.
34 lines
1.7 KiB
Markdown
34 lines
1.7 KiB
Markdown
# 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/assets/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.
|