Blacksite/docs/editor/physics-placement.md
Rbanh 0ce43fc399
Some checks are pending
CI / Format, lint, test, build (push) Waiting to run
Add collider authoring diagnostics
2026-07-12 22:48:00 -04:00

39 lines
2.1 KiB
Markdown

# Physics Placement
The Physics Placement tool releases selected authored props into the same Avian collision world
used by Play mode. It is intended for arranging loose objects on floors, terrain, brushes, and
other hydrated colliders without hand-tuning every final transform.
## Workflow
1. Select one or more mutable level objects. Each object needs an enabled **Rigid Body** and an
enabled, non-trigger **Collider** component.
2. Press the hand/down-arrow button in the existing horizontal Scene viewport toolbar.
3. The selected props become dynamic and fall under gravity. The viewport HUD reports simulation
time and whether the group is still moving, settled, or stopped at the preview limit.
4. Press the check button to commit the current transforms, or **Escape** / the X button to cancel.
**Enter** commits after the group has settled.
Commit creates one `Move Selection` undo entry for the whole group. Cancel restores the exact
pre-placement local transforms and runtime motion components and creates no history entry.
## Isolation And Diagnostics
Normal Edit mode keeps Avian physics paused, so authored dynamic bodies cannot drift outside
history. During placement, every non-selected dynamic or kinematic body is temporarily treated as
a static collision surface. The tool restores those bodies exactly when the preview ends. Entering
Play mode cancels an active placement preview.
The start action is non-destructive when prerequisites are missing. It consumes the shared
[collider health service](collider-authoring.md), so the viewport, inspector, Diagnostics panel,
and placement status agree about missing, invalid, stale, disabled, or trigger collision. A
ten-second simulated-time limit stops unstable previews while
leaving explicit commit and cancel available.
`assets/levels/physics_placement_showcase.scn.ron` is the committed acceptance fixture. Select
**Placement Prop A**, **B**, and **C** together, start physics placement, and verify that the three
different shapes settle on **Placement Floor** as one commit/cancel transaction.
The clock and transaction boundary are specified by
[ADR 0041](../adr/0041-transactional-editor-physics-placement.md).