开发
开发
选择平台

在 Unreal Engine 中设置手势追踪

更新时间: 2026年3月2日

前提条件

如果您之前没有在 Unreal 引擎中使用输入运动控制器,请参阅 Unreal 引擎的运动控制器组件设置
开始在应用中使用手势追踪之前,请参阅手势追踪设计指南,了解在虚拟现实中使用手势作为输入源时涉及的术语、最佳实践和互动模型。
您也应该熟悉以下存储指南,了解如何在应用中使用手势追踪:
  • VRC.Quest.Input.5:手部必须渲染在正确的位置和方向,且必须被正确地制成动画
  • VRC.Quest.Input.7:应用必须能适当地处理输入在控制器和手势之间切换的情况
  • VRC.Quest.Input.8:系统手势被保留,不应在应用中触发任何其他操作
如需了解如何实施手势追踪以及手势追踪如何在应用中使用,请参阅 OC6 视频演示:手势追踪深入解读:技术、设计和体验

手势追踪架构

以下图片展示了 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 关联。详情请见下一节的输入绑定,了解如何操作。
  • 更新手势

手势追踪输入绑定

您可以使用 Unreal 引擎输入系统绑定到手势追踪输入,例如捏拉和捏拉力度。要创建新的手势追踪输入绑定,请执行以下操作:
  1. 前往编辑 > 项目设置,找到引擎 > 输入
  2. 操作映射轴映射下,添加新的映射。
  3. 对于映射关键值,搜索 Oculus 手势类别,调出各种手势追踪输入绑定。下图为一个示例:
hand tracking input binding options

手势追踪 Blueprint

Unreal 引擎集成提供多种资源,包括几个 Blueprint。
Blueprint描述
根据骨骼编号返回骨骼名称
返回所有与传递手型对应的骨骼旋转角度。
返回哪只手是用户的惯用手
返回当前的手指尖姿势。
返回手的大小
返回指定手的 USkeletalMesh。使用得出的网格分配至 USkeletalMeshComponent
返回手部的追踪置信度。
初始化运行时手部网格的物理胶囊
如果设备上启用了手势追踪,则返回 True。
如果手指尖姿势有效,则返回 True

手势组件

手势组件是手部的 OculusInput 模块。此组件是 Unreal 的 UPoseableMeshComponent 的子类,必须是 UMotionController 的子控制器,提供追踪姿势和最新的手势功能。
此组件负责加载网格/骨架以及更新骨骼。此组件还负责为手部设置新材料,在追踪丢失/置信度低时隐藏手部。可以选择更新根姿势,更新根大小,设置手指尖姿势根和启用物理胶囊。
以下图片展示了这些属性的示例,以及如何在 Unreal 引擎中设置这些属性。
hand properties

处理系统手势

如果用户执行系统手势,以返回首页或访问菜单,该手势将作为 ovrpButton_Start 信号通过 OVRPlugin 显现,还会出现状态标记,类似于用户在控制器上按下首页键或菜单按钮。在这种情况下,您不需要特殊的手势菜单逻辑。
以下图片展示了捏拉手势和系统手势。

惯用手

惯用手特征通过 OVRPlugin 的手部状态标记显现。您可以使用 Blueprint 函数 GetDominantHand 访问此信息。

设计指南

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

手势