48 lines
2.8 KiB
XML
48 lines
2.8 KiB
XML
<?xml version="1.0" encoding="UTF-8" ?>
|
|
<class name="XRBodyModifier3D" inherits="SkeletonModifier3D" experimental="" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
|
|
<brief_description>
|
|
A node for driving body meshes from [XRBodyTracker] data.
|
|
</brief_description>
|
|
<description>
|
|
This node uses body tracking data from a [XRBodyTracker] to animate the skeleton of a body mesh.
|
|
This node positions itself at the [constant XRBodyTracker.JOINT_ROOT] position and scales itself to [member XRServer.world_scale]. Adding the body model as a child of this node will result in the model being positioned and scaled correctly for XR experiences.
|
|
The body tracking position-data is scaled by [member 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.
|
|
</description>
|
|
<tutorials>
|
|
<link title="XR documentation index">$DOCS_URL/tutorials/xr/index.html</link>
|
|
</tutorials>
|
|
<members>
|
|
<member name="body_tracker" type="StringName" setter="set_body_tracker" getter="get_body_tracker" default="&"/user/body"">
|
|
The name of the [XRBodyTracker] registered with [XRServer] to obtain the body tracking data from.
|
|
</member>
|
|
<member name="body_update" type="int" setter="set_body_update" getter="get_body_update" enum="XRBodyModifier3D.BodyUpdate" is_bitfield="true" default="7">
|
|
Specifies the body parts to update.
|
|
</member>
|
|
<member name="bone_update" type="int" setter="set_bone_update" getter="get_bone_update" enum="XRBodyModifier3D.BoneUpdate" default="0">
|
|
Specifies the type of updates to perform on the bones.
|
|
</member>
|
|
<member name="show_when_tracked" type="bool" setter="set_show_when_tracked" getter="get_show_when_tracked" default="true">
|
|
If true then the nodes visibility is determined by whether tracking data is available.
|
|
</member>
|
|
</members>
|
|
<constants>
|
|
<constant name="BODY_UPDATE_UPPER_BODY" value="1" enum="BodyUpdate" is_bitfield="true">
|
|
The skeleton's upper body joints are updated.
|
|
</constant>
|
|
<constant name="BODY_UPDATE_LOWER_BODY" value="2" enum="BodyUpdate" is_bitfield="true">
|
|
The skeleton's lower body joints are updated.
|
|
</constant>
|
|
<constant name="BODY_UPDATE_HANDS" value="4" enum="BodyUpdate" is_bitfield="true">
|
|
The skeleton's hand joints are updated.
|
|
</constant>
|
|
<constant name="BONE_UPDATE_FULL" value="0" enum="BoneUpdate">
|
|
The skeleton's bones are fully updated (both position and rotation) to match the tracked bones.
|
|
</constant>
|
|
<constant name="BONE_UPDATE_ROTATION_ONLY" value="1" enum="BoneUpdate">
|
|
The skeleton's bones are only rotated to align with the tracked bones, preserving bone length.
|
|
</constant>
|
|
<constant name="BONE_UPDATE_MAX" value="2" enum="BoneUpdate">
|
|
Represents the size of the [enum BoneUpdate] enum.
|
|
</constant>
|
|
</constants>
|
|
</class>
|