手部跟踪

手部追踪示例

 

图片60.png


Spaces 手部管理器


图片61.png

 

Spaces 手部管理器组件属于 ARTrackableManager 类型,其编程方式类似于 AR Foundation 的其他管理器——通过提供回调函数来获取添加、更新和删除的项的变化。


图片62.png

 

该组件还提供了一个检查器字段,用于定义在检测到手部时应生成的默认预制体。示例中的 Default Spaces Hand 预制体包含两个额外的组件,如下图所示。这些组件将在接下来的部分中详细描述。

 

 图片63.png


Spaces 手部组件

 

 图片64.png


该组件是获取所有手部相关数据的通用接口。它属于 ARTrackable 类型,因此具有类似 TrackableID、TrackingState 和 Pose 等常见属性,这些属性由被追踪手部的腕关节定义。

 

此外,它还提供了以下三个额外属性:

●  IsLeft: 布尔值。如果被追踪的手是左手,则返回 true;否则返回 false。

● Joints: Qualcomm.Snapdragon.Spaces.SpacesHand.Joint 类型的数组,该类型具有以下属性:

○ Pose: Unity Pose 类型,返回手部关节的姿态。

○ Type: Qualcomm.Snapdragon.Spaces.SpacesHand.JointType 类型,返回枚举值,表示手部关节的类型。

●  Gesture:Qualcomm.Snapdragon.Spaces.SpacesHand.Gesture 类型,具有以下属性:

○ Type:Qualcomm.Snapdragon.Spaces.SpacesHand.GestureType 类型,返回枚举值,表示检测到的手势。

○ GestureRatio: 介于 0 和 1 之间的浮点值,表示手势的应用程度。

○ FlipRatio: 介于 -1 和 1 之间的浮点值,表示手势是从手的背面(-1)、正面(1)还是介于两者之间检测到的。


有关手势的更多信息,请参见交互手势文档

 

 图片65.png

图片66.png

 

Spaces 手部关节可视化组件

 

图片67.png

 

该组件提供了一些属性,用于修改关节可视化的外观,例如:

 

●  JointMesh: 应用于每个关节的网格。

●  JointMaterial: 应用于网格的材质。

●  JointMeshScale: 一个介于 0.005 和 0.05 之间的浮点值,定义了网格的缩放比例。

●  UseNormalizedColors: 布尔值。如果设置为 true,则应用的材质的 _Color 属性将由组件着色。

 

在示例中,UnityEngine 中的简单球体网格被设置为 JointMesh,Default-Material 被设置为 JointMaterial。