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>
WeaponGripAnchor under Hand_R in Player.prefab carries the actual axe
mesh as an EditorOnly preview (baker skips it; play-verified single axe)
so grip manipulation is the real model live in the prefab stage;
AttachMeleeWeapon reads the anchor (consts = seed/fallback). Includes
the operator's first gizmo-tuned grip (rebaked mesh matches expected
radius exactly). PlayerRigTools also carries the heavy-lock clip
re-speeds (1.0/0.85/0.88) consumed by the next commit.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
EnemyDrowner: Emissive-Gloam eyes bone-parented to Head + boneEntityStrippingMode
=None (attachments ride the rig). New skinned prefabs EnemyGrindylow +
SuitFrame_Bathynaut. Pipeline run 3x -> A1 repeatability exceeded.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
EnemyRigTools.BuildDrowner (menu ProjectM/Animation) — SciFiSpace Crew_Male
body (same rig/atlas/avatar as the player) through the proven DR-023 path:
EnemyDrowner.prefab = ownerless interpolated ghost + AnimatedLitShader
(Skinned-Palette) gloam material + AC_EnemyTopDown + RigDefinitionAuthoring.
Structurally identical to the shipping werewolf/charger enemies -> animates
in-game via the same EG/Rukhanka path. (Renders only in the baked ECS world,
not a plain scene; ArtStaging keeps the static bake for art review.)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Second ground iteration ("better but could be further improved"): the remaining
plainness was single-texture ground — noise only modulated brightness, never
MATERIAL. Now each biome bakes a unique 1024 splat-blended base map (zero
repetition at macro scale) with the fine texture moved to the detail slot as a
high-pass layer at real tiling:
- Meadow: grass + dirt + clover patches masked by fbm; the worn paths
(storage->warpgate, storage->base-gate) and a congregation-wear disc at the
storage crystal are baked INTO the splat as organic dirt zones (exact
plane-UV mapping probed: u=0.5-x/90 — both axes inverted).
- Arid: sand + sand2 + arid-dirt patches + a subtle arena-wear disc at the
quad center (= the room origin on both quads) + warm/cool hue drift.
- Detail slot: generated 2048 high-pass (full - 128-blur, 1.4x) of the
grass/sand textures, LINEAR import, tiled 22x/26x — crisp up close, the
splat carries identity at distance.
- Superseded assets removed: the overlay WornPath quads + material + texture
(double-darkened over the baked wear and caught fog as a ghostly rectangle)
and the old macro-noise detail textures.
Biome tint MPB + normals unchanged and still active. Measured ground luminance
0.30/0.33 (edit ambient) — play fog/dark ambient pulls it down; tints remain
the one-line brightness knob.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Phase 1.5b ground bundle (operator: "the ground is very plain"):
- Ground materials rebuilt: Grass/Sand base maps at real tiling (22x/26x, was a
2x smear across 90-130u) + Synty normal maps + a generated 0.5-centered macro
noise detail texture (LINEAR import — sRGB detail mul2x darkens 2.3x) with
baked rim vignette. Meadow ground moved OFF the shared Synty asset onto
project-owned Mat_Ground_Meadow.
- WorldAtmosphereSystem: per-room-biome ground tint on the expedition quads via
MaterialPropertyBlock (Meadow green / Cavern blue / Blight purple; Arid sand
default), lerped alongside the existing fog/ambient palettes.
- RoomDressingSystem + RoomDressingConfig (new, client-only observe-only):
26 biome-flavoured cosmetic props per room, scattered inside the room's ACTUAL
shape (same RoomLayoutMath authority as the server, distinct 0xD2E55 hash
stream), deterministic from the replicated run seed, torn down with the room,
colliders stripped. 47 curated prefab refs wired in Game.unity (build-safe).
- Base: 357 curated flora props re-enabled (bushes/wildflowers/grass clumps;
buildings/pond/FX stay parked) + generated worn-dirt paths storage->warpgate
and storage->base gate.
Live-verified: dressing 26/26 inside x[981,1023] z[-11,12] y=0, 11 varieties,
0 colliders; teardown on run end; Meadow tint converged to exact target; 470
EditMode green; console clean.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
'sand 1' shipped pure-white BaseColor - the whole desert washed out and
characters/telegraphs sat on a bright field. Project-owned copy
(Mat_Ground_Arid_Dark, 0.72/0.68/0.63) assigned to both room-slot grounds;
the Synty pack asset stays pristine. Clarity doctrine: ground darker +
lower-detail than characters.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Uncommitted residue from the SL-4 visual-cohesion pass, swept up while
cleaning the worktree (unrelated to the 6.5 upgrade):
- Mat_StructureOwned_Cyan: _Color nudged to match _BaseColor (0.11,0.22,0.26)
- Gameplay.unity: a prop transform moved (0,1,8) -> (5.1,2.46,20.7)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Owned structures (Turret/Wall/Fabricator/Pylon) now read cyan-owned via a dedicated Mat_StructureOwned_Cyan (dark desaturated-cyan body + a subtle cyan self-illum below the bloom gate) - replacing the shared PolygonFantasyKingdom atlas + M_Turret so there's no atlas bleed. Tuned dimmer than the Core so the Engine Core stays the single luminance peak. Completes the faction palette: dark ground / cyan owned (Core bright, structures muted) / amber Ore / orange Husks. Edit-mode-instantiated + screenshot-verified. Follow-up (deferred): the research's dark-when-unpowered dynamic (emissive only on active/powered structures) needs a small presentation system reading structure state.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Research-grounded transform of the base arena from a bright meadow into a dark 'Aether Siege Outpost' reading as a concentric bullseye (Core -> Ore ring -> dark perimeter). Camera (Game.unity): pitch 45->58, FOV 55->44, dist 13->17, lead 1->0.5, follow 8->6, targetH 1.3 (telephoto so Core + arena read together, near-iso enemy spacing). Lighting: sun dimmed+cooled 1.6->0.9, ambient 1.0->0.62 dark-cool, fog Linear 18->42 dark; WorldAtmosphere base darkened. Post-FX (PostFX_Daylight): ACES kept, bloom gated (thr 1.0->1.2 + clamp 10), exposure/contrast up, saturation +6->0, added ShadowsMidtonesHighlights cool-shadow/warm-highlight split, vignette 0.15->0.32. Ground re-tinted dark teal-grey; ~390 meadow-cheer objects cut. Core staged as hero (crystal 14m->4.6m cyan glow + cyan beacon light). Ore ring pulled into the arena (23.5-27m -> 6-11.5m, count 10->12) and recoloured AMBER (new Mat_OreNode_Amber, emissive, no atlas bleed).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Extends the DR-022 player pipeline to Husk enemies. A Husk is an ownerless
interpolated ghost = structurally a remote player, so the new client-only
EnemyAnimationDriveSystem mirrors PlayerAnimationDriveSystem's remote path:
velocity from LocalTransform-delta (prevPos cache, pruned every frame), facing
from LocalTransform.Rotation (AnimParamMath.PlanarForward), maxSpeed from baked
EnemyStats, IsAttacking from the already-replicated AttackWindup telegraph. No
new [GhostField], no server/asmdef/ghost-hash change.
Monster-mash roster: Werewolf (Grunt), Werewolf-Undead (Swarmer), Kaiju (Brute),
built by the reusable, GUID-preserving EnemyRigTools editor tool (materials +
AC_EnemyTopDown + EnemyAttackWindup clip + 3 rigged prefabs). WaveSystem now
preserves the baked variant Scale (was reset to 1 by LocalTransform.FromPosition).
See DR-023. EditMode 208/208; validated in Play (rigs skin, scales replicate,
locomotion + attack telegraph drive correctly).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Add BefourStudios SciFi environment packs, Gabriel Aguiar VFX, and the
ShaderCrew Toon Shader embedded packages, plus combat/enemy/wave/death
gameplay systems and supporting vault docs/screenshots.
Rename 11 vendor textures from uppercase .PNG/.HDR to lowercase so the
case-sensitive Git LFS filters (*.png/*.hdr) match on case-sensitive
filesystems (Linux CI, case-sensitive macOS), not just locally where
core.ignorecase=true masks the gap. Each .meta moved with its asset so
GUID references are preserved. All ~1000 binaries tracked via LFS.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>