Docs: SL-1/SL-4 visual-cohesion session log + Backlog status

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-06-15 14:09:45 -07:00
parent fc27b9ff76
commit cb3bdbbee9
2 changed files with 48 additions and 0 deletions
+2
View File
@@ -24,6 +24,7 @@ Last decluttered 2026-06-08 (removed all shipped `[x]` items; their context is p
**Critical path:** SL-1 → SL-2 → **SL-3 (END-2)** → SL-5 → SL-6 → SL-7; SL-4 (visual) runs parallel, done by Jun 23. Every milestone ends with a **falsifiable play/fun-gate**, not a test count. Full vision + visual direction + cohesion checklist + Done Definition: [[End_Of_Month_Game_Jam_Slice]].
### SL-1 — Scope Lock & Arena Cleanup `Jun 13-15` · risk LOW
> **Largely DONE 2026-06-13** (with SL-4): ARPG camera locked to a research-grounded steeper telephoto (pitch 58 / dist 17 / FOV 44 so Core + arena read together); meadow noise removed (~390 cheer/village objects cut); the Ore annulus pulled into the arena (611.5 m, 12 nodes) + the Core staged as the hero. **Open:** the Pylon decision; final camera lock-in via the operator's playtest. See [[2026-06-13_SL1_SL4_Visual_Cohesion_Dark_Frontier]].
- **Goal:** one compact (<~20 m radius, single-camera) base-defense arena with the Core as the hero object; lock the slice doc as the frozen target; set ARPG camera framing.
- **Tasks:** confirm compact footprint + Core centered/dominant · hide/remove non-slice noise (expedition rift/warpgate/distracting props; keep perimeter dark & quiet) · tune `PrototypeCameraRig` (today Pitch 45° / Dist 13 / FOV 55 — verify player+enemies+2 structures+Core read in one view, dash trajectory visible) · verify Ore annulus (~1012 nodes) spacing reads · **decide Pylon** (give the 4th palette entry a job + cyan accent, or cut it — slice names only Turret/Wall/Fabricator) · confirm Save/Continue (SaveData v4) is ready, no extra polish.
- **Fun-gate:** a new viewer IDs player/Ore/Turret/Husk/Core/ground in <1 s; arena reads as a "small industrial clearing," not a meadow; camera neither too close nor too wide.
@@ -44,6 +45,7 @@ Last decluttered 2026-06-08 (removed all shipped `[x]` items; their context is p
- **Deps:** SL-1 (arena), SL-2 (tuned baseline). **No save-schema bump** (bytes derivable on load → SaveData stays v4).
### SL-4 — Visual Cohesion Pass `Jun 20-23` (parallel) · risk MED
> **Substantially DONE 2026-06-13** (research-grounded, screenshot-verified): the arena reads as a dark "Aether Siege Outpost" bullseye — dark teal-grey ground that recedes, cyan Core as the luminance peak, **amber** Ore ring, dark perimeter; ACES grade with gated bloom + cool-shadow/warm-highlight faction split + vignette; sun/ambient/fog darkened. **Remaining (polish + needs operator eyes):** cyan emissive on owned **structures** + orange-red Husk verification during a siege (gameplay-entity material work); 3 telegraphed spawn lanes + perimeter height-gate; minor (warm crate, Synty/Foliage grass shader, amber-emission tone). See [[2026-06-13_SL1_SL4_Visual_Cohesion_Dark_Frontier]] + the visual-direction research synthesis.
- **Goal:** "Aether Siege Outpost" read — dark/quiet ground, cyan owned vs orange-red hostile, Core as hero; pass the slice's Visual Cohesion Checklist (slice §203216).
- **Tasks:** darken ground + neutral props (~4050 %, recede them) · cyan emissive accents on player + all owned structures + Core (read at 13 m in motion) · orange-red on Husks + telegraphs · amber Ore legibility · 510 **dark** perimeter framing props (no sightline blockers, none brighter than Core) · post-FX: bloom only on Aether/Ore/attacks, reduce fog that washes silhouettes, subtle vignette, cool-shadow/warm-glow grade · re-test every asset import in Play (material-regression guard).
- **Fun-gate:** a blind watcher of a 5 s clip IDs Core="base defended", cyan="owned", orange="enemy", ground="background", arena="engineered space not meadow"; cyan/orange ≥2× brighter than ground.
@@ -0,0 +1,46 @@
---
date: 2026-06-13
type: session
tags:
- session
- art
- visual-cohesion
- camera
- post-processing
- slice
- sl-1
- sl-4
permalink: gamevault/07-sessions/2026/2026-06-13-sl1-sl4-visual-cohesion-dark-frontier
---
# SL-1 / SL-4 — Dark-frontier visual cohesion pass (camera, grade, bullseye)
> Slice milestones **SL-1** (arena/camera lock) + **SL-4** (visual cohesion). Continues the END-2 session [[2026-06-13_SL3_END2_Final_Siege_Win_Lose]]. Target: turn the base arena from a bright Synty **meadow** ([[DR-025_World_Environment_Redo_Natural_Frontier]]) into the slice's dark **"Aether Siege Outpost"** ([[End_Of_Month_Game_Jam_Slice]] Visual Direction). Operator asked to **research scene composition + camera + colour first**.
## Research-first (the operator's explicit ask)
Ran a 4-lens visual-direction research workflow (scene composition · camera · colour/value · URP post-FX), grounded in top-down base-defense/ARPG references (Riftbreaker, They Are Billions, Core Keeper, Hades, Diablo, Hyper Light Drifter). Synthesised into one concrete spec — north-star: **a single concentric bullseye, read by VALUE first then hue: the cyan Engine Core is the lone bright object at center, ringed by an amber Ore annulus and a quiet dark perimeter.** The Unity edits below are that spec's prioritised punch-list.
## What shipped (all asset/scene edits — no `.cs`)
- **Camera** (`PrototypeCameraRig` on `Game.unity`): pitch **45→58**, FOV **55→44**, distance **13→17**, AimLead **1→0.5**, FollowSharpness **8→6**, TargetHeight **1→1.3**, far→80. Steeper telephoto so the Core + full arena + spawn gaps read at once with near-iso enemy spacing (a Husk at the rim and one at the Core read at ~equal size); Core anchored near frame-center for a hold-the-center defense.
- **Lighting / atmosphere** (`Game.unity` RenderSettings + `WorldAtmosphereConfig`): sun dimmed + cooled (warm 1.6 → cool-white 0.9); Trilight ambient **1.0→0.62**, dark-cool; fog **ExponentialSquared→Linear 18→42m**, dark teal; base-region atmosphere darkened so the runtime cross-fade lands dark.
- **Post-FX** (`PostFX_Daylight.asset`): ACES kept; **Bloom gated** (threshold 1.0→1.2 + clamp 10 — only HDR emissives glow, never the lit ground); ColorAdjustments exposure +0.55 / contrast +12 / **saturation +6→0** (mute Synty chroma so emissives dominate) / cool filter; **added `ShadowsMidtonesHighlights`** (cool-teal shadows / warm highlights — the faction-sort baked into the grade, via `AddObjectToAsset` so it persists); Vignette **0.15→0.32**.
- **Ground**: `Mat_Grass_Textures_01` re-tinted dark teal-grey `#2A342F`, matte, no emission (the #1 readability lever — the untreated grass was out-shouting the actors).
- **Cut the meadow cheer (~390 objects, reversible setActive=false)**: butterfly/petal/sunbeam FX, sunflowers/wildflowers/flat-flowers, cabin/windmill/well/waterwheel/pond/lillies (cozy-village props), and the green grass clumps/ground-cover in the play area. Kept dark perimeter trees/rocks + the cyan AetherLights + the Warpgate.
- **Core as the hero**: the cosmetic `EngineCore` crystal scaled **14.2m→4.6m** with a controlled cyan glow (the ×4 first pass clipped to pure white — dialed to ×1.25 so the cyan reads); added a cyan **beacon point light** (range 9, int 3) at PlotCenter. The gameplay Core ghost stays the bright cyan luminance peak co-located at origin.
- **Ore ring** (`BaseFieldSpawnerAuthoring` in the Gameplay subscene): **23.527m → 611.5m, count 10→12** — pulled the resource ring from *outside* the arena (24m, off-frame) into the compact bullseye. Re-coloured **AMBER**: new `Mat_OreNode_Amber` (emissive amber) on `ResourceNode.prefab` — a dedicated material to avoid `PolygonFantasyKingdom_Mat_01_A` shared-atlas bleed (CLAUDE.md gotcha). Resource now reads distinct from owned-cyan.
## Validation
- **Screenshot-verified in Play** (RenderTexture capture via `execute_code` on the unfocused editor, `runInBackground`): the arena reads as a clean dark bullseye — dark teal ground recedes, cyan Core is the luminance peak, the 12 amber Ore nodes ring it at 6.310.1m, dark perimeter frames. avgLum dropped from a bright-meadow ~26 to a dark ~7 (follow-cam) with a bright cyan peak; ground hue moved green→dark-teal.
- 342/342 EditMode still green (no code touched). Ore-ring subscene re-bake verified (12 nodes at the new radii).
## Deferred / operator follow-ups
- **SL-2 loop tuning is feel-work** (needs a real playtest, not headless): the structural values are set (Target=4, FinalSiegeMultiplier=2.5, Ore 611.5/12, schedule 45s, sizeBase 5 + 1/wave); the build costs / Fabricator ratio / turret damage / wave growth / exact multiplier want the operator + the live `TuningConfig` overlay.
- **Gameplay-entity emissives** (cyan owned structures, orange-red Husk verification during a siege) — per-prefab material work; the research's per-element hue/EV table is the guide.
- **Composition polish**: 3 telegraphed spawn lanes at 120° + perimeter height-gate (≤2.5m camera-near); the gameplay-Core pillar is tall (a baked ghost — scaling needs the prefab); minor — a warm SciFi crate + the Synty/Foliage grass shader (different colour prop) at the perimeter; the amber emission is a touch hot (tone if it blooms under a full siege).
- **Pylon decision** (SL-1) still open.
## Files
- `Assets/Scenes/Game.unity` (camera, sun, ambient, fog, atmosphere cfg, cut props, beacon, Core scale), `Assets/_Project/Subscenes/Gameplay.unity` (Ore radii), `Assets/_Project/Rendering/PostFX_Daylight.asset` (grade), `Mat_Grass_Textures_01.mat`, `Mat_EngineCore_Aether.mat`, new `Mat_OreNode_Amber.mat`, `ResourceNode.prefab`. Commit `fc27b9ff7`.
## Next-session intent
The arena now reads as a dark frontier bullseye. Next is the operator's hands-on **SL-2 loop tuning** (the 58 min run feel) + **SL-5 final-siege climax tuning** (FinalSiegeMultiplier, telegraph), then SL-6 polish (incl. the deferred gameplay-entity emissives + spawn lanes) and SL-7 packaging.