#交互设计#VRu002FAR眼控交互设计六大技巧


随着VR/AR眼球追踪技术的逐渐成熟 , 如何使用眼球追踪技术为自己的VR/AR APP提升用户体验已经成为开发者的一大议题 。
一般来说 , 眼控交互应用开发是开发者的第一想法 。
简单来讲 , 眼控交互开发的原理就是在开发引擎中 , 将视线范围设置为一条射线状或圆锥状物体 , 和VR/AR中的各种Object进行碰撞检测 , 当程序一旦检测到碰撞 , 则视为用户的视线落到了这个物体上 , 其基本原理对于开发者是很容易掌握的 。
但是在与很多VR/AR开发者的交流中过程中 , 发现目前开发者对于眼控交互设计上依旧存在较多误解 。
下面说一下常见的一些设计问题:
碰撞检测的范围
视线与物体进行碰撞检测时 , 不要真的将视线视为一个无限细的射线进行检测 , 因为基于目前眼球追踪技术 , 是无法做到100%准确 , 会存在一定的误差 , 虽然误差值很小 , 但是为了避免这种误差造成交互失误 , 在进行碰撞检测时 , 视线一方的碰撞物体 , 一般需要设置一定的扩展范围 , 最好是将视线设置为一个圆锥形 , 这样无论碰撞的距离是多少 , 其检测范围的半径是不变的 。
#交互设计#VRu002FAR眼控交互设计六大技巧
本文插图
碰撞检测并不等同于注视
检测到视线物体的碰撞和用户在注视这个物体并不是等同的 。
人眼有两种常见的运动模式:眼跳和注视 。
眼跳的速度非常快 , 而且人眼的视神经经常处于半关闭的状态 , 这时检测到视线和物体的碰撞 , 产生交互是没有必要的 。 视线落在某个物体上超过一定的时间才是注视 , 一般情况下要超过100ms , 所以在交互设计中 , 一般需要通过一定的延迟判定才能认为是注视 。
#交互设计#VRu002FAR眼控交互设计六大技巧
本文插图
圆圈代表注视(半径越大 , 注视时间越长)线条代表眼跳
避免米达斯接触
有些开发者曾问道:如何区别用户是在观察一个物体 , 而并不是想要触发这个物体相应的功能呢?
这是一个非常好的问题 , 在眼球追踪技术有一个专有的名词对问题进行概括:米达斯接触问题 。
米达斯接触
所谓米达斯接触(MidasTouch)问题(米达斯是希腊神话中的一位能点石成金的国王)指的是由于用户视线运动的随意性而造成计算机对用户意图识别的困难 。 用户可能希望随便看什么 , 并非存在目的和意义 , 更不希望每次转移视线都可能引发一个动作 。 因此 , 视线跟踪技术的挑战之一就是避免“米达斯接触”问题 。
#交互设计#VRu002FAR眼控交互设计六大技巧
本文插图
米达斯
如果用户只是选中激活(比如高亮、框选、变大变小)用户注视的物体 , 米达斯接触是不会产生什么副作用的 , 但是如果用户注视的物体会触发场景切换或功能设置上的变化 。 那么问题就随之而来了:
你怎么知道用户仅仅是在查看 , 还是想直接触发它的功能呢?
为了解决这个问题 , 我们不会采用注视后马上触发的方式 , 因为这样会不断产生错误的操作 。
一般会有下面的解决方法:
【#交互设计#VRu002FAR眼控交互设计六大技巧】
延迟触发
在被观察物体上 , 显示一个不影响正常浏览的时间进度条 , 当进度条完成设定时间的计时时 , 产生触发行为 。
二次眼控触发
在被观察物体旁边 , 显示“真正的”触发元素 , 用户余光可以看到 , 但不影响观察主体 。 当需要触发时 , 看那个“真正的”触发元素即可 。
但是细心的读者会发现 , 这两个方法依旧存在问题:延迟触发要求用户注意延迟进度 , 而且这种操作容易引起眼睛的疲劳 , 而二次眼控触发虽然在一定程度上可以避免误触发 , 但是仍然有误触发的可能 。


推荐阅读