为什么在VR中投掷体验很差——怎样改善它

授权摘自游戏蛮牛

翻译cartzhang

投掷 - 当你体验VR,这是你做的第一件事之一。 你拿起那个虚拟的咖啡杯,扔掉它。 杯子,甜甜圈或球疯狂转动。 在这之前,你需要通过教程学习投掷。

这里,我试图把苏打瓶子投到我面前的空白板上。

有些投掷偏离的离谱。有的太低。其中一两个影响到NPC了。或许,我们的虚拟现实第一节,它其实很难精准的投出。当我有这样的体验,我认为是因为自己不擅长VR。我们接受熟练掌握控制方法是游戏学习曲线的一部分。但是,当投掷相同的动作但是结果非常不一样,你就会非常沮丧了。

一个大力投掷快速的跌落……

尝试用手来投掷一个瓶水。

而手腕的轻轻抖动可能造成对象这样飞。

只使用手腕来抛掷……

Rescuties:一个接-投的儿童类投掷类游戏

在夏天,我一直在做一个休闲动作类的游戏叫做:Rescuties。这是一个投掷和捕捉儿童喜欢的可爱动物的VR游戏。

在虚拟现实中,若世界对做出的反映与我们直觉相矛盾,就会打破对游戏沉浸感和玩家有挫败感。作为一款投掷类的游戏,Rescuties不能依赖机械本身就是令人沮丧的。

这种沮丧是从游戏设计一开始就伴随出现。简而言之,在虚拟现实游戏中,投掷都是非常困难的,这是由于不能感知虚拟对象的重量。处理方法各不相同——但是大多数的游戏都尽量去模拟你所持有的虚拟对象的物理属性。你抓住一个对象,在游戏中添加一些虚拟动量,然后关闭。

问题是:在显示生活中感觉与虚拟世界发生的世界感觉是断开的。当你拾起一个虚拟的物体,物体的质心和质心在手上的感觉有些分离。你的肌肉感觉很怪异。

当你要投掷的时候,若只是在这个或某个方向挥手,这种分离感觉没有太大关系。若投掷时候,弯曲手臂,旋转手腕(好的投掷的关键——“那就是手腕”(手腕发力(译者注)))。当旋转你真正的手腕时候,最后加到虚拟对象上的过大的动量,就像你用一个勺子甩出去一样。

有个非常不能忽视的现象。在许多虚拟现实游戏,可以捡起一个离你手一英尺远的物体。按下一个按钮,物体就被附着在了手里,但是它在固定的距离,把手变成一个弹射器。三英寸和十二英寸的差异意味着手腕轻轻的抖动就可以将一个对象扔过一个房间或者很难推动它。

手腕像弹射器一样运动

在Rescuties游戏中,你在追逐快速移动的婴儿——想快速把他们送到安全区域。旧的方法会导致过于精细的控制和令人沮丧,不一致的体验感受。为什么不能扔的像我该有的感觉那样呢?

物理与虚拟重量 ▼

更成功的投掷策略是要尊重物理引擎所建议的用户的控制感觉。

测量你所持有真实生活中的对象,比如HTC Vive或Oculus Touch 控制器,而不是测量所持有的虚拟对象的投掷速度。这个是你手中能感觉到的重量和动量。那也是肌肉记忆的重量和动量————这个是人花费一生来发展的身体技能和本能———— 回应。

无论你手里提起的是哪种虚拟物体,你所感觉到的物体重心不会改变。

将物理重量桥接到虚拟对象上是通过物理控制器的重心来确定游戏中的速度的。首先,找到游戏中真正的重心点位置。控制器会告诉你他们在游戏场景中的位置;它取决于你的头盔,并试图去校正重心的位置。然后,相对与控制器跟踪该点,通过改变位置来计算其速度。

这样修改过后,测试人员在Rescuties中就表现好了很多——但是仍然看到和感觉到很多不协调的地方。

(有关尝试向玩家传递虚拟重量的讨论,请参考这篇文章——)一个非常规的方法,忽略人体对控制器重量感觉,利用视觉想玩家展示虚拟对象的行为。 定时

要精确的知道玩家什么时间要投出一个东西?

在现实生活中,当投出一个东西,手指松开,物体开始脱离手掌,手指继续在我们想要的方向上用力,直到完全脱离。或许我们通过手指来旋转物体或试驾一个很微小的旋转。

在大多数的游戏中,使用食指下按扳机键来代替这种触觉上的反馈。有个比按钮更好的方案——在Rescuties中,在挤压扳机到20%使手套也接近20%的行程,100%就是一个拳头等等。——但是你不能感觉物体离开你的手掌,或通过手指来旋转。拳头的展开也仅仅是扳机键(可能是逐渐的)释放。我发现,我想要在玩家手指松开时候,检测到玩家的投掷信号。当扳机键压力很缓慢——不是0%或一个很小的量,而是通过实验设置经验值来检测抛出。

手绘图 ▼

