此篇主要讲解怎么手势追踪,手势姿态自定义预制识别,不会导入SDK和配置环境的请看上一章节
环境要求
- SDK 版本:2.3.0 及以上
- PICO 设备型号:PICO Neo3 和 PICO 4 系列
- PICO 设备系统版本:5.7.0 及以上
手部关节定义
PICO SDK 的 “手势追踪” 功能遵循 OpenXR 标准所提出的手势定义规范并支持以下 26 个手部关节点。
值 | 关节名称 | 关节含义 | OpenXR 定义字段 |
0 | Palm | 手掌中心点 | XR_HAND_JOINT_PALM_EXT |
1 | Wrist | 手腕关节点 | XR_HAND_JOINT_WRIST_EXT |
2 | Thumb_metacarpal | 大拇指掌骨关节 | XR_HAND_JOINT_THUMB_METACARPAL_EXT |
3 | Thumb_proximal | 大拇指近端骨关节 | XR_HAND_JOINT_THUMB_PROXIMAL_EXT |
4 | Thumb_distal | 大拇指远端骨关节 | XR_HAND_JOINT_THUMB_DISTAL_EXT |
5 | Thumb_tip | 大拇指顶端骨关节 | XR_HAND_JOINT_THUMB_TIP_EXT |
6 | Index_metacarpal | 食指掌骨关节 | XR_HAND_JOINT_INDEX_METACARPAL_EXT |
7 | Index_proximal | 食指近端骨关节 | XR_HAND_JOINT_INDEX_PROXIMAL_EXT |
8 | Index_intermediate | 食指中端骨关节 | XR_HAND_JOINT_INDEX_INTERMEDIATE_EXT |
9 | Index_distal | 食指远端骨关节 | XR_HAND_JOINT_INDEX_DISTAL_EXT |
10 | Index_tip | 食指顶端骨关节 | XR_HAND_JOINT_INDEX_TIP_EXT |
11 | Middle_metacarpal | 中指掌骨关节 | XR_HAND_JOINT_MIDDLE_METACARPAL_EXT |
12 | Middle_proximal | 中指近端骨关节 | XR_HAND_JOINT_MIDDLE_PROXIMAL_EXT |
13 | Middle_intermediate | 中指中端骨关节 | XR_HAND_JOINT_MIDDLE_INTERMEDIATE_EXT |
14 | Middle_distal | 中指远端骨关节 | XR_HAND_JOINT_MIDDLE_DISTAL_EXT |
15 | Middle_tip | 中指顶端骨关节 | XR_HAND_JOINT_MIDDLE_TIP_EXT |
16 | Ring_metacarpal | 无名指掌骨关节 | XR_HAND_JOINT_RING_METACARPAL_EXT |
17 | Ring_proximal | 无名指近端骨关节 | XR_HAND_JOINT_RING_PROXIMAL_EXT |
18 | Ring_intermediate | 无名指中端骨关节 | XR_HAND_JOINT_RING_INTERMEDIATE_EXT |
19 | Ring_distal | 无名指远端骨关节 | XR_HAND_JOINT_RING_DISTAL_EXT |
20 | Ring_tip | 无名指顶端骨关节 | XR_HAND_JOINT_RING_TIP_EXT |
21 | Little_metacarpal | 小指掌骨关节 | XR_HAND_JOINT_LITTLE_METACARPAL_EXT |
22 | Little_proximal | 小指近端骨关节 | XR_HAND_JOINT_LITTLE_PROXIMAL_EXT |
23 | Little_intermediate | 小指中端骨关节 | XR_HAND_JOINT_LITTLE_INTERMEDIATE_EXT |
24 | Little_distal | 小指远端骨关节 | XR_HAND_JOINT_LITTLE_DISTAL_EXT |
25 | Little_tip | 小指顶端骨关节 | XR_HAND_JOINT_LITTLE_TIP_EXT |
PICO 手部模型
SDK 提供标准两个手部模型预制体:HandLeft 和 HandRight。单个手模预制体的顶点数为 1209,四边形面数为 1198,三角形面数为 2414
预制体位于 Packages > PICO Integration > Assets > Resources > Prefabs 目录下
自定义手势和事件
你可以自定义手势,然后为手势添加触发事件,丰富应用体验。
使用 HandPoseGenerator 预制体创建手势
点击PXR_Hand Pose Generator new 按钮 会自动创建配置文件,用于存放手势配置
Shapes :组件配置手指姿态。
Bones 组件配置手部关节点之间的关系
Transform 组件配置手部朝向。
具体操作步骤可参考《PICO 创建示例手势 文档》文档。
--------------------------------------------
我这里创建一个的手势案例展示下
设置参数
下面还可看到创建手势预览
为预制体添加 PXR_Hand Pose 脚本。
在 Track Type 字段处,选择 “ThumbUp” 手势所应用的手。
在 Config 字段处,添加 “ThumbUp” 手势的 Hand Pose Config 文件。
添加手势事件触发函数,包括手势开始事件、手势持续时事件、手势结束事件。
打包 APK 文件至 PICO 设备上运行,体验效果