docs: file #175 — door collision uses placement pose, not the closed pose (dat-confirmed)
User report at the Facility Hub double door (Setup 0x02000C9D): embed into the visual panel from one side, phantom wall on the other. Dat inspection (Issue175HubDoorPoseInspectionTests, kept as the evidence fixture) confirms the mechanism: the Setup's Default PLACEMENT frames pose the two panels AJAR (yaw -150/-30, origin (+-0.88, -0.44, 1.37)) while the rendered door poses them CLOSED from the wire-supplied motion table via the sequencer. ShadowShapeBuilder reads placement frames, so the 1.66x0.29x2.95 m physics slabs register at the ajar pose — displaced behind the visual door. Retail tests each part's LIVE pose (closed == motion-table default; the open swing is ETHEREAL, #150). Fix shape filed: BSP shadow shapes for sequencer-bearing entities must use the sequencer's part transforms, placement frames only as the no-animation fallback. Holtburg's single door never surfaced this because its placement pose ~= closed pose. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
b54555da62
commit
2312259a93
2 changed files with 199 additions and 0 deletions
|
|
@ -46,6 +46,57 @@ Copy this block when adding a new issue:
|
|||
|
||||
---
|
||||
|
||||
## #175 — Door collision registers the Setup PLACEMENT pose, not the motion-table CLOSED pose (phantom slab behind the visual door)
|
||||
|
||||
**Status:** OPEN — mechanism dat-confirmed (`Issue175HubDoorPoseInspectionTests`); fix not started
|
||||
**Severity:** MEDIUM-HIGH (embed into doors from one side; phantom wall on the other — can push the player out of use radius)
|
||||
**Filed:** 2026-07-05
|
||||
**Component:** physics — server-entity collision registration (door part poses)
|
||||
|
||||
**Description (user, Facility Hub door guid 0x78A020C7 / Setup 0x02000C9D):**
|
||||
running at the door embeds the player INTO the visual panel (deep enough to
|
||||
camera-clip to the other side); the actual blocking plane sits displaced to
|
||||
the FAR side, and approaching from that side there's a phantom wall in front
|
||||
of the visual door — far enough that the door can be out of use range.
|
||||
|
||||
**Mechanism (dat-confirmed, 2026-07-05):** the hub door is a DOUBLE door —
|
||||
Setup 0x02000C9D has 3 parts; panels part[0]/part[1] (GfxObj 0x01002936,
|
||||
physics slab 1.66×0.29×2.95 m) pose in the Setup's `Default` PLACEMENT
|
||||
frames at yaw **−150° / −30°** with origin **(±0.88, −0.44, 1.37)** — an
|
||||
AJAR pose displaced 0.44 m behind the doorway plane. The RENDERED door poses
|
||||
its panels from the motion table's default (closed) state via the sequencer
|
||||
(the setup itself has no DefaultMotionTable; the wire spawn supplies it).
|
||||
Collision registers via `ShadowShapeBuilder.FromSetup`, which reads the
|
||||
PLACEMENT frames (`Resting|Default|first`) — so the physical slabs sit at
|
||||
the ajar placement pose while the visuals show closed panels: the exact
|
||||
offset the user walked into. Retail tests each part's LIVE pose
|
||||
(`CPhysicsPart` — see the #150 notes: for a CLOSED door the live pose IS
|
||||
the motion-table closed pose; the open swing never matters because ETHEREAL
|
||||
bypasses collision entirely).
|
||||
|
||||
**Fix shape (retail-faithful, next session):** the BSP shadow shapes for
|
||||
server entities with a sequencer must use the SEQUENCER's part transforms
|
||||
(the motion-table default/closed pose) instead of the raw placement frames —
|
||||
either sample at registration (the sequencer exists by then — verify spawn
|
||||
wiring order) or re-register via `ShadowObjectRegistry.UpdatePosition`-style
|
||||
refresh after the sequencer's first advance. Parts without animation data
|
||||
keep the placement-frame fallback. Watch: entScale composition, multi-part
|
||||
dedup ([[feedback_dedup_keys_after_cardinality_change]]), and the Holtburg
|
||||
single-door apparatus must stay green (its placement pose ≈ closed pose,
|
||||
which is why #99/#150 never surfaced this).
|
||||
|
||||
**Files:** `src/AcDream.Core/Physics/ShadowShapeBuilder.cs` (placement-frame
|
||||
read), `src/AcDream.App/Rendering/GameWindow.cs`
|
||||
(`RegisterServerEntityCollision` ~4130), inspection
|
||||
`tests/AcDream.Core.Tests/Physics/Issue175HubDoorPoseInspectionTests.cs`.
|
||||
|
||||
**Acceptance:** at the Facility Hub double door: closed door blocks AT the
|
||||
visual panels (no embed, no phantom wall on either side); open door fully
|
||||
passable; use radius reachable from both sides. Holtburg cottage door
|
||||
unregressed (door apparatus green).
|
||||
|
||||
---
|
||||
|
||||
## #174 — Door Use dies after the first jump: the RemoveLinkAnimations seam stripped animations without retail's queue drain
|
||||
|
||||
**Status:** 🟡 FIX SHIPPED 2026-07-05 (same session) — pending user gate (jump around, then use the Facility Hub door from close AND from ~3 m).
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue