OpenXRHand
已弃用: Use XRHandModifier3D instead.
OpenXR 中支持手和手指跟踪的节点。
描述
该节点启用 OpenXR 的手部跟踪功能。该节点应该是 XROrigin3D 节点的子节点,跟踪会将其位置更新为玩家被跟踪的手掌关节位置(中指的掌骨中心)。该节点还会更新正确蒙皮的手或头像模型的骨架。
如果骨架是一只手(手部骨骼之一是该骨架的根节点),则该骨架将相对于手掌位置放置,并且手部网格和骨架应该是 OpenXRHand 节点的子级。
如果手骨是完整骨架的一部分,假设使用 IK 来定位手和胳膊,则手的根部将保持其位置。
默认情况下,骨架手骨会被重新定位以匹配跟踪的手的大小。要保留建模的骨骼大小,请更改 bone_update 以仅应用旋转。
属性
| ||
| ||
| ||
| ||
|
枚举
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
🔗
void set_bone_update(value: BoneUpdate)
BoneUpdate get_bone_update()
指定要在骨骼上执行的更新类型。
指定该节点是追踪玩家的左手还是右手。
NodePath hand_skeleton = NodePath("")
🔗
设置一个Skeleton3D节点,该节点的姿势位置将被更新。
MotionRange motion_range = 0
🔗
void set_motion_range(value: MotionRange)
MotionRange get_motion_range()
设置限制手部运动的运动范围(前提是支持)。
SkeletonRig skeleton_rig = 0
🔗
void set_skeleton_rig(value: SkeletonRig)
SkeletonRig get_skeleton_rig()
设置 hand_skeleton 所兼容的骨架绑定类型。