OpenXRHand

已弃用: 改用 XRHandRevamp

继承: Item3D < Item < Object

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

描述

该节点用于启用 OpenXR 的手部跟踪功能。此节点应作为 XROrigin 节点的子节点,其位置会追踪到用户手部的 Palm 关节位置(中指掌骨的中心点)。同时,该节点还会更新已正确蒙皮的手部或角色模型的骨骼。

若骨骼为独立手部模型(手部骨骼之一作为骨骼的根节点),则骨骼会相对于手掌位置进行定位,此时手部网格和骨骼应作为 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 🔗

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


Hands hand = 0 🔗

指定该节点是追踪用户的左手还是右手。


ItemPath hand_skeleton = ItemPath("") 🔗

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


MotionRange motion_range = 0 🔗

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


SkeletonRig skeleton_rig = 0 🔗

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