在 Unreal Engine 中设置手势追踪
更新时间: 2026年3月2日
如果您之前没有在 Unreal 引擎中使用输入运动控制器,请参阅 Unreal 引擎的
运动控制器组件设置。
开始在应用中使用手势追踪之前,请参阅
手势追踪设计指南,了解在虚拟现实中使用手势作为输入源时涉及的术语、最佳实践和互动模型。
您也应该熟悉以下存储指南,了解如何在应用中使用手势追踪:
以下图片展示了 Unreal 引擎的手势追踪实施架构,以及手势追踪如何使用与控制器输入路径相同的机制从手势输入信息。

如图所示,设备输入仍是 Unreal 引擎输入数据的主要来源。设备输入通过 Unreal 引擎输入系统从手势输入的路径与控制器按钮和摇杆的一样。捏拉和捏拉力度也是手势输入的路径。
网格/骨架和骨骼旋转等手势特定功能通过输入模块中包含的 OculusHandTracking 类提供。OculusHandTracking 类提供 Blueprint 资源库以及访问手势特定数据,例如手的大小、手指尖姿势、骨骼旋转角度等。
您可以在项目设置中开启 Unreal 引擎的手势追踪功能,此操作会为您项目的 Android 清单添加 com.oculus.permission.HAND_TRACKING 接入点。
前往编辑 > 项目设置,前往插件,然后选择 OculusVR。在手势追踪支持下,选择:
- 控制器:不会为您的应用启用手势追踪
- 控制器和手势:用户可以在应用中使用手势追踪或控制器
- 仅限手势:用户必须在其设备上启用手势追踪,才能使用您的应用
如要设置高频率,在项目设置 -> OculusVR -> 手势追踪频率中,选择高。
Unreal 引擎的手势追踪集成功能如下。
总的来说,输入模块对手势追踪有以下额外支持:
- 输入模块支持 Touch 控制器和手势追踪的输入。
- 输入模块通过 Unreal 引擎的输入活动系统传递捏拉和捏拉力度。
- 模块将更新和存储新的手势,可以通过 Blueprint 或
OculusHandComponent 访问
具体包括:
FOculusHandState 结构已添加。这种结构与控制器状态结构类似,提供当前的手部状态输入和追踪状态
- 捏拉输入会更新关键活动以及捏拉和捏拉力度的坐标轴
在 Unreal 引擎输入系统中登记新的密钥名称和手势坐标轴。每只手的手指分别为拇指、食指、中指、无名指和小指。
捏拉和捏拉力度可以绑定到 UE 输入设置,这样其活动就可以与 Blueprint `OculusHandComponent 关联。详情请见下一节的
输入绑定,了解如何操作。
- 更新手势
- 使用
GetControllerOrientationAndPosition 识别手部位置 - 使用获取手指尖姿势和骨骼旋转角度的自定义函数
您可以使用 Unreal 引擎输入系统绑定到手势追踪输入,例如捏拉和捏拉力度。要创建新的手势追踪输入绑定,请执行以下操作:
- 前往编辑 > 项目设置,找到引擎 > 输入。
- 在操作映射或轴映射下,添加新的映射。
- 对于映射关键值,搜索 Oculus 手势类别,调出各种手势追踪输入绑定。下图为一个示例:
Unreal 引擎集成提供多种资源,包括几个 Blueprint。
| Blueprint | 描述 |
|---|
| 根据骨骼编号返回骨骼名称 |
| 返回所有与传递手型对应的骨骼旋转角度。 |
| 返回哪只手是用户的惯用手 |
| 返回当前的手指尖姿势。 |
| 返回手的大小 |
| 返回指定手的 USkeletalMesh。使用得出的网格分配至 USkeletalMeshComponent |
| 返回手部的追踪置信度。 |
| 初始化运行时手部网格的物理胶囊 |
| 如果设备上启用了手势追踪,则返回 True。 |
| 如果手指尖姿势有效,则返回 True |
此组件负责加载网格/骨架以及更新骨骼。此组件还负责为手部设置新材料,在追踪丢失/置信度低时隐藏手部。可以选择更新根姿势,更新根大小,设置手指尖姿势根和启用物理胶囊。
以下图片展示了这些属性的示例,以及如何在 Unreal 引擎中设置这些属性。
如果用户执行
系统手势,以返回首页或访问菜单,该手势将作为
ovrpButton_Start 信号通过
OVRPlugin 显现,还会出现状态标记,类似于用户在控制器上按下首页键或菜单按钮。在这种情况下,您不需要特殊的手势菜单逻辑。
以下图片展示了捏拉手势和系统手势。

设计指南是 Meta 的人机界面标准与设计框架,旨在助您打造安全、以用户为导向、具备高留存度的沉浸式和透视体验。