OpenXRHand

已弃用: Use XRHandModifier3D instead.

继承: Node3D < Node < Object

OpenXR 中支持手和手指跟踪的节点。

描述

该节点启用 OpenXR 的手部跟踪功能。该节点应该是 XROrigin3D 节点的子节点,跟踪会将其位置更新为玩家被跟踪的手掌关节位置(中指的掌骨中心)。该节点还会更新正确蒙皮的手或头像模型的骨架。

如果骨架是一只手(手部骨骼之一是该骨架的根节点),则该骨架将相对于手掌位置放置,并且手部网格和骨架应该是 OpenXRHand 节点的子级。

如果手骨是完整骨架的一部分,假设使用 IK 来定位手和胳膊,则手的根部将保持其位置。

默认情况下,骨架手骨会被重新定位以匹配跟踪的手的大小。要保留建模的骨骼大小,请更改 bone_update 以仅应用旋转。

属性

BoneUpdate

bone_update

0

Hands

hand

0

NodePath

hand_skeleton

NodePath(“”)

MotionRange

motion_range

0

SkeletonRig

skeleton_rig

0


枚举

enum Hands: 🔗

Hands HAND_LEFT = 0

追踪玩家的左手。

Hands HAND_RIGHT = 1

追踪玩家的右手。

Hands HAND_MAX = 2

最大支持的手数。


enum MotionRange: 🔗

MotionRange MOTION_RANGE_UNOBSTRUCTED = 0

玩家抓握时,手部骨架呈握拳状。

MotionRange MOTION_RANGE_CONFORM_TO_CONTROLLER = 1

玩家抓握时,手部骨架遵循玩家所持的控制器。

MotionRange MOTION_RANGE_MAX = 2

最大支持的运动范围。


enum SkeletonRig: 🔗

SkeletonRig SKELETON_RIG_OPENXR = 0

符合 OpenXR 标准的骨架。

SkeletonRig SKELETON_RIG_HUMANOID = 1

符合 SkeletonProfileHumanoid 标准的骨架。

SkeletonRig SKELETON_RIG_MAX = 2

最大支持的手数。


enum BoneUpdate: 🔗

BoneUpdate BONE_UPDATE_FULL = 0

骨架骨骼已完全更新(位置和旋转)以匹配跟踪的骨骼。

BoneUpdate BONE_UPDATE_ROTATION_ONLY = 1

骨架骨骼仅旋转以与跟踪的骨骼对齐,从而保留骨骼长度。

BoneUpdate BONE_UPDATE_MAX = 2

最大支持的骨骼更新模式。


属性说明

BoneUpdate bone_update = 0 🔗

指定要在骨骼上执行的更新类型。


Hands hand = 0 🔗

指定该节点是追踪玩家的左手还是右手。


NodePath hand_skeleton = NodePath("") 🔗

设置一个Skeleton3D节点,该节点的姿势位置将被更新。


MotionRange motion_range = 0 🔗

设置限制手部运动的运动范围(前提是支持)。


SkeletonRig skeleton_rig = 0 🔗

设置 hand_skeleton 所兼容的骨架绑定类型。