M8 — ProjectM/EmissiveGloam had no DOTS instancing but is bound to
M_Drowner_EyeGlow on EnemyDrowner.prefab, a baked GHOST prefab that
Entities Graphics renders through BatchRendererGroup. Its skinned sibling
has carried the pragmas since 07-16; this one was simply missed, and murk
hides the symptom (CLAUDE.md: "a dark-lit screenshot MASKS material
bugs"). Added #pragma target 4.5 + multi_compile DOTS_INSTANCING_ON +
UNITY_SETUP_INSTANCE_ID, and a DepthOnly pass so the glows stop being
absent from the URP depth texture (soft particles / SSAO / DoF punch
straight through them otherwise). Verified: shader compiles, isSupported,
2 passes, 0 messages.
M7 — EnemyRigTools was dead at EVERY entry point. All eight hard-coded
prefab paths were deleted by DR-051, and the template check ran BEFORE
the idempotent in-place branch, so even re-running a builder on an
existing prefab failed. The three shipping skinned creatures were
unreproducible. Now the template only matters when there is no output to
edit in place, and a new creature templates off the shipping EnemyDrowner
ghost (GhostTemplate) instead of the deleted Enemy.prefab. Retired the
four menu items that drove the deleted Werewolf/Kaiju/Charger bestiary
rather than leave them advertising entry points that cannot work.
Deleted 19 materials with zero references from any scene, prefab,
ScriptableObject, script or settings asset — verified three ways, not
from the audit's list. Kept everything with a live reference, including
several the audit's asset-only scan called dead but which code loads by
path (M_Skinned_Palette, PixelOutline, M_Env_Fallback).
NOT fixed here, deliberately: MakeMat still points each creature at a
per-PACK Synty atlas rather than the shared palette. That is a visual
decision about the shipping Drowner/Grindylow, not a mechanical fix — the
doc-vs-reality gap gets reconciled in Art_Direction_Lantern instead.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Re-exported the skinned kit from the ONE master .blend with the reshaped diving helmet, grouped into
Metal/Beacon/Porthole SMRs. Darkened the helmet (M_Diver_Metal_Skinned flat gunmetal - the AnimatedLitShader
was multiplying the tint by the gold PaletteAtlas sample, so the atlas map is cleared to force the flat dark
base), kept the warm shoulder-lamp beacon, dimmed the porthole (M_Diver_PortholeGlow_Skinned), shifted the body
to a cool diver tone. Rebuilt Player.prefab via the proven PlayerRigTools graft chain. Verified live in
DevSandbox from the game camera: the gold-dome lamp is gone. Remaining full-match gap (brass-armour/teal-
undersuit split + the shoulder/boot silhouette edits) needs the Synty body replaced by the .blend body.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
ProjectM/EmissiveGloam — URP HLSL, HDR emission (Bloom-catching), with the
readability 'steady=true / flicker=false' channel as a material param
(_FlickerAmount), no script. Applied to the staging flora bulbs (cold, flicker).
The other two master shaders already exist (Lit URP graph, AnimatedLitShader).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Art look LOCKED by the operator from the artlook_* side-by-sides:
clean dark-Synty; PixelOutline._MasterEnabled=0 shipped (feature stays
dev-toggleable via F3; other fullscreen effects remain backlog).
New AmbientMotionSystem (client-only PresentationSystemGroup, the
"world alive" anti-static beat, zero netcode):
- per-biome DRIFT particles from one world-space emitter following the
camera (meadow motes / arid wind-blown dust / cavern motes / blight
spores; palette keys on camera-X region + replicated room biome,
mirroring WorldAtmosphereSystem's switch)
- idle SWAY on the ACTIVE cosmetic flora prop roots near the camera
(LOD children follow the root; probed: none static-batched)
- walk-through RUSTLE: flora brushed by the local player
(GhostOwnerIsLocal idiom) gets a decaying energy shake
Rotations write around a cached base (lossless when toggled off);
knobs in AmbientMotionConfig (scene object, code defaults when absent).
Verified live: drift palettes exact in both regions (meadow
0.62/0.85/0.60 -> arid 0.85/0.68/0.45 on region cross), flora beside
the player rocked (0,0)->(-4.0,+5.0) deg within the rustle+sway
envelope, 466/466 EditMode, console clean. Discovery for follow-up:
the BASE biome's flora props are authored INACTIVE (84 bushes etc.) -
the base has no sway targets until some are re-enabled.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Full-screen URP post effect on the active PC renderer that pixelates the
scene to a fixed low-res grid and draws depth + normal edge-detection
outlines, with color posterization and tone controls, for a stylized
"3D pixel art" look. Runs via Unity's built-in Full Screen Pass feature
(no custom C#); reads camera depth/normals so it applies to DOTS entities
and GameObjects identically.
- PixelOutline.shader/.mat: pixel-snap fill + gamma-space posterize +
brightness/contrast/saturation + depth/normal outlines. Normal
threshold tuned high so outlines don't flood small characters.
- PC_Renderer.asset: FullScreenPassRendererFeature (Depth|Normal, after
post-processing).
- PostFX_Daylight.asset: tonemapping ACES -> Neutral (poppier color).
- Game.unity: brighter base atmosphere (ambient + fog pushed back) and a
stronger directional key light so the fill reads under the effect.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>