Stage the Blender character/gear/prop library
Commit the finished generator output from the parallel Blender pass: 8 skinned NPC variants, 18 gear pieces, and 20 props under assets/models/blender/, editable sources (gdignored), manifest, review sheets, and the integration notes in docs/blender-assets.md. - audit: all 46 assets clean (characters 3,788-4,640 tris, under 6000/4000) - tests: Python manifest/audit contract and Godot import/bone/slot/ground checks - docs: README library section, architecture/plan references, TODO Phase 3.5 status, MEMORY integration rules - .gitignore: per-asset preview PNGs, extracted GLB textures, blend1 backups Nothing in the game loads the library yet; integration follows." && git log --oneline -1
This commit is contained in:
1 parent
7efb5024ec
commit
d513e0b82c
109 files changed
+1916
-114
No files matched your search
@@ -1,19 +1,18 @@
|
||||
# TODO
|
||||
|
||||
Godot 4.3 prototype. Latest release **v0.5.0** (NPC characters and player movement). Headless
|
||||
suite **212/212** plus **60** Python tooling tests; the session, PLAN-verb, crowd, emergency,
|
||||
suite **218/218** plus **68** Python tooling tests; the session, PLAN-verb, crowd, emergency,
|
||||
timeline, audio, scenario-content, props, NPC-budget, movement, and windowed focus/radial smokes
|
||||
pass. Anonymous downloads are enabled on the host.
|
||||
|
||||
The scheduled presentation pass is complete (see `DONE.md`). The next scheduled pass is the
|
||||
graphics-quality work in [`docs/plan-graphics-v0.6.md`](docs/plan-graphics-v0.6.md).
|
||||
|
||||
> **Asset build in progress:** `tools/blender_assets.py` is being run separately (flatpak
|
||||
> Blender) to generate a larger library: 8 NPC character variants, 18 gear pieces, and 22
|
||||
> street/venue props under `assets/models/blender/`, with a manifest and preview renders.
|
||||
> Do not edit the generator while that process is running. Treat
|
||||
> `assets/models/blender/manifest.json` as the integration source of truth, and audit the
|
||||
> finished outputs before wiring anything into the game.
|
||||
> **Blender asset library built (2026-11-01):** `tools/blender_assets.py` generated 8 NPC
|
||||
> character variants, 18 gear pieces, and 20 street/venue props under `assets/models/blender/`
|
||||
> (audit clean, Godot import clean, see [`docs/blender-assets.md`](docs/blender-assets.md)).
|
||||
> Treat `assets/models/blender/manifest.json` as the integration source of truth; nothing is
|
||||
> wired into the game yet.
|
||||
|
||||
## Graphics quality — Blender-authored NPC characters (v0.6.0)
|
||||
|
||||
@@ -65,24 +64,31 @@ Detailed plan: [`docs/plan-graphics-v0.6.md`](docs/plan-graphics-v0.6.md) · [AD
|
||||
- [x] Re-measure `smoke_npc_budget.gd`; tune `LOD_TIERS` if the skinned rig is heavier up close.
|
||||
- [x] Re-verify the focus-cone smoke (`smoke_focus_radial.gd`) and the movement smoke.
|
||||
|
||||
### Phase 3.5 — Blender asset library integration (generator running)
|
||||
### Phase 3.5 — Blender asset library integration
|
||||
|
||||
Contract and outputs: [`assets/models/blender/manifest.json`](assets/models/blender/manifest.json),
|
||||
generator `tools/blender_assets.py`, previews `docs/blender_previews/` (the generator's
|
||||
integration notes are being written to `docs/blender-assets.md`). The library currently targets
|
||||
8 `npc` variants, 18 `npc_gear` pieces, and 22 `props`; each entry records path, triangle/vertex
|
||||
generator `tools/blender_assets.py`, review sheets `docs/blender_previews/sheet_*.jpg`,
|
||||
integration notes [`docs/blender-assets.md`](docs/blender-assets.md). The library has
|
||||
8 `npc` variants, 18 `npc_gear` pieces, and 20 `props`; each entry records path, triangle/vertex
|
||||
count, bounds, material slots, and (for gear) its attach point.
|
||||
|
||||
- [ ] Wait for the running build to finish, then run `python3 tools/blender_assets.py audit` and
|
||||
reconcile every failure. The first `npc_casual` build is over the 6,000-triangle contract
|
||||
(7,756 tris / 5,616 verts): reduce the mesh or raise/annotate the character budget in the
|
||||
plan before integrating.
|
||||
- [ ] Run `python3 tools/blender_assets.py sheet` and review the contact sheets; reject assets
|
||||
- [x] Wait for the running build to finish, then run `python3 tools/blender_assets.py audit` and
|
||||
reconcile every failure. Characters were reduced to fit the unchanged 6,000/4,000 contract
|
||||
(now 3,788–4,640 tris / 3,195–3,962 verts); the audit also rejects zero-area triangles.
|
||||
- [x] Run `python3 tools/blender_assets.py sheet` and review the contact sheets; reject assets
|
||||
whose silhouette, grounded origin, or face direction (+Z in Godot) is wrong.
|
||||
- [ ] Commit the finished library with the generator, `.blend` sources, manifest, previews, and
|
||||
`docs/blender-assets.md`; add generated/preview folders to `.gitignore` only where CI can
|
||||
rebuild them offline. Keep the audit runnable without Blender.
|
||||
- [ ] Add `tools/test_blender_assets.py` for the manifest contract (all catalogue entries present,
|
||||
rebuild them offline. Keep the audit runnable without Blender. (`.gitignore` already
|
||||
excludes the per-asset preview PNGs, Godot-extracted GLB textures, and `*.blend1`.)
|
||||
- [x] Add `src/test/tests/test_blender_assets.gd`: library imports as scenes, characters keep
|
||||
bones/slots, joints match `npc_base`, bones accept the avatar pose math, props grounded.
|
||||
- [ ] Tint only the five contract slots in `_apply_outfit_materials()` (fixed-colour detail
|
||||
materials such as `hivis`/`reflective`/`leather` must keep their colour), and skip the
|
||||
`vest` cloth→yellow override for `npc_vest` (its vest is the fixed `hivis` material).
|
||||
- [ ] Bake AO/ORM for the Blender characters and props (they currently reuse tiling slot maps
|
||||
or plain PBR factors).
|
||||
- [x] Add `tools/test_blender_assets.py` for the manifest contract (all catalogue entries present,
|
||||
audit clean, attach points known, paths inside `assets/models/blender/`).
|
||||
- [ ] Let `NpcAvatar` choose a character model from the manifest by the profile's role/layer
|
||||
(`npc_casual` / `npc_jacket` / `npc_coat` / `npc_vest` / `npc_dress` / `npc_hoodie` /
|
||||
|
||||
Reference in new issue
Block a user