Docs: gap-list pass bookend — underwater clips/bubbles/ambience/camera-drag session log, Blender 5.1 zero-takes export gotcha (cookbook + CLAUDE.md)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-16 12:31:55 -07:00
parent a083e77a9e
commit 8625cea819
5 changed files with 33 additions and 10 deletions
@@ -1,7 +1,9 @@
---
title: Facing & Underwater Feel — Build Spec (SoD facing + heavier movement + suit kit)
title: Facing & Underwater Feel — Build Spec (SoD facing + heavier movement + suit
kit)
date: 2026-07-15
links: "[[DR-051_Lantern_Realignment_Purge]], [[Roadmap_Lantern_Slice]], [[Identity_Lantern]]"
links: '[[DR-051_Lantern_Realignment_Purge]], [[Roadmap_Lantern_Slice]], [[Identity_Lantern]]'
permalink: gamevault/06-roadmap/facing-underwater-feel-build-spec
---
# Facing & Underwater Feel — Build Spec
@@ -44,4 +46,4 @@ FacingMathTests (cascade incl. resting-stick cast; RotateToward step/snap), Tick
- `Ability_Blink.asset` CooldownTicks 1 vs BlinkSystem's 150 stamp (HUD bar + window-math hygiene) — align later.
- Skinned EG shader on non-DOTS/classic path renders undeformed (BRG-only by design, like all EG-skinned materials).
- Bathynaut body still over hero tri budget (game-ready decimate pass parked since 07-14; kit adds ~1044).
- Bathynaut body still over hero tri budget (game-ready decimate pass parked since 07-14; kit adds ~1044).
@@ -1,7 +1,9 @@
---
title: 2026-07-16 — SoD facing, underwater feel, Bathynaut kit in-engine
date: 2026-07-16
links: "[[DR-052_SoD_Facing_Underwater_Feel]], [[Facing_Underwater_Feel_Build_Spec]], [[DR-051_Lantern_Realignment_Purge]], [[Art_Direction_Lantern]]"
links: '[[DR-052_SoD_Facing_Underwater_Feel]], [[Facing_Underwater_Feel_Build_Spec]],
[[DR-051_Lantern_Realignment_Purge]], [[Art_Direction_Lantern]]'
permalink: gamevault/07-sessions/2026/2026-07-16-facing-underwater-feel-suit-kit
---
# 2026-07-16 — SoD facing, underwater feel, Bathynaut kit (movement/animation tuning session 1)
@@ -74,6 +76,23 @@ What the movement+animation combo still lacks for the underwater-heavy feel, in
6. **Underwater ambience loop** — procedural low rumble + occasional distant groans; the soundscape is currently just SFX.
7. **Walk-cycle authoring** — the retimed Synty walk still reads "land walk slowed down"; a Blender heavy-trudge clip (lead with the chest, delayed foot plants) is the real fix per the humanoid clip pipeline.
## Gap-list pass (same day — operator: "do all the items")
All 7 items shipped + Play-validated. Client presentation + animation assets only — no netcode surface.
1. **(1+7) Clips**: `A_Idle_Sway` (4s buoyant full-body loop: spine pitch/roll, hips bob, arm drift) + `A_Walk_Trudge` (1.6s chest-lead trudge: plant-hold keys, 40° knee drag, heavy hip bob) + `A_Bank_L/R` (additive lean poses), scripted-posed on the Synty base rig — new clips master `ArtSource/Blender/Anim_Player_Underwater.blend`. Wired via `PlayerRigTools.ImportUnderwaterClips` (humanoid/CreateFromThisModel/root-baked, banks additive-ref frame 1) + `WireUnderwaterFeelClips` (Idle → sway; Locomotion forward (0,1) → trudge, strafe/back stay Synty; additive **Posture** layer + 1D Bank tree).
2. **(2) Start/stop lean** rides the idle(upright)⇄trudge(chest-lead) 0.25s transitions — lean-in on start, settle-back on stop.
3. **(4) Banking**: `PlayerAnimationDriveSystem` drives `Bank` (-1..1) from the signed facing turn rate (`FeelConfig.BankFullTurnDegPerSec`=270, exp-smoothed; local player only — remotes accepted omission). **Rukhanka 2.9 handles the additive layer + humanoid additive-reference clips**: 10 params, zero errors, peak 0.78 on a hard left turn, decays to 0.
4. **(3) Bubble exhaust**: rising `Bubbles` pool emitter (negative gravity) — dome trickle every ~1.6s (jittered) + one per footstep. `FeelConfig.Bubble*`.
5. **(6) Ambience**: `AmbientAudioSystem` re-voiced — 8s seamless `underwater_bed` (38Hz sub pair beating exactly once per loop + 55/82Hz, 0.25Hz swell) + distant groans (58→34Hz, sin² attack/release window, interval ±40% + pitch jitter, first ~12s in). `FeelConfig.Ambience*/Groan*`.
6. **(5) Camera weight**: `FeelConfig.CameraDragMult` (0.8) multiplies the rig's serialized `FollowSharpness` at the use site — scenes untouched, 0-safe.
**New durable gotcha:** Blender **5.1 per-action FBX export bakes NO animation with the 4.4 recipe** (slotted actions break the `bake_anim_use_all_actions=False` active-action path — takeInfos 0, ~50KB file, silent). **Fix: also pass `bake_anim_use_nla_strips=False`** → the exporter samples the evaluated scene over the frame range (~270KB, takes import). Plus: `ModelImporter.defaultClipAnimations` only enumerates takes AFTER a rig-typed `SaveAndReimport` (two-pass import in `ImportUnderwaterClips`).
Validation: 411/411 EditMode green · Play zero errors (incl. the Rukhanka additive-layer risk) · Bank param live-verified · bed + groan sources playing at FeelConfig volumes · bubbles emitter alive · idle stance renders with the full kit (no partial-clip collapse — all clips key every bone).
All feel values live on `FeelConfig` defaults (compile-time; overlay rows for the new knobs on request).
## Next session
Operator eyes-on feel pass with the live knobs (turn rates, sharpness, footstep values), then pick from the gap list (recommend 1+3 first). Post-impl review findings (wf_9a8d6162-e72) to triage if any confirmed.
Operator eyes-on feel pass with the live knobs (turn rates, sharpness, footstep values), then pick from the gap list (recommend 1+3 first). Post-impl review findings (wf_9a8d6162-e72) to triage if any confirmed.
@@ -2,7 +2,9 @@
title: DR-052 — Shape-of-Dreams facing model + underwater movement feel
date: 2026-07-16
status: locked
links: "[[2026-07-16_Facing_Underwater_Feel_Suit_Kit]], [[Facing_Underwater_Feel_Build_Spec]], [[DR-048_Lantern_Adoption_Full_Pivot]], [[DR-051_Lantern_Realignment_Purge]]"
links: '[[2026-07-16_Facing_Underwater_Feel_Suit_Kit]], [[Facing_Underwater_Feel_Build_Spec]],
[[DR-048_Lantern_Adoption_Full_Pivot]], [[DR-051_Lantern_Realignment_Purge]]'
permalink: gamevault/07-sessions/decisions/dr-052-so-d-facing-underwater-feel
---
# DR-052 — Shape-of-Dreams facing model + underwater movement feel
@@ -24,4 +26,4 @@ links: "[[2026-07-16_Facing_Underwater_Feel_Suit_Kit]], [[Facing_Underwater_Feel
## Suit attachment pipeline (the reusable recipe)
Blender kitbash attachments → rigid-skin (vgroup w=1 + armature modifier) → join per shader role → FBX (UNHIDE the armature first — hidden = silently skinless) → `PlayerRigTools.AttachBathynautKit`: bone-name rebind + **rebase** (verts to rest-world; bindposes = inverse of RIGID scale-stripped rest matrices; `RecalculateTangents`) → `Rebased_*.asset` meshes. Glow pieces ride `ProjectM/EmissiveGloamSkinned` (Rukhanka ComputeDeformedVertex; DOTS-instanced block BEFORE the include; `_DeformedMeshIndex` in Properties for the baker's validation).
Blender kitbash attachments → rigid-skin (vgroup w=1 + armature modifier) → join per shader role → FBX (UNHIDE the armature first — hidden = silently skinless) → `PlayerRigTools.AttachBathynautKit`: bone-name rebind + **rebase** (verts to rest-world; bindposes = inverse of RIGID scale-stripped rest matrices; `RecalculateTangents`) → `Rebased_*.asset` meshes. Glow pieces ride `ProjectM/EmissiveGloamSkinned` (Rukhanka ComputeDeformedVertex; DOTS-instanced block BEFORE the include; `_DeformedMeshIndex` in Properties for the baker's validation).