From 5e0044b492a1ca4383ea8f8a57b7ee7283a86be4 Mon Sep 17 00:00:00 2001 From: Luis Gonzalez Date: Wed, 22 Jul 2026 18:44:58 -0700 Subject: [PATCH] =?UTF-8?q?Docs:=20suit=20pose=20shipped=20(07-22)=20?= =?UTF-8?q?=E2=80=94=20session=20log=20+=20roadmap=20A0=20update;=20Blende?= =?UTF-8?q?r=20pose-bake=20gotchas?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Fable 5 --- .../Vault/06_Roadmap/Roadmap_Lantern_Slice.md | 8 ++++--- .../2026-07-21_ArtStaging_A0_Value_Pass_J.md | 22 ++++++++++++++++++- 2 files changed, 26 insertions(+), 4 deletions(-) diff --git a/Docs/Vault/06_Roadmap/Roadmap_Lantern_Slice.md b/Docs/Vault/06_Roadmap/Roadmap_Lantern_Slice.md index ed04327b5..c745b3f83 100644 --- a/Docs/Vault/06_Roadmap/Roadmap_Lantern_Slice.md +++ b/Docs/Vault/06_Roadmap/Roadmap_Lantern_Slice.md @@ -178,9 +178,11 @@ Runs parallel with 4–6 where possible. > lamp emissive tamed + bloom threshold raised (killed a blown chest streak), Drowner faced-to-camera + accents > boosted, triad recomposed (crate in-pool / Drowner at the lit edge / suit center). Grayscale now shows the > beacon as the value winner + a mid-value warm territory — the three-way mechanical judge PASSES. -> **Still open for sign-off: the suit POSE (a Blender rig+pose sitting — the body is an unrigged Synty mesh + -> 37 welded attachments; aligns with the A3 Wick-sculpt work) + the eyes-on-only criteria (flicker-cadence, -> the "this game and no other game" call).** See [[2026-07-21_ArtStaging_A0_Value_Pass_J]]. +> **07-22 update — the suit POSE is now done** (the `.blend` was already rigged; the T-pose was a missing +> Armature-modifier on the base body — fixed, posed a grounded stance, baked static, reimported into ArtStaging; +> width 2.05→1.04 m, silhouette reads top-down). **Still open for A0 sign-off: only the eyes-on-only criteria — +> flicker-cadence (steady beacon vs guttering flora) and the binding "this game and no other game" call.** See +> [[2026-07-21_ArtStaging_A0_Value_Pass_J]]. ## A1 — Pipeline proof (runs alongside Phase 1) diff --git a/Docs/Vault/07_Sessions/2026/2026-07-21_ArtStaging_A0_Value_Pass_J.md b/Docs/Vault/07_Sessions/2026/2026-07-21_ArtStaging_A0_Value_Pass_J.md index 4d3798706..ec7300e74 100644 --- a/Docs/Vault/07_Sessions/2026/2026-07-21_ArtStaging_A0_Value_Pass_J.md +++ b/Docs/Vault/07_Sessions/2026/2026-07-21_ArtStaging_A0_Value_Pass_J.md @@ -26,7 +26,27 @@ T-posed. Four of five fixes were staging (headless); the fifth (pose) is a Blend player" line never ran → an empty 5-slot bar polluted the frame. Fix: root defaults `DisplayStyle.None` at build, flips to Flex only when a local player is found — also kills any pre-connect/menu flash in gameplay. -## NOT done — the suit pose (operator-gated Blender sitting) +## UPDATE (07-22) — the suit pose IS now done + +Operator greenlit ("go ahead and do the next fixes"), so the pose shipped via `/art-dev`. The suit `.blend` +turned out to be **already rigged** to the Synty humanoid skeleton — the Unity static-T-pose was because the base +body/armour/head carried vertex groups with **no Armature modifier** (only the kit attachments had them), and 2 +lamp parts were unweighted. Rig cleanup (added the modifiers; weighted ChestLamp/LampRim to Spine_03), posed a +grounded combat-ready stance (shoulders down ~63°, elbows braced forward ~22° — axis found by a 2-probe render +loop since the Synty bone rolls are non-standard: local Z = the swing, negative = down), baked the pose to static +geometry and re-exported. **Master `.blend` keeps the rig+pose re-editable**; the GLB overwrite flowed into the +connected ArtStaging prefab instance (38 parts intact, materials + the extracted staging emissive preserved). +Suit width 2.05 m (T-pose) → 1.04 m (posed). Verified from the front + top-down game camera + in the composed +ArtStaging scene (full/200px/grayscale) — reads as a heavy standing diver. Commit `eaff8d16e`. + +**Blender gotchas banked (07-22):** (1) glTF `export_apply=True` does NOT bake an armature POSE — the exporter +special-cases armature modifiers as skinning and writes bind pose; to bake a pose to static, apply the deform +first (depsgraph `new_from_object(evaluated)` → assign `o.data` → clear modifiers), THEN export. (2) blendermcp's +headless context makes `bpy.ops.export_scene.gltf` throw `Context has no attribute active_object` and +`modifier_apply.poll() failed` — wrap ops in `bpy.context.temp_override(window, area(VIEW_3D), region, +active_object, object, selected_objects)`, or avoid the operators entirely (depsgraph bake). → cookbook. + +## (superseded) the pose was deferred at first — kept for the record The staging suit is one combined Synty body mesh (`SM_Chr_SpaceSoldier_Male_01`) welded with 37 static kit attachments, **no rig** in the exported asset (Unity: SMR=0, no Animator). Posing the T-pose requires a Blender