手部教练

示例:手部指导

当系统未检测到用户的手时,手部指导会触发 3D 建模的手部。 此功能是一个“教学”组件,可帮助在未教手势时指导用户。 如果用户在一段时间内未执行指定的手势,则手部将延迟循环。 手部指导可用于表示按下按钮或拾取全息影像。

提供的手部指导

当前交互模型表示各种手势控件,例如滚动、远距离选择和靠近点击。 下面是 MRTK 中提供的现有手势的完整列表:

Near Select 示例
近距选择 - 使用的示例演示如何选择按钮或关闭可交互对象

Air Tap 示例
Air Tap 示例 - 用于显示如何选择远离的对象

移动示例
在空间中移动对象的示例 - 用于演示如何在空间中移动全息影像

旋转示例
显示如何旋转全息影像或对象的 Rotate-Used 示例

缩放示例
缩放示例 - 用于演示如何作全息影像以放大或缩小全息影像

掌上示例
Palm up 示例 – 建议使用来打开手部菜单

HandFlip 示例
手翻转示例 - 显示手部菜单的另一种方法

滚动示例
滚动示例 - 用于滚动列表或长文档

设计概念

对于 Hololens2,我们基于本能和自然手势设计了手部交互。 我们相信这些对大多数用户而言是直观的,因此我们没有创建专门的手势学习时刻。 相反,我们创建了手部指导,以帮助用户在遇到卡住或不熟悉全息影像交互时了解这些手势。 在没有学习时间的情况下,我们认为,通过演示向用户展示如何执行作是最佳选择。 我们发现用户能够找出手势,但需要一些指导。 如果我们检测到用户在一段时间内未与对象交互,则会触发手部指导,演示正确的手部和手指位置。

直觉的

在对手部进行动画处理时,它应该是显而易见的,不应造成任何混淆。 手部动画是尝试提示用户理解的手势的表示形式。

例如,如果希望用户按下按钮,则会触发按下按钮的手。

示例:点击附近的手部指导
手部教练演示接近敲击宝石

手部刻度

我们用 UI 菜单测试了各种手部尺寸,并觉得如果手是真的调整大小,它给人一种威胁的感觉。 如果它们太小,就很难看到和理解这个手势。

语音和手部

不要指望用户可以通过语音收听一组指令,并通过手部指导watch不同的说明。 对指令进行排序,以帮助用户集中注意力,而不是争分夺回注意力,以减少感官过载。

我可以创建自己的吗?

可以! 我们鼓励你为游戏创建自己的独特手势,并为社区做出贡献! 我们提供了一个 Maya 文件,该文件适用于你的应用,可在此处下载: 下载 HandCoach_MRTK.zip

Maya 中的动画手示例
在 Maya 中用动画手戳框的示例

建议的创作工具

在 3D 艺术家中,许多人选择使用 Autodesk 的 Maya,后者可以使用 HoloLens 来转换资产的创建方式。 提供的手部文件是 Maya 二进制文件,因此建议使用 Maya 对手部进行动画处理和导出。 如果希望使用另一个 3D 程序,下面是 。FBX 下载 HandCoachMRTK_FBX.zip 以创建自己的控制器设置。

如果使用提供的可下载 maya Hand 文件,建议将 unity 中的手数缩减到 0.6。

示例:Maya 中的手部教练装备
纵的手

技术规格

  • 双手文件以 Maya Ascii 格式提供
  • 右手和左手以 Maya 二进制格式提供
  • 将 Maya 文件设置为 24 FPS
  • 在文件中,有一个左手和右手,可用于双手或单手手势。 默认情况下,右侧将仅可见。
  • 建议在开始和结尾保留大约 10 帧的缓冲区以用于淡出
  • 如果使用指定目标对对象进行动画处理,则最佳做法是将动画设置为默认框或 Null。
  • 如果手正在对物理对象(如框)进行动画处理,则最佳做法是不要在 Maya 中对翻译进行动画处理,而是等待在 Unity 或 Code 中对其进行动画处理。
  • 可见动画应为 1.5 秒,以便传达任何有意义的信息
  • 当你对动画感到满意时:

从 Maya 导出

对动画感到满意后

  • 选择所有关节:选择 > 层次结构

    示例:菜单中的层次结构

  • 烘焙动画:切换到动画 > 键 > 烘焙动画

    示例:烘焙动画菜单位置

  • 删除控制器设备:大纲MainR_Grp > 或MainL_Grp

    示例:控制器 Rig 菜单位置

  • 导出为 FBX:选择“JNT + 网格: (文件 > 导出所选内容”选项框) > “导出所选内容”

    示例:导出选择菜单位置

    示例:菜单位置

    示例:导出选项菜单位置

当导出为 FBX 并引入Unity时,将手数缩小到 0.6。 我们发现,这是展示手的完美平衡。

示例:Unity设置
在 MRTK 中找到HandCoach_R预制件的Unity设置

将 Hands 实现到Unity项目中

最佳做法

  • 建议将统一的手数缩小到 0.6

  • 手应玩两次,如果未完成,则持续循环,直到手势完成。 手部应循环两次,以确保用户有时间注册并看到手势。 手应在循环之间淡入和淡出。

  • 如果用户的手被 HL2 相机看到,但用户未进行所需的交互,则 10 秒后将显示手部。

  • 如果 HL2 相机看不到用户的手部,则 5 秒后会出现手部。

  • 如果用户的手在动画中间被 HL2 相机明显跟踪,动画将完成并淡出。

  • 如果包括语音,我们建议它对应于手部的手势。

  • 如果你至少教过一次手,则仅在检测到用户卡住时重复该手势。

  • 如果特定的手指/手部位置至关重要,请确保用户可以清楚地看到动画中的这些细微差别。 尝试用手抓,使最重要的部分清晰可见。

  • 如果注意到手部扭曲,则需要转到Unity的质量设置增加骨骼数量。 转到Unity的编辑>项目设置>质量>其他>混合权重。 确保选择“4 个骨头”以查看平滑关节。

    示例:“项目设置”窗口

要避免的内容

另请参阅