Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
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 所兼容的骨架绑定类型。