手势是HoloLens三个首要输入形式之一。一旦你使用凝视定位了一个全息图像,手势允许你与它交互。手势输入允许你使用手或者点击器原生地与全息图像交互。

手势之外,你也可以在应用中使用语音输入来交互。

手势识别 Hand recognition


HoloLens通过追踪手来实现手势识别。HoloLens能够明白手什么时候准备好了(竖起食指手背面向脸)或者点击(手背向脸食指点下)。当手处于其他姿势时,HoloLens将会忽略它们。

HoloLens在设备前方的锥形范围内追踪手部运动,这片区域被称为手势框(gesture frame),这拓展了全息图像显示视图的上下左右边界。这允许你手势输入时,可以舒适地保持着手臂弯曲。当使用点击器时,就不必将手保持在手势框之中。

对于每个HoloLens识别的手,你能够得到它的位置(无方向)和他的点击状态。当手接近手势框边缘时,你能得到一个方向向量,你可以提醒用户将手移回HoloLens可识别的区域。

交互 Interactions


HoloLens的核心交互是点击(press)、松开(release)和绽开(bloom)手势。

点击和松开 Press and release

你选中和激活全息图像的首要方式是air-tap手势,它包含了一个点击和松开手势。

Air-tap手势,首先是指面向了脸点下,这是点击手势;随后食指向上松开,这是松开手势。Air-tap会实现对全息图像的选择,点击器或者语音命令也能做到。

绽开手势 Bloom


Bloom是很特别的系统手势,被用于从全息应用中唤起开始菜单。这和在键盘上点击Windows键或者Xbox手柄上点击Xbox按钮功能类似。

为了做Bloom手势,先攥紧拳头,手心向上,然后五指绽开。通过说:“Hey Cortanna,Go Home”也能唤起开始菜单。注意:你的应用无法刻意响应Bloom手势,因为它只能被系统响应。

手势 Gesture


你的应用可以识别简单点击和松开之外更多的手势。通过移动手或使用点击器,你可以做更多复杂的手势:

  • 长按Hold:保持点击手势直到触发系统长按手势阈值
  • 操作 Manipulation: 保持点击手势,在3D世界中绝对运动
  • 导航 Navigation: 保持点击手势,在一个标准3D立方空间内相对运动

长按手势 Hold

Hold手势和触屏上长按手势类似,被用于执行二级行为,例如拿起一个对象而不是激活它或者显示上下文菜单。

操纵手势 Manipulation

当你想要全息图像1:1响应用户手部移动时,操纵手势能被用于移动、缩放或旋转全息图像。如此的一个用处是使得用户可以在世界中绘制图像或作画。

使用所有的手势时,操纵手势的初始目标应该通过凝视来选中。一旦点击手势开始,通过手部移动的任何对对象的操作都能够被处理,在用户操作全息图像时,从而使得用户得以自由地四处张望。

操纵行为只能使用手势来实现。

导航手势 Navigation

导航手势就像一个虚拟的操纵杆,能够用于UI控件导航,例如弧形菜单。通过点击开始手势,然后在以点击处为中心的标准立方空间中移动手部。你可以沿着X、Y、Z轴移动手部,这回带来数值-1到1的变化,初始位置的值为0.

导航手势可以用于构建基于速度持续滚动或缩放的手势,这和在2D UI上通过按住鼠标滚轮上下移动类似。

定向导航是指在特定轴上识别运动直到此轴上阈值的能力。当应用中开发者启用了多轴运动,这很有用,例如如果一个应用被设置为识别X、Y轴上的运动,但同时X轴被设为定向导航。在这种情况下,如果手也在Y轴上移动,只要他们保持在X轴假想导轨区间上,系统会识别到X轴上的手势移动。

在HoloLens 2D应用内,用户可以使用垂直导航手势来滚动、缩放或在应用内拖拽。为了模拟同样类型的触摸手势,导航手势为应用虚拟了手指触摸,实际体验和触屏上的相应手势类似。用户可以通过切换Holobar上的Scroll/Drag/Zoom工具来显示相应行为。

