凝视并提交
“视线和提交”是基本的输入模型,它与我们使用鼠标与计算机交互的方式(指向和单击)密切相关。 本页介绍了两种类型的视线输入(头部跟踪视线和眼睛视线)和不同类型的提交操作。 “视线和提交”被视为支持间接操控的远距输入模型。 它最适合用来与无法触及的全息内容交互。
混合现实头戴显示设备可以根据用户头部的位置和方向来确定他们的头部方向向量。 可将视线视作直接从用户两眼之间直接指向前方的激光。 这可粗略呈现出用户正查看的位置。 应用程序可以使此光线与虚拟或实际对象相交,并在该位置绘制光标,以便用户知道他们的目标。
除了头部跟踪视线之外,HoloLens 2 等混合现实头戴显示设备还包括眼动跟踪系统,可以生产眼睛视线向量。 这可精细测量用户正在查看的位置。 在这两种情况下,视线都代表了用户意图的重要信号。 系统能够更好地解释和预测用户的预期操作,用户满意度和性能也就更高。
下面几个示例说明了混合现实开发人员如何从头部跟踪视线或眼睛视线受益:
- 应用可将视线与场景中的全息影像相交,以确定用户的注意力放在哪里(使用眼睛视线会更精确)。
- 应用可以根据用户的视线引导手势和控制器按键,让用户可以顺畅地通过选择、激活、抓取、滚动或以其他方式来与全息影像交互。
- 应用可以让用户通过将其视线射线与空间映射网格相交,将全息影像放置在真实的表面上。
- 应用能够知道用户何时未朝重要对象的方向注视,这可以引导应用提供视觉和音频提示来让用户正视该对象。
设备支持
输入模型 | HoloLens(第一代) | HoloLens 2 | 沉浸式头戴显示设备 |
头部凝视和提交 | ✔️ 推荐 | ✔️推荐(第三个选择 - 查看其他选项) | ➕ 备用选项 |
眼睛凝视和提交 | ❌ 不可用 | ✔️推荐(第三个选择 - 查看其他选项) | ❌ 不可用 |
头部和眼动跟踪设计概念演示
若要了解头部和眼动跟踪设计概念的运行情况,请查看下面的“设计全息影像 - 头部跟踪和眼动跟踪”视频演示。 完成后,请继续详细了解特定主题。
此视频取自“设计全息影像”HoloLens 2 应用。 请在此处下载并畅享完整体验。
凝视
使用眼睛视线还是头部跟踪视线?
在面对应该使用“眼睛视线和提交”还是“头部跟踪视线和提交”输入模型的问题时,有几项考虑因素。 如果你正在进行沉浸式头戴显示设备或 HoloLens(第一代)方面的开发,那么选择很简单:头部跟踪视线和提交。 如果你正在进行 HoloLens 2 方面的开发,则选择就有点困难。 了解每种视线类型的优势和缺点非常重要。 下表概括性地汇总了一些优点和缺点,对头部跟踪视线与眼睛视线定位做了比较。 这些汇总内容远远算不上详尽,我们建议通过以下主题详细了解混合现实中的眼睛视线定位:
- HoloLens 2 上的眼动跟踪:HoloLens 2 上的眼动跟踪新功能的一般介绍,包括一些开发人员指导。
- 眼睛视线交互:计划使用眼动跟踪作为输入时的设计注意事项和建议。
眼睛视线定位 | 头部凝视目标设定 |
速度快! | 较慢 |
不费力(几乎不需要任何身体运动) | 可能让人感到疲劳 - 可能感到不适(例如颈部酸痛) |
不需要光标,但建议使用微妙反馈 | 需要显示光标 |
眼部运动不流畅 – 例如,不适合绘制 | 更受控且明确 |
对小目标(例如,微小的按钮或网页链接)很难操作 | 可靠! 极佳的回退! |
... | ... |
无论对视线和提交输入模型使用头部跟踪视线还是眼睛视线,每种视线类型都存在一系列不同的设计约束。 文章眼睛视线和提交以及头部跟踪视线和提交分别介绍了这些约束。
游标
对于头部跟踪视线,大多数应用应使用光标或其他听觉/视觉指示,让用户有信心地与所需的内容交互。
通常你会将此光标定位环境中用户头部跟踪射线与对象首次相交的位置,该位置可能是全息影像或真实表面。
对于眼睛视线,我们通常建议不要显示光标,因为这很快就会使用户分散注意力,然后感到厌烦。
应该巧妙地突出视觉目标或使用微弱的眼睛光标来便用户有信心地与内容交互。 有关详细信息,请查看 HoloLens 2 上的基于视线的输入设计指南。
插图:显示视线的视觉光标示例
提交
在介绍凝视目标的不同方式之后,接下来我们更详细地介绍“视线和提交”中的“提交”部分。 定位对象或 UI 元素后,用户可以使用辅助输入与其交互或单击它。 这被称为输入模型的提交步骤。
支持以下提交方法:
- 隔空敲击手势(在你面前举手,然后合拢食指和拇指)
- 说出“选择”或定位语音命令之一
- 按 HoloLens 遥控器上的某个按钮
- 按 Xbox 游戏手柄上的“A”按钮
- 按 Xbox 自适应控制器上的“A”按钮
视线和隔空敲击手势
隔空敲击是一种手部直立的点击手势。 若要使用隔空敲击,请将食指抬到预备位置,然后与拇指捏在一起并向上抬起食指以松开。 在 HoloLens(第 1 代)上,隔空敲击是最常见的辅助输入。
手指位于预备位置
按下手指执行点击或单击
在 HoloLens 2 上也可以使用隔空敲击。 与原始版本相比,此手势现在更轻松。 几乎所有类型的捏合手势现在都受支持,只要手部直立并保持静止。 这使用户更容易学习和使用手势。 此新隔空敲击通过相同的 API 替换旧的隔空敲击,因此现有应用程序将在针对 HoloLens 2 进行重新编译后自动获得新的行为。
视线和“选择”语音命令
语音命令是混合现实的主要交互方法之一。 它提供强大的解放双手机制来控制系统。 可使用不同类型的语音交互模型:
- 使用单击执行或提交作为辅助输入的通用“选择”命令。
- 对象命令(例如“关闭”或“放大”),可用于以辅助输入的形式执行和提交操作。
- 全局命令(例如“去开始菜单”)不需要目标。
- Cortana 等具有 AI 自然语言功能的对话用户界面或实体。
- 自定义语音命令
若要查找更多详细信息以及可用语音命令的完整列表和使用方法,请查看语音命令指导。
视线和 HoloLens 遥控器
HoloLens 遥控器是专为 HoloLens 设计的第一款外围设备。 HoloLens(第一代)开发版已随附该设备。 使用 HoloLens 遥控器,用户可通过最小幅度的手部动作进行单击操作并以辅助输入的形式进行提交。 HoloLens 遥控器使用低耗电蓝牙 (BTLE) 连接到 HoloLens(第 1 代)或 HoloLens 2。
有关设备配对的详细信息和说明
插图:HoloLens 遥控器
凝视和 Xbox 无线控制器
Xbox 无线控制器使用“A”按钮以辅助输入的形式执行单击操作。 设备映射到一组默认操作,以帮助导航和控制系统。 如果要自定义控制器,请使用 Xbox 附件应用程序来配置 Xbox 无线控制器。
如何将 Xbox 控制器与电脑配对
插图:Xbox 无线控制器
凝视和 Xbox 自适应控制器
Xbox 自适应控制器是一个统一的设备中心,主要用于满足行动不便的玩家的需求,可帮助简化混合现实的使用。
Xbox 自适应控制器使用“A”按钮以辅助输入的形式执行单击操作。 设备映射到一组默认操作,以帮助导航和控制系统。 如果要自定义控制器,请使用 Xbox 附件应用程序来配置 Xbox 自适应控制器。
Xbox 自适应控制器
连接外部设备(例如开关、按钮、托架和游戏杆),创建独特的自定义控制器体验。 按钮、控制杆和触发器输入由通过 3.5 毫米插孔和 USB 端口连接的辅助设备控制。
Xbox 自适应控制器端口
复合手势
隔空敲击
隔空敲击手势(以及下面的其他手势)只对特定的点击做出反应。 若要检测其他点击,例如菜单或抓取,应用程序必须直接使用上面两个关键成分手势部分中描述的较低级别的互动。
点击并按住
按住是指保持隔空敲击手指向下的位置。 通过与手臂运动(如拿起一个对象而不是激活它)或鼠标向下二级交互(如显示上下文菜单)结合,隔空敲击并按住组合手势可实现多种更复杂的“单击和拖动”交互。 但在设计此手势时请务必小心,因为用户在做出任何扩展手势的过程都很可能放松手部姿势。
操作
如果希望全息影像 1:1 的比例反应出用户的手部运动,可以使用操控手势来移动、旋转全息影像或调整其大小。 此类 1:1 运动可让用户进行实际绘制或绘画。 操作手势的初始定位应通过凝视或指向来完成。 开始点击并按住后,任何对象操控都将通过手部运动来处理,从而使用户可以在操作时环顾四周。
导航
导航手势就像一个虚拟游戏杆,可用于导航 UI 小组件(如径向菜单)。 点击并按住以开始手势,然后在标准化 3D 立方体中以初始按压位置为中心移动手部。 可以沿 X、Y 或 Z 轴移动,起点为 0,移动范围为 -1 到 1。 导航可用于生成基于速度的连续滚动或缩放手势,类似于通过单击鼠标按钮然后上下移动鼠标来滚动 2D UI。
轨道导航是指识别某个轴上的运动,直到达到该轴的特定阈值。 只有当开发人员在应用程序中启用多个轴中的移动时,轨道导航才有用,例如,如果应用程序被配置为能够识别 X 轴、Y 轴上的导航手势,并指定 X 轴包含轨道。 在这种情况下,如果 X 轴和 Y 轴上都出现了手部运动,则只要手部运动保持在 X 轴上的假想轨道(导轨)内,系统就可识别 X 轴上的手部运动。
在 2D 应用中,用户可以使用垂直导航手势在应用内进行滚动、缩放或拖动。 这会向应用注入虚拟手指触摸,以模拟相同类型的触摸手势。 通过选择按钮或说“<滚动/拖动/缩放> 工具”,用户可以通过在应用程序上方工具栏的工具之间进行切换来选择要执行的操作。
手势识别器
使用手势识别的一个好处是可以专门为当前目标全息影像可接受的手势配置一个手势识别器。 该平台只会进行区分这些特定受支持手势所必需的消除歧义。 这样,仅支持隔空敲击的全息影像允许在按下和释放之间经历任意时长,而同时支持点击和按住的全息影像可在经历保持时间阈值之后将点击提升为按住状态。
手部识别
HoloLens 通过跟踪设备可识别的一只手或双手的位置来识别手势。 当手处于就绪状态(手背朝向自己,食指向上)或按下状态(手背朝向自己,食指向下)时,HoloLens 可检测到手部。 如果手部采用其他姿势,HoloLens 会忽略这些姿势。 对于 HoloLens 检测到的每只手,可访问其位置(无方向)及其按下状态。 当手接近手势范围的边缘时,可看到一个方向向量,可向用户显示该方向向量,以便他们知道如何将手移回 HoloLens 可检测的范围。
手势框
对 HoloLens 做出手势时,手必须在“手势范围”内,即手势感应相机可以适当检测到的范围内(大致从鼻子到腰部,两肩之间)。 用户需要接受有关识别此区域的培训,以便成功且舒适地完成动作。 许多用户最初认为手势范围必须在其通过 HoloLens 看到的视场内,并且为了进行交互以不舒服的姿势举起手臂。 使用 HoloLens 控制器时,手不必要在手势范围内。
特别是在使用连续手势时,用户在手势进行到一半时可能将手移出手势范围(例如移动某些全息对象),无法获得预期结果。
应考虑以下三个事项:
用户应接受关于手势范围位置和近似边界的培训。 在 HoloLens 安装期间传授此知识。
在用户的手势接近或穿过应用程序的手势范围边界时通知用户,避免因丢失手势导致无法获得预期结果。 研究表明了此类通知系统的关键质量。 HoloLens shell 提供了此类通知的一个良好示例(显示在中央光标处,指示超出边界的方向)。
应尽可能避免穿过手势范围的边界。 一般而言,这意味着手势应在边界处停止,而不是反转。 例如,用户在房间中移动某个全息对象时,应在穿过手势范围时停止运动,但不会返回到起点。 用户可能会遇到一些挫折,但可能更快理解边界,而不必每次都重新开始其整个预期操作。