# Player character attribution

The player wears a helmeted flight suit, animated with retargeted motion clips.

## Model

**Spacesuit (Confederation of Planets)** by **tnnv** ([tnnv on Sketchfab](https://sketchfab.com/tnnv)),
licensed under **Creative Commons Attribution 4.0 International (CC BY 4.0)**.

- Original model: [Spacesuit (Confederation of Planets) on Sketchfab](https://sketchfab.com/3d-models/spacesuit-confederation-of-planets-da7b5c14bc634f8283e2d21343afa7cc)
- License: [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/)
- Full license text: [Creative Commons legal code](https://creativecommons.org/licenses/by/4.0/legalcode)
- Official source metadata: [Sketchfab model API](https://api.sketchfab.com/v3/models/da7b5c14bc634f8283e2d21343afa7cc)

The official Sketchfab metadata and the downloaded GLB's embedded `asset.extras`
both identify tnnv as the author and CC BY 4.0 as the license. Verified
September 30, 2026. The artist describes it as a game-ready suit intended for a
third-person game; it includes an authored skeleton, skin weights and PBR
textures for the suit, helmet and visor.

## Animations

**Universal Animation Library** and **Universal Animation Library 2** (the free
Standard packs) by **Quaternius**, dedicated to the public domain under
**CC0 1.0 Universal**. No attribution is required; credit is given anyway.

- [Universal Animation Library](https://quaternius.itch.io/universal-animation-library)
- [Universal Animation Library 2](https://quaternius.itch.io/universal-animation-library-2)
- License: [CC0 1.0](https://creativecommons.org/publicdomain/zero/1.0/)

## Project adaptation

`player.glb` is an adaptation of tnnv's suit for the game's player avatar:

- The visor is made dark, glossy and opaque, and the pilot's head and neck
  inside it lose their skin texture for a plain black liner that fills the gaps
  round the helmet's rim and the suit's collar.
- The suit's orange and red accents are marked in the colour textures' alpha
  channel so the game can recolour them (black by default; blue, red or green),
  and the suit's and helmet's "CoP" emblems are painted out and replaced with an
  original badge drawn for the game (`scripts/player-suit-paint.js`).
- The rig's right hand is moved off a duplicate, unweighted IK arm chain onto
  the arm it follows; joints lose Sketchfab's numeric suffixes.
- The outer vest's skin weights on the upper arms move to the collar bones
  (half along the vest's edge), so the armour no longer bends with the arms
  (`scripts/player-vest-weights.js`).
- 48 Quaternius clips are retargeted onto the suit's skeleton: its A-posed limbs
  are aligned to the library's T-pose, then each joint takes the library
  joint's world-space rotation from rest. Hip motion is scaled by hip height.
- Textures are re-encoded as WebP (the two recoloured ones keep the colour
  under their alpha exactly).

The suit's meshes, skin weights and texture artwork are otherwise the artist's.
The replacement badge is the project's own work.
These are project changes and do not imply endorsement by tnnv or Quaternius.

Keep this attribution with redistributed copies of the model and its textures.
CC BY 4.0 permits redistribution and adaptation, including commercial use, with
appropriate attribution, a license link, and an indication of changes. See the
linked license for its complete terms.

## Rebuilding

The original downloadable GLB is preserved in the public
[Objaverse distribution](https://huggingface.co/datasets/allenai/objaverse/resolve/main/glbs/000-052/da7b5c14bc634f8283e2d21343afa7cc.glb);
the build script fetches it into `node_modules/.cache/player`. Download both
free Standard animation packs from the itch.io pages above and copy
`Unreal-Godot/UAL1_Standard.glb` and `Unreal-Godot/UAL2_Standard.glb` from the
archives into the same folder. Then run:

```bash
node scripts/build-player-model.js
```

Edit `CLIPS` in the script to add clips; the paid packs use the same skeleton.