HoloLens开发手记 - 手势输入 Gesture input的更多相关文章

  1. HoloLens开发手记 - 语音输入 Voice input

    语音是HoloLens三大重要输入形式之一.它允许你直接通过语言控制全息图像,而不用借助手势.你只要凝视全息图像然后说出语音命令即可.语音输入是自然的交互方式,它能够很好的改善复杂的交互,因为通过一条 ...

  2. HoloLens开发手记 - Unity之Keyboard input 键盘输入

    虽然HoloLens支持很多种输入方式,包括蓝牙键盘在内.但是大部分应用还是不能断定用户有物理键盘可以输入,所以虚拟键盘输入还是必须要提供的. Unity提供了一个TouchScreenKeyboar ...

  3. HoloLens开发手记-开发概述Development overview

    开发HoloLens全息应用将使用UWP平台(Universal Windows Platform),所有的HoloLens应用都是Win10通用应用,所有UWP通用应用都可以在HoloLens上运行 ...

  4. HoloLens开发手记 - Unity之Gestures手势识别

    手势识别是HoloLens交互的重要输入方法之一.HoloLens提供了底层API和高层API,可以满足不同的手势定制需求.底层API能够获取手的位置和速度信息,高层API则借助手势识别器来识别预设的 ...

  5. HoloLens开发手记 - HoloLens真机上手简评

    千呼万唤始出来,终于今天拿到了HoloLens真机. 使用体验 使用自带的应用录制了一段使用视频,如下 设备概览 包装盒 本体 试戴 实际效果 GalaxyExplorer试玩 全息图像贴到现实场景表 ...

  6. HoloLens开发手记 - 使用Windows设备控制台 Using Windows Device Portal

    Windows设备控制台允许你通过Wi-Fi或USB来远程控制你的HoloLens设备.设备控制台是HoloLens上的一个Web Server,你可以通过PC的浏览器来连接到它.设备控制台包含了很多 ...

  7. HoloLens开发手记 - 使用HoloLens模拟器 Using HoloLens emulator

    首先下载HoloLens模拟器 HoloLens模拟器运行在没有真机的情况下在你的PC上测试应用,属于HoloLens开发工具系列.模拟器使用了Hyper-V虚拟机.通常通过传感器获取的人体和环境输入 ...

  8. HoloLens开发手记 - 测试 Testing

    测试HoloLens应用的做法和测试Windows应用很类似.所有常规的内容都应该被考虑在内(功能.互操作性.性能.安全性.可靠性等等),然而有些特性是HoloLens特有的,在PC或者手机上无法测试 ...

  9. HoloLens开发手记 - 应用程序模型 App model

    HoloLens使用Universal Windows Platform (UWP)提供的应用模型.UWP应用模型定义了应用如何被安全和完全地安装.更新.版本控制和移除.它管理了应用生命周期 - 应用 ...

随机推荐

  1. Redis在linux上的配置

    一.安装gcc  1.Redis在linux上的安装首先必须先安装gcc,这个是用来编译redis的源文件的.首先需要先切换的到root用户 2.然后开始安装gcc: yum install gcc- ...

  2. JAVA获取系统信息以及系统时间

    在做测试的时候,经常需要获取系统信息,并且用获取到的系统时间给生成的报告取名字. 以下代码实在TestNG展示的,没有Test NG的话需要些一个main方法. import java.net.Ine ...

  3. Html利用CSS布局技巧

    单列布局水平居中 水平居中的页面布局中最为常见的一种布局形式,多出现于标题,以及内容区域的组织形式,下面介绍四种实现水平居中的方法(注:下面各个实例中实现的是child元素的对齐操作,child元素的 ...

  4. python argparse(参数解析)模块学习(二)

    转载自:http://www.cnblogs.com/fireflow/p/4841389.html(我去..没转载功能,ctrl + c 和 ctrl + v 得来的,格式有点问题,可去原版看看) ...

  5. Python开发——数据类型【字典】

    字典的定义 # Python语言中唯一的类型映射 # 键与值之间用“:”分开 # 项与项之间用“,”分开 person = {"name":"yuan",&qu ...

  6. (转载)Android开发——Android中常见的4种线程池(保证你能看懂并理解)

    0.前言 转载请注明出处:http://blog.csdn.net/seu_calvin/article/details/52415337 使用线程池可以给我们带来很多好处,首先通过线程池中线程的重用 ...

  7. javaScript 字符串

    var name = '小明'; var age = 20; var message = '你好, ' + name + ', 你今年' + age + '岁了!'; alert(message) 要 ...

  8. LOJ-10106(有向图欧拉回路的判断)

    题目链接:传送门 思路: (1)将每个单词视为有向路径,单词的起始字母是起始节点,末尾字母是终止节点,然后找由字母建立的有向图 是否是欧拉图或者半欧拉图. (2)先用并查集判断是否连通,再判断入度与出 ...

  9. ABP框架系列之十四:(Background-Jobs-And-Workers-背景工作和工人)

    Introduction ASP.NET Boilerplate provides background jobs and workers those are used to execute some ...

  10. ABP框架系列之四十七:(SignalR-Integration-SignalR-集成)

    Introduction Abp.Web.SignalR nuget package makes it easily to use SignalR in ASP.NET Boilerplate bas ...