手势是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. MFC笔记6

    1.MFC文件的读写操作 写操作 创建一个编辑框(IDC_INFOR_EDIT1),在里面输入信息,创建一个按钮(IDC_BUTTON),点击按钮会触发(OnBnClickedButton2()函数) ...

  2. springboot寻找property的顺序

    Spring Boot uses a very particular PropertySource order that is designed to allow sensible overridin ...

  3. groupby一个as_index参数解释

  4. HTMLParser和BeautifulSoup使用入门和总结

    1.HTMLParser一般这么用: from html.parser import HTMLParser from urllib import request class MyHtmlParser( ...

  5. 大数据学习笔记1-大数据处理架构Hadoop

    Hadoop:一个开源的.可运行于大规模集群上的分布式计算平台.实现了MapReduce计算模型和分布式文件系统HDFS等功能,方便用户轻松编写分布式并行程序. Hadoop生态系统: HDFS:Ha ...

  6. 100-days: fifteen

    Title: Disney(迪士尼) moves from behemoth to colossus with closing(使…结束,使停止) of Fox(福克斯) deal(商业上的交易/协议 ...

  7. Pay attention to "Changing"

    data l_ct_imseg type vsep_t_imseg. refresh l_ct_imseg. append lines of ct_imseg to l_ct_imseg. call ...

  8. jameter一般关注的指标

    对于B/S架构软件,一般会关注如下web服务性指标. 1.Avg Rps:平均每秒钟的响应次数==总请求次数  /  秒数 2.Avg time to last byte per terstion ( ...

  9. Spring注入静态变量的方法,以及CXF如何获取客户端IP

    1.如果使用@Resource注解来注入静态变量的,服务器启动就会报错的.可以新增一个set方法,同时在set方法上用@Resource注解来注入. 2.或者直接在Spring的配置文件中使用< ...

  10. window 安装mysql

    常见错误:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) 密码输入错误:无法远程 ...