自从Quest1和2开始支持手势识别功能,开发者们发布了多款基于手势交互的VR游戏,与此同时现有的VR应用也开始支持手势。为了帮助开发者顺利采用手势交互功能,烹饪模拟、多人对战VR游戏《ClashofChefs》开发者AdrianDjura在博客中分享了VR手势交互优化建议。
据悉,《ClashofChefs》发布后曾受到玩家的“特别好评”,评论中指出游戏中有一些有趣的交互,比如向别人扔盘子、扔洋葱等等。Djura表示:《ClashofChefs》的核心设计是呈现简单、低门槛的交互玩法,因此非常适合与手势交互结合。
此前,《ClashofChefs》的交互足够简单,玩家只需要用扳机进行抓取,不需要使用其他按钮。Quest开放手势识别功能后,该作也支持了这个功能,将抓取交互映射至手势动作也足够自然。
在设计游戏的手势交互之前,Djura对手势追踪进行大量研究,并将研究过程中获得的经验与大家分享,也许对VR开发者们有所帮助。
为了进一步优化物体抓取的体验感,Djura和团队进行了多次测试,比如用4个手指同时抓一个物体,或是用2个手指、1个手指等等。结果发现,只用食指抓取的效果最好,此外触发抓取的阈值如果足够宽容,误触的几率也更小。因此,开发者将触发抓取的阈值设置为捏合和食指抓取之间。
为了防止抓取的物体意外掉落,当Quest手势识别的准确性不够高时,则降低识别抓取力度的敏感性。
考虑到每个人抓取物体的动作可能存在差异,手掌大小也不同,因此Djura决定引入相对的抓取阈值和相对释放阈值,当玩家的手掌进入碰撞体(Collider)区域内,相对抓取阈值和相对释放阈值会根据手势进行更新。
据了解,相对抓取和释放阈值实际上指的就是,当你的手进入碰撞区域并触发释放和抓取动作后,相对的阈值也将根据你的手势变化而改变。
考虑到手势追踪功能缺少体感反馈,为了与玩家确认抓取动作,开发者在游戏中加入了视觉和声音提示,当你抓取物体时虚拟手会消失,抓取成功后会播放声音。
为了区别玩家用手挤压和抓取两种意图之间的区别,开发者设计了特定的算法来避免追踪误差。据悉,在《ClashofChefs》中挤压的定义是,在一段时间内抓取力度达到一定阈值,与普通抓取动作不同的是,触发挤压动作有一定延迟,抓取力度的参数变化也和释放手势不同。经过大量玩家测试,开发者不断优化并定义了释放和挤压手势的阈值参数。
经过多次玩家测试,开发者发现识别释放手势的时机存在延迟,也就是说一些时候虚拟物体已经脱手,但是手势动作未触发释放,因此可以当投掷速度减缓时,便可触发释放。
开发者发现,OculusHome的raycast系统实际上并不是从手部发射光标,而是从预测的肩部位置为起点,并穿过手部。为了提升手势选择菜单的效果,开发者将raycast的起点设定在玩家的手指上。不过,当你用手指捏合确认选项时,raycast光标的位置容易产生偏移。经过调查,最后还是发现OculusHome的raycast系统是最合适的解决方案。
经过测试开发者发现,在追踪准确性低时如果关闭手势追踪,游戏体验很卡,如果开启手势追踪,通常会导致手势抖动,抓取的物体可能也会四处飞舞和旋转。
通常在游戏进行中,玩家可能会一边看订单,一边用手在侧面做菜,不过这可能造成手势追踪信号短暂丢失。为了避免影响体验感,出现这种情况时仅追踪手的位置,并使用此前的高准确性手势数据来进行追踪,这样的好处是追踪效果更稳定,不再出现抖动的问题。
另外,当玩家在交付订单时也常常出现抖动情况,因为需要向前伸手送菜,可能超出手势追踪范围。为了避免在这种情况下做好的菜产生漂移,游戏系统会忽略追踪错误,以此来优化订单交付的过程。
接下来,开发者计划继续从玩家手机更多反馈信息,根据玩家的偏好和可能出现的问题(重复执行的动作等等)继续优化手势交互,减少错误抓取并分析其产生的原因。同时还将开发更具适应性的算法,根据用户的不同游戏风格调整交互体验。参考: