这里有最全的Oculus Quest手势追踪设计指南

前沿科技新媒体 青亭网 昨天

Esther|编辑
自从Oculus Quest一体机开始支持手势识别功能后,一直备受玩家和开发者们期待。尽管准确性和灵敏度有待提高,并且缺乏手柄可以提供的体感反馈,但直接用手势操作的优势在于体验感更自然,在物理模拟交互等场景中沉浸感会更强,是一种很有潜力的VR输入方式。
不过目前Oculus商店中还没有支持手势识别的游戏,只能通过SideQuest体验一些还在探索手势的第三方VR游戏。为了鼓励更多开发者探索这项功能,Oculus近期在官网发布《手势追踪设计指南》文档,通过一些经过验证的手势追踪开发技巧为开发者带来一些灵感。
Oculus在文档中写道:尽管手势是一种有潜力的新型输入方式,但由于计算机视觉与定位技术的局限,手势的实际应用也受到限制,因此希望通过一些有用的技巧来帮助开发者适应手势的局限性。
设计原则
目前,手势识别可用于一些基本操作,比如:瞄准、选择、移动、旋转、缩放等,你可以直接用手去触碰虚拟物体,也可以像使用星战中的原力那样,定位远处的虚拟物体(Raycast功能,指的是从用户所在位置向远处的虚拟场景投射一条线,用于选定远处的目标)。
与手柄不同的是,手势操作不涉及物理按键,在与虚拟物体交互时难以获得反馈,可能会让用户无法确定手势可以触发哪些功能。因此,Oculus建议开发者通过一些持续或明显的视觉反馈或标记来提示用户不同手势的效果。
比如,Oculus将原型的光标做成可缩小的圆点,当你的手指做出捏的动作时,光标会缩小,并改变颜色集中在手所指的目标上,这样的交互是在提示用户选择和确认需要使用捏这个手势。当你的食指与拇指的指腹碰到一起,会有视觉和音频来验证你所做出的选择。
此外,为了提高手势输入的准确性,Oculus将手势操作的菜单界面限定在二维,而不是像手柄那样支持6DoF,你可以用手在菜单中进行旋转、缩放、滑动等动作,不仅准确性得到控制,使用起来也更方便。
Oculus还指出,手势操作也可以与手柄协同使用,当你需要放下手柄去抓取其他东西时,系统可以自动切换到手势识别模式,即使没有手柄也可以用手直接控制菜单,不会打断VR体验的沉浸感。对于游戏等应用来讲,也可以设计出手柄和手势混合的玩法,比如在爬梯子时使用手势,在攻击敌人(对输入的准确性要求更高)时用手柄来模拟武器,还能带来手势所没有的震动反馈。
另一个值得注意的点是,手柄交互并不能直接移植到手势操作中,开发者需要去考虑手势作为输入方式的优势,寻找在技术局限下手势可实现的独特交互。考虑到手势输入缺少手柄的震动反馈,因此在输入和选择上也需要去寻找更适合的方式。
应用范例
1)捏
Oculus认为,拇指和食指并拢的手势最适合用于选择,尤其是指腹触碰的触觉可替代手势所缺乏的体感反馈。同时,两个手指捏到一起的动作足够简单,方便记忆,而且由于并不是一个常用的手势,因此不会在无意间触发。
捏这个动作有三种状态:指腹靠近、逐渐靠近和完全触碰,当两个手指逐渐靠近,代表光标的圆点也会相应缩小,让你知道系统响应到你的手势。
2)替代震动反馈
考虑到手势并不具备手柄的震动反馈,因此利用视觉和听觉信号来代替体感反馈很重要。Oculus认为,信号的作用是提示用户手势的功能,而反馈的作用是验证交互的状态。视觉信号可通过变化的形态、色彩、透明度和空间中位置来表现。也可以使用不同音量、音高和音调的提示来提供声音反馈,提示并帮助用户自然适应手势操作。
Oculus从动态的圆形光标(根据手指靠近程度而改变大小)、按钮(光标瞄准后会产生反应)、虚拟手(画面出现虚拟手代表正在追踪手势)等方面,为用户提供了一个比较自然有效的手势交互方案。
同时,拇指和食指靠近时产生的触觉可看做是按按钮等交互会产生的无力反馈。
3)Raycasting(远距离瞄准)
当与远处的虚拟物体交互时,可使用类似于手柄点选功能的raycasting方式,可更精确定位远处的物体,从人体工学角度来讲也更舒适。
此外,考虑到手在移动时也会带动身体颤动,可能会让raycasting的光标产生漂移,因此Oculus将raycasting的起始点固定在身体的特定位置来提高稳定性。当你在站着的时候,起始点设定在肩膀位置,你所选择的目标通常在肩膀一下。而坐着的时候,目标通常在肩膀以上,所以起始点设定在臀部,体验感比较舒适。
当然,很多时候无法确定用户是坐着还是站着,这时候可以自由在两种模式之间切换,根据注视点角度来调整肩膀或臀部这两个射线起始点。
4)手势定位
考虑到Quest头显传感器的定位范围有限,超出追踪范围的手势将无法识别,因此需要避免用户将手伸到范围以外。当然也要记得,传感器追踪范围要大于视场角,即使眼前画面里看不到虚拟的手,可能依然能定位到用户的手。
为了确保双手得到追踪,开发者需要考虑控制用户的手部动作,尽可能让他们头显前方范围,手掌面对头显移动,避免手指被遮挡。同时,也要避免两只手之间的遮挡,Oculus建议开发者设计一个只需要单手操作的交互,体验感会更好。
5)人体工学
当用户以直立站姿使用VR时,手臂靠近取关,肘部与臀部在一条直线上,这种姿势体验手势操作足够舒适,传感器追踪的效果也比较理想。
总之,手势交互需要避免对用户的肌肉产生伤害,避免让用户频繁伸出手臂,尽可能将可交互的目标放在近处,不重要的内容放在远处。
6)虚拟手
Oculus认为,VR中代表手势的虚拟手需要满足两个基本功能:为用户提供一种临场感,帮助了解不同手势的作用。
如果在VR中还原逼真的人手,成本和难度会比较高,尤其是只有手没有胳膊可能会让人觉得好像手与身体分离了,因此在塑造虚拟手的时候需要考虑到最适合体验内容的形态。开发者如果认为具象化的虚拟手对于沉浸式体验足够重要,则需要考虑什么样的形式能带来具象化的体验感,或者直接为用户提供可自定义的功能。
当手势对于游戏来说主要是输入方式时,较逼真的虚拟手是理想的选择,更容易让用户清楚了解不同手势的效果,降低手势操作的错误率。
7)控制手势逻辑
控制手势逻辑的重要性在于,可降低误触的可能,Oculus为不同状态的手势提供了一些范例。当用户的手在追踪区域内静止时,为避免手指卷曲的动作产生误触,开发者可做出以下设定:当手部在与头显达到特定距离,并且在一定时间内没有移动时,将不再进行追踪,当手部再次进入追踪区域内时才会开始识别。
此外,Oculus认为手势识别的光标或射线并不需要一直出现,只有当食指和拇指靠近并远离躯干,与屏幕呈现特定角度时(体现用户希望与菜单交互的意图)才出现,好处是避免遮挡视线,打破沉浸感。
那么在应用中如何用手势调出系统菜单呢?为了避免用户误触,Oculus设定了两种逻辑:首先需要举起手掌并看向它,然后保持捏的姿势。这样做的好处是,首先是为手势提供一个良好的追踪,其次这并不是一个常见的动作,降低了意外触发的可能。当进入系统菜单触发状态时,虚拟手会发出亮光来提示用户,这时候如果是误触便可以及时放下手臂,同时最后保持捏的动作是为了进一步确认。
交互的关键点和注意事项
1)目标距离
在近处的交互范围,尽可能设置最重要且频繁使用的目标,对于远景的目标来说,则需要用射线的方式来选择,或者提供有一种让目标靠近手的方式,就像是星球大战中用原力吸引物体的玩法。对于不同的体验,开发者可混合不同形式的近景交互和远景交互方式。
2)交互方式
开发者可为不同的体验搭配多种交互方式,它们主要分为两大类:直接交互和raycasting。直接交互适合用于在近处按钮、抓取等动作,容易上手,不过范围仅限于一臂之间。而前面提到raycasting可用于远处的交互,有点类似于Touch手柄上的射线光标,它的好处是用户不需要很大幅度的动作就能与任意距离的目标交互。
3)选择方式
与交互方式相同,用手势进行选择也分为两大类,一是直接与近处的目标触碰,而是通过捏的动作来确认选项。考虑到手势操作不具备手柄能提供的体感反馈,开发者需要用视觉提示和反馈来弥补。而捏这个动作本身会带来触觉反馈,刚好为手势识别带来体感反馈功能。
4)手的移动速度
Oculus表示:VR中虚拟手、光标的移动速度或角度可1:1还原自用户的手势,好处是交互更自然逼真,手部的动作与虚拟手完全匹配,不过长时间容易让用户疲惫,限制交互场景。当然也可以进行调整,比如手每移动1°,光标则移动3°,比例越小精准度越高,越大则越省力。
为了更好的体验感,开发者也可以对不同的交互使用不同的比例来提升效率,当用户手快速移动时,虚拟手的速度则进一步加快,或者当用户的手长时间放在最左边时,虚拟手会持续向左边移动,就像是将摇杆推到头的感觉。而对于精准性要求高的交互,则尽量避免使用这种形式。
5)系统控制选项
Oculus认为系统控制手势可分为抽象和类比两大类,抽象手势指的是类似于科幻电影中描述的特定隔空手势,它的缺点是需要一段时间去学习和记忆,而且不能是用户不小心做出的动作,还需要考虑特定手势对于不同文化的意义,避免引起特定人群反感。因此Oculus建议尽量少用抽象手势,更多去使用类比手势。
类比手势通常比抽象手势更敏感,你可以立刻看到手势产生的效果,而且很容易学会。比如,当你的手向右移,光标、目标或物品也会移到右边,接触式交互与raycasting都是类比手势。开发者可根据不同场景,混搭两种类型的手势交互。
此外,Oculus还指出手势交互需要满足4项基本功能,开发者可选择不同的交互方式来满足这4类功能,即:选择、移动、旋转和缩放。
VR中,你可以在2D菜单上进行选择,也可以选择3D物体,戳这个动作适合用于菜单或按钮,而捏的动作适合捡起虚拟物体。在移动虚拟物体时,可直接用手势移动,也可以通过射线来选择远处的物体,甚至也可以加快在VR中移动物体的速度来提升效率。
在旋转物体方面,可通过简单的滑动手势来实现,如果对精准性有要求,则可以限制虚拟物体只能在一条轴上移动,简化操作难度。另外对于2D物体,则可以选择让它自动围绕用户旋转。
而对于缩放功能,Oculus建议可采用统一缩放比例,并且将物体固定在2D平面上,只能在一个轴上移动。用户可通过双手捏的动作来实现对物体的缩放,一只手固定物体,另一只手进行缩放。使用双手的缺点是,用户需要双手灵活,并且手中没有其他东西,而且双手移动过程也容易以产生遮挡。
开发者也可以为3D虚拟物体的每个轴配备操纵杆,这样一来,物体的缩放、移动、旋转会更加精确,只需要用捏的动作来控制各个操纵杆就可以实现。
UI设计
手势交互并不会使用到手柄的物理按钮或摇杆,Oculus建议,可以在菜单中使用虚拟按钮等交互方式来进行操作,为用户提供持续的交互反馈。
按钮可通过在不同交互状态中变化形态来提供视觉反馈,Oculus认为可以由7中状态:默认、聚焦(按钮周围出现边框,代表已选定)、靠近(手指靠近按钮时)、接触(改变颜色或出现接触印记)、启动(按钮被按下去)、释放(按钮弹回原状)。
对于近处的按钮,Oculus建议可以对按钮大小、接触范围、排列密度、形状和距离几个方面进行考量。其写道,按钮的每一条轴的长度应该至少6厘米,少于5厘米长度的按钮容易降低准确性和交互速度。此外,可在按钮周围设定一个溢出的交互范围,提高输入的效率,范围的形状可选择方形或矩形。
按钮之间的距离可设定在1到3厘米,扩大距离可能会降低准确性。Oculus认为,按钮的视觉形状对效果并没有影响,只要将交互范围设定为矩形就可以。距离方面,按钮位于用户可触及最远距离的80%时最理想。假设手臂的中等长度约为61厘米,那么虚拟按钮应该位于距离头显49厘米的地方。
对于远处的按钮,Oculus建议可将按钮的角直径设定为小于1.6°,主要是确保按钮的远距离不会影响精准性。角直径的作用是代表虚拟按钮所占据的视场角,比如:按钮距离头显2米远,角直径为1.6°,那么按钮的直径应该为5.6厘米,如果虚拟按钮距离10米远,那么它的直径应该至少28厘米。
对于捏+拉这个手势,开发者可加入虚拟操纵杆来提高精准性,同时它对于1D、2D和3D界面也可以有不同功能。1D界面中,操纵杆以一个轴移动,可用于翻页、快进功能。2D界面中,用户可通过两个轴的方向来进行操作,适用于颜色选取或辐射状选择器,用户可以先将调色盘拉出,然后控制操纵杆来选取不同的颜色。而在3D界面中,用户可从三个轴方向进行操作,可用于立体的调色盘等场景。
对于近处的交互,可选用短小的定向指针来进行瞄准,指针的形状、色彩和透明度会根据用户食指和拇指之间的距离来变化,提示用户交互的状态。光标则可以提示手势目前瞄准的目标,当做出捏的动作时,光标会跳动,提示输入成功,当两个手指松开时则恢复原样。为了避免光标遮挡视线,Oculus将它设为半透明式,并使用较深的轮廓来加深它的存在感,同时光标的角直径是恒定的,与距离成反比。
最后,Oculus分享了开发虚拟手的注意事项,认为它可以同时结合静态的色彩和动态的轮廓。也就是说,当你做出手势时,手指的重点部分会改变轮廓颜色,提示你正在输入中。当你手掌面对自己,调出系统菜单时,轮廓是蓝色的,手指也会变成蓝色。当你使用捏的手势时,虚拟手的轮廓变成浅灰色,食指和拇指变成白色。同时,为了避免遮挡,Oculus Quest中的虚拟手采用半透明式的灰色,并且只渲染到腕部。
参考:
https://developer.oculus.com/design/hands-design-principles/

(END)


 
   推荐阅读    




 
每天五分钟,轻松了解前沿科技。    
         —— 青亭网