Files
security-game/assets/models/blender_src/quaternius

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.