Attention: Here be dragons (unstable version)

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Redot.

XRBodyModifier3D

Experimental: This class may be changed or removed in future versions.

Inherits: SkeletonModifier3D < Node3D < Node < Object

A node for driving body meshes from XRBodyTracker data.

Description

This node uses body tracking data from an XRBodyTracker to pose the skeleton of a body mesh.

Positioning of the body is performed by creating an XRNode3D ancestor of the body mesh driven by the same XRBodyTracker.

The body tracking position-data is scaled by Skeleton3D.motion_scale when applied to the skeleton, which can be used to adjust the tracked body to match the scale of the body model.

Tutorials

Properties

StringName

body_tracker

&"/user/body_tracker"

BitField[BodyUpdate]

body_update

7

BoneUpdate

bone_update

0


Enumerations

flags BodyUpdate: 🔗

BodyUpdate BODY_UPDATE_UPPER_BODY = 1

The skeleton's upper body joints are updated.

BodyUpdate BODY_UPDATE_LOWER_BODY = 2

The skeleton's lower body joints are updated.

BodyUpdate BODY_UPDATE_HANDS = 4

The skeleton's hand joints are updated.


enum BoneUpdate: 🔗

BoneUpdate BONE_UPDATE_FULL = 0

The skeleton's bones are fully updated (both position and rotation) to match the tracked bones.

BoneUpdate BONE_UPDATE_ROTATION_ONLY = 1

The skeleton's bones are only rotated to align with the tracked bones, preserving bone length.

BoneUpdate BONE_UPDATE_MAX = 2

Represents the size of the BoneUpdate enum.


Property Descriptions

StringName body_tracker = &"/user/body_tracker" 🔗

The name of the XRBodyTracker registered with XRServer to obtain the body tracking data from.


BitField[BodyUpdate] body_update = 7 🔗

Specifies the body parts to update.


BoneUpdate bone_update = 0 🔗

Specifies the type of updates to perform on the bones.