Establish the 0.9.4 NPC visual baseline
Add a neutral 48-frame character contact sheet, acceptance criteria and ranked baseline gaps, plus repeatable sheet/comparison tooling. No character GLB or runtime mesh changes.
This commit is contained in:
1 parent
c1cd4898e8
commit
e7ee177c31
13 files changed
+628
-11
No files matched your search
@@ -61,6 +61,13 @@ Session memory for durable decisions, state, and gotchas. Keep concise, remove o
|
||||
gallery is 13 good / 0 bad, the screen-design judge is 13/13 and a clean
|
||||
portrait measured a 0.732 vision gap against the photoreal concept. No
|
||||
release build, version bump or tag was created at this gate.
|
||||
- **NPC visual baseline (0.9.4, 2026-11-02):** `src/test/capture_npc_baseline.gd` is the
|
||||
neutral-studio 8-variant × 6-view baseline (front, three-quarter, profile, back, full body,
|
||||
crowd). It uses a fixed orbit camera, mid-grey studio backdrop, key/fill lights, no HUD/crowd/animation;
|
||||
raw frames stay in `tmp/`, and `tools/npc_baseline.py sheet` builds the committed
|
||||
`sheet_npc_baseline.jpg`. Criteria and measurements are in `docs/npc-visual-review.md`. The first
|
||||
ranked gaps are: tourist photo prop duplicates the backpack silhouette; shallow/faceted face;
|
||||
backpack straps read as rigid bars. No model/GLB changes were made in the baseline step.
|
||||
- **UI flow smoke (2026-11-02):** `smoke_ui_flows.gd` boots the real scene and
|
||||
exercises inspection allow/deny, normal vs emergency radio, Help filtering,
|
||||
wand allow/deny and review return-to-menu. Keep this smoke in the 0.9.6
|
||||
@@ -734,7 +741,7 @@ Session memory for durable decisions, state, and gotchas. Keep concise, remove o
|
||||
- Venue `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 **261/261**; Python tooling is **97/97**; screenshot compare is **21 good / 0 bad** and the automatic judge is **21/21 match, 0 diff**. Remaining visual follow-ups are in `TODO.md`.
|
||||
- Headless suite is **261/261**; Python tooling is **99/99**; screenshot compare is **21 good / 0 bad** and the automatic judge is **21/21 match, 0 diff**. 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
|
||||
|
||||
Reference in new issue
Block a user