Document the gear-fit pass and add the changelog

Create CHANGELOG.md with the post-0.6.0 gear-fit entries and backfill the
recent release history. Update the implemented-features list, asset-tooling
notes, README links and verification counts (headless 229, Python 87).
This commit is contained in:
zwitschi committed 2026-11-01 18:55:43 +01:00
1 parent a7ca698f73
commit 6100d19a25
5 files changed
+102 -8

No files matched your search

+87
View File
@@ -0,0 +1,87 @@
# Changelog
All notable user-facing changes to Gig Line. The format follows
[Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and versions use
Semantic Versioning.
## [Unreleased] — planned 0.6.1
### Added
- Gear-fit checks: `tools/blender_assets.py fit` reports head/skirt clearance,
and the headless suite verifies that head and back gear clears the body
silhouette.
- A refreshed Influencer portrait and gallery captures with a before/after
report in `docs/screens/realism/2026-11-01-gear/`.
- An explicit `--portrait-type` override for capturing hooded roles when a
scenario spawns one.
### Changed
- Narrowed the sunglasses so they sit inside the face silhouette.
- Moved the shoulder bag outboard so it clears both the coat and dress skirts.
- Raised the firefighter helmet so the brim no longer sits on the brow.
- Portrait captures now turn the subject toward the camera and hide the blue
focus overlay, so close-ups show the character rather than the UI.
- The README now links to focused docs pages for gameplay, architecture, setup,
asset tooling, development status and the manual smoke checklist.
### Fixed
- The shoulder bag no longer clips through the coat's skirt.
- The firefighter helmet no longer cuts into the brow ridge.
- The portrait subject no longer faces away from the camera.
- `--portrait-type` is now parsed and applied instead of being ignored.
## [0.6.0] — 2026-11-01
### Added
- Blender-authored character, gear and prop library with baked ambient occlusion.
- Higher-resolution environment textures with tangent normal maps.
- Phase-driven emissive details on library props, characters and street dressing.
- Dedicated README docs for gameplay, architecture, setup, asset tooling,
development status and manual smoke testing.
### Changed
- Environment lighting, fog, sun angle and night glow were retuned for the new
skyline and surface assets.
- The flashlight beam is visible at night and the NPC detail pass adds faces,
hands and cuffs.
### Fixed
- The body-camera overlay no longer covers the shift status.
- Selecting a venue releases the menu input lock and recaptures the mouse.
## [0.5.0] — 2026-11-01
### Added
- Articulated NPC characters with layered outfits, hand items, face/hair variety,
idle behaviour, reaction symbols, queue offsets and three LOD tiers.
- Player acceleration/braking, step-up assist, head bob, landing dip,
precision-walk feedback and surface-aware footsteps.
- Remappable keyboard and gamepad controls.
### Changed
- Crowd roles now select deterministic character variants and props.
## [0.4.0] — 2026-11-01
### Added
- Collision and navigation footprints for every street prop.
- Zoned prop placements with deterministic variants and small clutter.
## [0.3.0] — 2026-10-31
### Added
- Surface-material profiles, ACES tonemapping, glow, aerial fog and phase-based
colour grading.
- Framed facade windows, door trim, curb and lane markings.
- Generated street-furniture models and the Web export.
- Aim-free targeting, a focus cone and precision walk.
+2 -2
View File
@@ -74,7 +74,7 @@ Session memory for durable decisions, state, and gotchas. Keep concise, remove o
- **Status (2026-11-01, after the NPC detail pass):** v0.6.0 is released. Post-v0.6.0 the
realism pass, the visual-alignment pass and the NPC face/hand pass all landed. Headless
**228/228**, Python tooling **86/86**, `tools/check_screenshots.sh` **11 good / 0 bad**,
**229/229**, Python tooling **87/87**, `tools/check_screenshots.sh` **11 good / 0 bad**,
`screen_designs.py compare` 11 good / 0 bad, `scene_concepts.py audit` all GOOD,
`blender_assets.py audit` exit 0, `smoke_npc_budget` OK (16 avatars, 6.94 ms of 50 ms).
`PLAN.md` is compact; README/architecture track the current controls, asset pipeline, CI and
@@ -618,7 +618,7 @@ Session memory for durable decisions, state, and gotchas. Keep concise, remove o
- Joke Shop `door_staff_lines` are logged through `GameManager` (inspect / wand / refuse). They are not a separate dialogue UI.
- Access loadout is implemented; do not re-fix `override_access` as if it were still unread.
- `Save.SETTINGS_FILE` is declared and unused; settings persistence goes through `Save.load_settings()` / `save_settings()`.
- Headless suite is **228/228**; the windowed smokes, screenshot compare and judge pass. Remaining visual follow-ups are in `TODO.md`.
- Headless suite is **229/229**; the windowed smokes, screenshot compare and judge pass. Remaining visual follow-ups are in `TODO.md`.
- Typed spawn signal extra args: handlers must accept the 4th `event: Dictionary` or Godot will not call them (`test_shift_coordinator_runs_a_shift` failed until `_on_spawn` took four args).
- GDScript inference trap that broke the main scene: a `var` typed as a base class
(`radial: CanvasLayer`) exposes script members as `Variant`, so `var x := radial.is_open` is a
+6 -4
View File
@@ -36,8 +36,9 @@ The central design goal is simple:
> `REQUIRE_SIGNIN_VIEW` was disabled on 2026-10-31.
>
> **Latest: v0.6.0** — Blender-authored character/gear/prop library with baked AO, higher-resolution environment textures, and phase-driven library props.
> `main` also contains the post-v0.6.0 realism and visual-alignment pass (v2 skylines/textures,
> UI mockup art, flashlight beam, HUD fixes); the next release will package it.
> `main` also contains the post-v0.6.0 realism, visual-alignment and gear-fit passes
> (v2 skylines/textures, UI mockup art, flashlight beam, fitted NPC gear, HUD fixes);
> the next release will package them.
> Releases are built automatically when a `vX.Y.Z` tag is pushed
> (see [`docs/RELEASING.md`](docs/RELEASING.md)); manual builds use
> `./tools/build_releases.sh`. Installer/AppImage packaging runs in the same pipeline
@@ -103,6 +104,7 @@ Full setup, every run/test/smoke command, and the controls table are in
- [`TODO.md`](TODO.md) — Active checkbox task list.
- [`DONE.md`](DONE.md) — Completed task sections.
- [`MEMORY.md`](MEMORY.md) — Persistent session notes.
- [`CHANGELOG.md`](CHANGELOG.md) — User-facing changes by version.
- [`docs/architecture.md`](docs/architecture.md) — arc42-style architecture documentation.
- [`docs/gameplay.md`](docs/gameplay.md) — Gameplay systems, venues, and the escalation model.
- [`docs/asset-tooling.md`](docs/asset-tooling.md) — Asset pipelines, model tools, and screenshot gates.
@@ -116,8 +118,8 @@ Full setup, every run/test/smoke command, and the controls table are in
## Development Status
v0.6.0 shipped (Blender character/gear/prop library, baked AO, environment
lift); the realism and visual-alignment pass is adopted on `main` and packages
in the next release. See
lift); the realism, visual-alignment and gear-fit passes are adopted on `main`
and package in the next release. See
[`docs/development-status.md`](docs/development-status.md) for the full
implemented list and [`TODO.md`](TODO.md) for what's next. Manual verification
uses the [`docs/smoke-checklist.md`](docs/smoke-checklist.md).
+5 -1
View File
@@ -194,7 +194,11 @@ compares the pre-adoption captures with the current build: on the shots both set
judge's like-for-like means rose on every sub-score (overall 0.8 → 1.0, backdrop 0.6 → 1.6) and
the Pillow metric gap fell 0.444 → 0.348. The character pass
([`2026-11-01-npc/`](../docs/screens/realism/2026-11-01-npc/report.md)) adds the portrait shot and
records the new faces, hands and sleeve cuffs.
records the new faces, hands and sleeve cuffs. The gear-fit run
([`2026-11-01-gear/`](../docs/screens/realism/2026-11-01-gear/report.md)) checks
the sunglasses, bag and helmet against measured head/skirt bounds with
`python3 tools/blender_assets.py fit`; it also fixed the portrait yaw and hid
the focus overlay so the close-up shows the avatar.
![realism run](../docs/screens/realism/2026-11-01-adopt/sheet.jpg)
+2 -1
View File
@@ -5,7 +5,7 @@ Implemented so far:
- Godot 4.3 project scaffold, input map, procedural world builder
- Venue-driven simulation core: `ShiftCoordinator`, `VenueScenario`, `EventScheduler`, `NPCController` + FSM, `AccessVerifier`, `EscalationManager`, `RadioSystem`, `IncidentRecorder`, `ReputationEvaluator`, `CrowdSystem`
- Three authored scenarios (Hollywood Boulevard building, The Joke Shop, Late Night TV Studio) with access policies, NPC archetypes, and event pools
- Headless unit tests: **227 passing** (access rules and venue-correct access loadout, escalation, radio cooldown/battery, NPC reaction determinism, door lock, flashlight perception, persistence round-trip, settings round-trip, input remaps, navmesh, step colliders, skyline alpha, scenario data, full-shift simulation, wand screening, responder dispatch, localization strings, focus cone, action wheel, session shell, PLAN verbs and incident recording, crowd presentation, emergency aftermath, body-camera timeline, NPC theater poses, audio, accessibility, authored scenario content, string formatting, `.tres` venue round-trip, surface materials and environment, focus ranking and outfit/gait helpers, generated prop models, web export preset, prop atlas material, player movement, NPC character layers/LOD/queue, input bindings)
- Headless unit tests: **229 passing** (access rules and venue-correct access loadout, escalation, radio cooldown/battery, NPC reaction determinism, door lock, flashlight perception, persistence round-trip, settings round-trip, input remaps, navmesh, step colliders, skyline alpha, scenario data, full-shift simulation, wand screening, responder dispatch, localization strings, focus cone, action wheel, session shell, PLAN verbs and incident recording, crowd presentation, emergency aftermath, body-camera timeline, NPC theater poses, audio, accessibility, authored scenario content, string formatting, `.tres` venue round-trip, surface materials and environment, focus ranking and outfit/gait helpers, generated prop models, web export preset, prop atlas material, player movement, NPC character layers/LOD/queue, input bindings)
- Simulation extras: protester archetype, CALL_SOMEONE reaction, door lock/secure mechanic (visual indicator), flashlight with night perception bonus, LATE shift phase reaching the violent-threat event
- First-person prototype with interaction HUD, access inspection, wand screening, radio report form (incl. emergency hold-to-confirm), dispatched responder avatars, aim-free targeting, venue cycling between all three scenarios, color-coded escalation feedback, procedural audio cues, navigation-mesh NPC paths, JSON-backed localized strings, persisted shift history, debug overlay, and shift review
- Control pass: focus cone on NPC heads with a billboarded blue circle in front of the face and name, action wheel (LMB/Space) with de-escalation-first slices, mouse-look freeze while a panel is open, acceleration-based walking, and named input actions (`action_menu`, `confirm`, `cancel`, `inspect`, `wand`)
@@ -41,5 +41,6 @@ Implemented so far:
- Visual alignment: start/venue menu, pause, settings, shift review, radio, wand, inspection, timeline, HUD target chip/escalation bar, and radial menu now use or match their AI references in `assets/images/ui/`. The runtime art loader (`src/game/ui/art.gd`) falls back cleanly when a file is missing.
- Realism adoption (post-v0.6.0): v2 per-phase skylines and surface tiles with normal maps, retuned sun/exposure/fog, wet asphalt, denser foliage, a visible additive flashlight beam, and refreshed staging captures. `tools/check_screenshots.sh` is the repeatable capture/compare gate; judge is clean of `diff` verdicts.
- Input/reliability fixes: selecting a venue now releases the start-menu input lock and recaptures the mouse; the body-camera overlay no longer covers the shift status.
- Gear fit (post-v0.6.0): Blender gear is measured against the avatar head/skirt silhouette and the checks run in both the Python tooling and the headless suite. Sunglasses, the shoulder bag and the firefighter helmet were fitted to the new faces; the Influencer portrait and gallery were recaptured with a before/after report.
Not yet implemented: a desktop-only Forward+ preset (the renderer stays GL Compatibility for Web parity), live 3D body-camera replay, editor-based GUT integration, and crowd performance profiling/LOD (see [`TODO.md`](../TODO.md)).