Files
Papay-Shooter/docs/ASSET_SOURCES.md
T
Nicholas ButzkeandClaude Fable 5 d05477c135 feat: Sketchfab-to-game character pipeline, FP/TP animated views, client-auth netcode, audio system
Character pipeline (tools/):
- sketchfab_import.py: search/download via Sketchfab Download API with
  license/attribution tracking (SKETCHFAB_API_TOKEN)
- autorig.py: headless Blender auto-rig — fits a Mixamo-named skeleton
  to unrigged humanoids, binds automatic weights
- merge_animations.py: merges the shared Mixamo-skeleton animation
  library onto any rigged character, strips root motion, canonical names
- pipeline.py: one command chains download -> rig -> animate -> register

In-game skin system:
- SkinManager autoload reads skins.json (auto-written by the pipeline)
- SkinnedPlayerModel rewritten: canonical clips with fallback chains,
  blend times, speed-scaled locomotion, weapon bone attachment
- First-person: full animated body for the owner, head hidden via
  SkeletonModifier3D; third-person: full model for other players
- Skin selector in main menu; skin id synced in multiplayer
- Fixed GLBLoader crash (GLTFDocument.get_animation_count doesn't exist)

Multiplayer sync overhaul:
- Movement is now client-authoritative: the owning peer simulates
  locally (no input round-trip), server keeps health/kills/death
- Remote players interpolate synced_position/velocity with
  extrapolation and snap-on-teleport
- Knockback/impulses routed to the simulating peer

Audio:
- AudioManager autoload: SFX/Weapons/Footsteps/UI/Music buses, pooled
  3D players, variation + pitch randomization, auto-registration from
  assets/sounds

Docs: 3D_ASSET_PIPELINE.md rewritten end-to-end, new ASSET_SOURCES.md
(non-procedural animation/map/sound sources) and SOUND_DESIGN.md.
Verified with debug/spawn_smoke_test.gd (headless: 24/24 checks pass).

Co-Authored-By: Claude Fable 5 <[email protected]>
2026-07-06 02:28:58 -04:00

3.2 KiB

Asset Sources — Replacing Procedural Content

Goal: move away from procedurally generated animations, maps, and sounds. Everything below is free for commercial use unless marked otherwise. CC0 = no attribution needed. CC-BY = must credit the author.

Animations

Source License Notes
Mixamo Free (Adobe account) 2500+ humanoid clips, the de-facto standard skeleton this pipeline targets. No API — download clips manually once.
Quaternius Universal Animation Library CC0 500+ clips on a Mixamo-compatible rig. Drop straight into assets/characters/animations/.
Kenney Character Assets CC0 Simple rigged characters + basic clips.
Sketchfab (filter: animated + downloadable) per-model Many characters ship with their own baked animations; pipeline.py --rigged keeps them.

Character models

Source License Notes
Sketchfab downloads per-model (shown by our search tool) Primary source — use tools/sketchfab_import.py search.
Quaternius CC0 Stylized low-poly packs, many pre-rigged.
KayKit CC0 Character + dungeon packs, rigged, game-ready.
PolyPizza mostly CC0/CC-BY Searchable low-poly aggregator.

Maps / environments (replace the procedural arena)

Source License Notes
Kenney kits (City, Prototype, Platformer) CC0 Modular kits — greybox with Prototype textures, dress with City kits.
KayKit Dungeon/City packs CC0 Modular, snaps to grid, ideal for arena shooters.
Sketchfab scenes per-model Whole environments exist; check poly counts before importing.
ambientCG CC0 PBR materials/textures for level surfaces.

Workflow: block out in Godot with CSG/GridMap for movement flow first, then replace geometry with kit pieces. Movement (wall-run surfaces, slide ramps) should drive layout, not the other way around.

Sounds

See SOUND_DESIGN.md for the full plan. Short list:

Source License Notes
Sonniss GDC Bundles Royalty-free 100+ GB of pro game audio, free, commercial OK. THE first stop.
Kenney Audio packs CC0 UI, impacts, footsteps, sci-fi weapons.
Freesound (filter CC0) CC0/CC-BY Searchable; check license per file.
BOOM Library free packs Royalty-free Cinematic-quality freebies.
99Sounds Royalty-free Weapon/impact packs.

Attribution bookkeeping

  • Sketchfab: tools/sketchfab_import.py writes <model>.license.json next to every download; the pipeline copies it beside the final skin GLB.
  • Anything CC-BY (models or sounds) must appear in a credits screen. Grep for license files before shipping: ls assets/**/*.license.json.