主要的交互手势包括:
捏取
● 捏取手势是通过将拇指尖轻触食指尖,并伸展其他手指完成的。当侧面观察手部时,最容易识别捏取手势。
● 捏取手势用于在手指接触时进行选择,或通过保持手势并移动来进行操作。
● 捏取手势在验证中非常高效,因为它会带来自动触觉反馈。
抓取
● 抓取手势是通过将手放在摄像头前并握紧拳头来完成的。
● 该手势用于抓取和操作近距离的大型物体。
● 抓取手势同样可以提供自动触觉反馈。
张开
● 张开手势是一种中立的姿势,通过伸展手掌,打开手指并让手掌远离摄像头来完成。
● 张开手势通常用于连接射线投射,以便与远距离的元素进行交互。
● 此手势用于显示射线投射或作为释放手势使用。
指向(已废弃)
● 从 Snapdragon Spaces 版本0.12.1 开始,指向手势已被废弃。请仅在使用 Snapdragon Spaces 版本0.11.1 及更低版本时使用此手势。
● 指向手势是通过伸展食指并保持其他手指闭合完成的。
● 通常用于近距离交互中,例如与图形用户界面(如按按钮)进行交互。
手部表现
增强现实
在增强现实环境中,不建议在真实手部上方显示虚拟手。推荐侧重于提供虚拟元素的反馈,而非手部化身。
虚拟现实
对于虚拟现实应用程序,最好使用支持反向运动学的3D模型。将手部的3D表现叠加在数字空间中的真实手部上,可以为用户创造更具沉浸感的体验。重要的是根据演示的情境调整手部的表现方式。
此外,3D手部必须通过视觉效果向用户发出警告,提示其正在进行交互。
以下是两个3D手部化身的示例:
Alpha 手势
Harlequin 手势
反馈、提示和功能性设计
由于手部无法像其他输入设备那样提供触觉反馈,因此在用户与3D对象交互时,通过视觉和音频反馈来弥补这一不足显得至关重要。设计明确的声音和视觉变化,以确认用户与组件进行交互时的情况十分重要。
为了提升用户体验,考虑将类似于现实世界的反馈引入交互设计中。这将通过视觉或音频提示来确认用户是否成功执行了与对象或手势的交互。
一般来说,虚拟元素的主要状态如下:
状态 | 视觉反馈 | 音频反馈 |
空闲 | 无 | 无 |
悬停 | 是 | 是 |
已选中 | 是 | 是 |
视觉反馈
对象
当成功交互时,对象的行为可能会发生变化,或者对象会被突出显示。对象还可能会根据交互或手势改变形状或大小。
对象的状态从左到右依次为:空闲、悬停、已选中。
手部
视情况而定,建议在3D手部化身上提供视觉反馈,除了交互对象之外。
一般情况下,手部经历三种状态:无交互、与交互元素碰撞、正在交互。以下是3D手部可能展现的效果类型示例:
手部反馈:空闲、悬停、已选中
准星
为了明确指定与之交互的元素,尤其是在远距离交互环境中,重要的是在指针上返回不同类型的效果。在人机界面中,经典的做法是根据交互状态改变准星的外观。这些行为对用户来说非常直观。在设计阶段,考虑射线投射和其准星可能展现的不同行为方式至关重要。
准星反馈:空闲、悬停、已选中
音频反馈
建议音频反馈仅在虚拟对象上实现,因为交互音效会根据上下文而异。例如,用户在与2D菜单交互时的音频反馈与在视频游戏中的交互音效不同。
音频还可以用于环境音效,同样需要根据具体情境来选择。
交互提示
交互提示是一种手部动画,当系统未检测到用户的手部时会触发。这种组件可以在用户不知道如何与虚拟元素交互时进行引导。
如果用户在一段时间(在设计演示时定义)内没有进行交互,该组件将以循环动画的方式持续播放,直到系统检测到交互为止。
备忘单
最适合不同交互状态的手势和反馈:
近距离 | 远距离 | 反馈 | |
目标 | 碰撞 | 张开手势(射线投射) | 视觉、音频 |
选择 | 捏取、抓取 | 捏取 | 视觉、音频 |
操作 | 捏取、抓取 | 捏取 | 视觉,根据情境而定 |
UI目标 | 碰撞 | 张开手势(射线投射) | 视觉、音频 |
UI选择 | 捏取、指向、张开手势 | 捏取 | 视觉、音频 |
UI操作 | 捏取、指向、张开手势 | 捏取 | 视觉、音频 |