上图显示了抓取——保持——抛出周期过程中扳机键压力随时间的变化曲线。在这种情况下,用户并不是一直100%的按下扳机键——比较常见的是HTC控制扳机键到80%,然后在使劲按下才会达到100%。首先,扳机键被按下来拾取对象,然后压力或多或少的保持稳定,因为玩家抓住物体并甩出去投掷——在这里会看到从扳机键传感器的噪声。玩家释放扳机键,物体被抛出或下落。

信号噪声和玩家心跳使扳机键强烈抖动。这需要使用阈值来检测玩家的行为。具体来说,游戏检测到扳机键压力(比方说)低于扳机键从玩家拾取物体开始时的峰值压力的20%。这个阈值必须足够高,这样玩家才不会意外的丢下一个婴儿——这个是我与测试人员功能更实验和错误发现的,类似的,若在太低的压力下就检测抓到物体,就没有足够的余量来检测可靠的投掷或释放。你将会得到我多次失败中的一个:怪异的超快速的抓起丢掉,抓起丢掉的现象。

速度干扰

正确的速度测量和改进定时会大大缓解不一致性。但是由于源数据本身——速度测试是来自于硬件的——是带有很大噪声的。当头盔或手柄快速移动的时候,噪声尤其明显。

使用平滑算法来平抑噪声 ▼

我尝试着使用一个速度平均值(也叫做低通滤波器)——但是这在某种程度上,会导致慢的投掷阶段(甩)和最快的阶段(释放)都变慢。测试人员发现,扔一个东西异常艰难,就像在手里扔东西一样。(这是我在Rec Room游戏的感觉)。

均值控制器速度的感觉还不错,与上面Job 模拟器对比就是结果太慢。

我尝试使用最近测量速度高峰,测试人员看到他的小动物与他期望的速度基本一致——但是并不总是朝着他想要的方向,因为最后的测试方向受到噪声问题的影响。

真正需要做的是使用最后几帧来做测试,并观察其情况——也就是说,绘制一条趋势线。通过简单线性回归给出更可靠的结果。最后,在需要时候,把它放到合适的地方。

可视化调试显示红色显示测试速度的最后四帧,黄色来显示回归结果。

怎样改进Rescuties游戏中的投掷体验 ▼

测量用户感觉的质心位置的质心投掷速度——也就是控制器。

检测用户打算投掷的精确时刻——即扳机按键释放时间。

充分利用测量的速度数据——进行回归以便更好预测玩家意图来。

若你对这些测试比较好奇,可以在Rescuties中有个“实验室”菜单,在其中切换投放模式打开或关闭,切换速度是如何被测量的,以及控制多少帧在回归或平滑中被消耗掉。

这个问题没有解决。在VR投掷游戏中有明显分歧,只是希望大家都开心。当在Rescuties游戏中,投掷动物时候,想尽可能的确保肌肉记忆与虚拟现实中弧线越匹配越好。这比刚开始时候好很多了——但是想让它更好些。

欢迎提出批评和建议:可以在@bigblueboo或cj@modeofx.com找到我。

原文发布于微信公众号 - 大数据文摘(BigDataDigest)

原文发表时间:2017-01-18

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏CDA数据分析师

Python 爬取淘宝商品数据挖掘分析实战

? 作者 孙方辉 本文为CDA志愿者投稿作品,转载需授权 项目内容 本案例选择>> 商品类目:沙发; 数量:共100页 4400个商品; 筛选条件:天猫...

64750
来自专栏大数据文摘

LEVAN:首款全自动视觉概念的机器学习程序

15480
来自专栏大数据文摘

[可视化]时间线的7种设计方式

70790
来自专栏大数据文摘

7种方式玩转信息可视化中的时间线设计

32750
来自专栏生信技能树

【好书共享】《R for Data Science》的中译版

这本书将教我们如何用R来做数据科学:学习如何将自己的数据导入R中,把它变成最有用的结构,转换,可视化并对数据进行建模。在这本书中,我们会学习数据科学需要实用技能...

49620
来自专栏吉浦迅科技

英伟达DesignWorks VR用虚拟现实做现实世界的设计

英伟达(NVIDIA)发布了DesignWorks VR,一套新的工具配合之前推出的GameWorks VR SDK一起使用,聚焦代替在虚拟现实里创建物理对象。...

28860
来自专栏机器之心

深度 | 从GPU制造者到服务器提供商:英伟达的计算平台转型

这是一次巨大的转变,但对所有以计算为中心的平台供应商而言,这个过程终将——在某些情况下逐渐地发生。

17400
来自专栏CSDN技术头条

软件看板之父David Anderson:使用看板方法进行项目管理

一、使用看板方法管理项目 我是项目经理,看板对我来说意味着什么? 我是项目经理,我的组织正在采用Kanban,它对我意味着什么?以及我应该在工作中如何使用看板?...

28390
来自专栏新智元

【干货】4月Python 热门推荐Top 10

18540
来自专栏无原型不设计

交互设计流程是怎样的?

尽管“交互设计”在近几年的设计行业中早已不是什么新鲜名词,但依然还是有很多朋友,尤其是刚入行的新人会问:什么是交互设计?交互设计师到底是干嘛的?交互设计的流程...

50050

扫码关注云+社区

领取腾讯云代金券