XR Player Body¶
Category: Executor Tier: Pro
Purpose¶
Gives the XR player real physics by driving a CharacterBody3D that is reconciled with the headset camera every physics tick, and writing that body’s motion back onto the XROrigin3D.
Runtime Behavior¶
Host
The node hosting the bricks under XROrigin3D (the showcase uses an XRLogic child). The
brick resolves the origin by walking up the tree, then finds the body and camera beneath it.
Rig Requirements
XROrigin3Dwith anXRCamera3Dchild.A
CharacterBody3D(default namePlayerBody) as a child of the origin, sibling of the camera, carrying a capsuleCollisionShape3D.On first tick the body is set
top_level, so it lives in world space and drives the origin rather than being dragged by it.
Per-Tick Sequence
Self-collision exclusion — collision exceptions are registered against every
PhysicsBody3Din the player’s own rig, re-scanned periodically because controller visuals are instanced after startup.Height calibration —
height_offsetis applied to the origin as a rate-limited delta.Crouch — the capsule is resized from the camera’s height above the origin floor.
Body placement — the body is moved laterally under the camera (
move_and_collide, Y zeroed) so walls block roomscale walking.Hang / grapple / gravity / locomotion / jump resolve velocity.
move_and_slide, then rigid-body push, then the rope constraint.Reconciliation — the origin is moved by the body’s net movement, magnitude-clamped.
Properties
Resolution
body_path (NodePath): Explicit path to the
CharacterBody3D. Wins if set.body_name (String, default
"PlayerBody"): Name searched under the origin.
Movement
move_hand (Enum, default
"Left"): Controller supplying locomotion input.
…
Properties¶
This brick does not expose a generated property table yet. See the source specification for implementation notes.