Docs: roadmap — Emissive-Gloam shader + skinned Drowner bind (art progress)

A0: all 3 master shaders now present (Emissive-Gloam authored as HLSL w/
in-shader flicker). A1: skinned recipe proven for a LANTERN creature
(EnemyRigTools.BuildDrowner -> EnemyDrowner.prefab); in-game animated run +
custom-kit reattach + suit/2nd-creature still open. Flags the Generic-vs-
Humanoid rig-type discrepancy vs CLAUDE.md to reconcile.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-07-14 22:02:28 -07:00
parent cb224be81b
commit ec0e3ce5dc
+19 -5
View File
@@ -152,8 +152,12 @@ Runs parallel with 46 where possible.
> Passes the three-way judge: full-size, 200px, and **grayscale** (warm/cold separated by *value + flicker-cadence*, > Passes the three-way judge: full-size, 200px, and **grayscale** (warm/cold separated by *value + flicker-cadence*,
> not hue alone — the colorblind-safe read). ⚠ **Vertical god-rays don't read down a top-down camera** — ground > not hue alone — the colorblind-safe read). ⚠ **Vertical god-rays don't read down a top-down camera** — ground
> pools do (recorded in the [[Lantern_Art_Pipeline_Recipes|recipes]] / `/art-dev` cookbook). > pools do (recorded in the [[Lantern_Art_Pipeline_Recipes|recipes]] / `/art-dev` cookbook).
> - **Still open:** the **3 master ShaderGraphs** (esp. `Emissive-Gloam` flicker param) are still stand-ins; the > - **Master shaders — all 3 now present:** `Lit-Palette` (the `Lit URP` graph) + `Skinned-Palette` (`AnimatedLitShader`,
> **skinned Rukhanka bake** (animated creatures/suit) is deferred to A1/A2. > Rukhanka-deformation) already existed; **`Emissive-Gloam` authored this pass** as a hand-written URP shader
> (`ProjectM/EmissiveGloam`, `Assets/_Project/Shaders/`) with the **flicker-cadence as a material param** (`_FlickerAmount`
> 0=steady/true, >0=gutter/false) — in-shader, no script. (ShaderGraph can't be authored via the MCP; HLSL is the better
> home for the flicker anyway.) The staging warm/cold read now separates by **value + flicker-cadence**, not hue alone
> (passes the grayscale/colorblind check).
## A1 — Pipeline proof (runs alongside Phase 1) ## A1 — Pipeline proof (runs alongside Phase 1)
@@ -173,10 +177,20 @@ Runs parallel with 46 where possible.
> **A1 progress (2026-07-14) — partial (ran early during A0).** The **statics recipe is validated end-to-end in-engine** > **A1 progress (2026-07-14) — partial (ran early during A0).** The **statics recipe is validated end-to-end in-engine**
> (Blender → glb → glTFast import → shared `M_Lit_Palette` → renders correct in URP at the game angle; the crate + flora > (Blender → glb → glTFast import → shared `M_Lit_Palette` → renders correct in URP at the game angle; the crate + flora
> are baked into ArtStaging). Both recipes are written checklist-grade ([[Lantern_Art_Pipeline_Recipes]]) + the `/art-dev` > are baked into ArtStaging). Both recipes are written checklist-grade ([[Lantern_Art_Pipeline_Recipes]]) + the `/art-dev`
> cookbook. **Not yet done:** the **skinned recipe in-engine** (Rukhanka rig-bind + `Skinned-Palette` + animation drive) — > cookbook. **Skinned recipe — now proven for a LANTERN creature:** `EnemyRigTools.BuildDrowner` (new menu, extends the
> heroes are currently posed *static* bakes, not animated; the "cube→rigged→animated→fighting, twice" gate is still open. > DR-023 table-driven tool) produces **`EnemyDrowner.prefab`** — a game-ready ownerless-interpolated **skinned** enemy
> (SciFiSpace Crew_Male body, gloam `M_Enemy_Drowner_Animated` on the `Skinned-Palette`/`AnimatedLitShader`, `AC_EnemyTopDown`
> + `RigDefinitionAuthoring`), structurally identical to the shipping werewolf/charger → animates in-game via the same
> EG/Rukhanka path (renders only in the baked ECS world, not a plain scene). **Still open:** the authoritative **in-game
> animated run** (wire into `WaveDirector.EnemyPrefabs[]` + a Server/Client play-run — a gameplay-roster change), the
> **custom kit** re-attach (glowing eyes/kelp as bone-parented children), and the **Bathynaut suit + 2nd creature** — so
> the "cube→rigged→animated→fighting, twice" gate is close but not signed off. ⚠ Open discrepancy to reconcile: the
> grounding read found `Characters.fbx` imported as **Generic** (`animationType: 3`), which conflicts with CLAUDE.md's
> "HUMANOID" note — verify before relying on either. Safe regardless: **reuse the existing rigged Synty prefab + its
> `CharactersAvatar`** via the tool; do NOT reimport the FBX (a rig-type flip would break the clip binding).
> Reusable gotchas banked: Blender-5.1 Synty-FBX import workaround, bounds-normalize scattered Synty rocks, posed-static > Reusable gotchas banked: Blender-5.1 Synty-FBX import workaround, bounds-normalize scattered Synty rocks, posed-static
> hero bake (apply-armature + visual-transform), the Unity URP render-harness (layer sign-bit, `SubmitRenderRequest`). > hero bake (apply-armature + visual-transform), the Unity URP render-harness (layer sign-bit, `SubmitRenderRequest`),
> and the `EnemyRigTools.BuildDrowner` path + its EG-only-render caveat.
## A2 — The creature factory (runs alongside Phases 26) ## A2 — The creature factory (runs alongside Phases 26)