开发人员如何减少虚拟现实中的疾病

之前,我发表了一篇非常成功的文章,内容涉及如何体验虚拟现实,以减少您的仿真病。 之后,我还发表了关于模拟疾病的更深刻见解,在其中我描述了该问题如何取决于经历虚拟现实的人的年龄,性别和种族。 人们要求我发表另一种帖子: 如果您是开发人员并且不想让用户晕车,您该怎么办? 因此,在这里,您将获得一些有关如何减少用户呕吐的建议。

首先,无论如何,绝对不要在没有用户明确行动的情况下移动相机拜托,不要 。 我知道用摄像机在运动区上移动来制作一些电影序列非常酷,但是这也很恶心……所以,这不是一个好主意。 原因与我以前的文章中所描述的相同(如果您想更好地了解晕动病,请阅读这些内容!):您的身体静止不动,但眼睛却看到运动; 大脑认为这种感觉上的不匹配是由于某种毒药引起的,因此触发了它的防御,这是恶心之类的东西(出现在大脑上,您拥有多么糟糕的防御!🙂)。 这是一个非常基本的概念,但是我继续看到很多有关自动照相机移动的演示。 相机必须仅在用户同意下移动。

另一个明显的建议是不要在玩家走路时摇头 。 您知道,在FPS游戏中,走路时,您会看到头部摇摆,这使游戏更加逼真。 如果您在VR中做同样的事情,您的玩家会感到非常恶心和头晕,以至于他们玩游戏的时间不会超过20秒。

关于游戏的环境… 减少混乱更好避免用户的压力 :放松的环境总是更好地减少恶心感。 并避免重复模式 :重复模式会使大脑混乱,特别是如果您使用某些连续运动机制,那么如果可以的话,请避免使用它们。 例如, 如果您想减少模拟疾病,托斯卡纳的方格地板不是最好的选择 (事实上​​,我们的一些同事因此而遭受了痛苦)。 我们注意到这不是强制性约束,但是这样做更好,可以给用户带来更多舒适感。

游戏性能应足以满足虚拟现实的需求 :您必须保证至少60PFS ,否则大脑将开始触发其防御机制。 如果您使用台式机,则90FPS是最佳选择。 我可以向您保证, 保持如此高的帧速率绝非易事 ,尤其是在移动设备上。 我在GearVR上开发的应用程序的帧率很容易降至30–40FPS,因此我必须进行所有优化 。 我应该专门写一篇有关此问题的文章,但是为了给您一些提示,您应该执行以下操作:

  • 将场景中的多边形数量保持在较低水平(最大值为100.000)
  • 使用轻量级(非重型)着色器(例如,尽可能避免使用透明着色器)
  • 保持场景中的材料数量少
  • 使用纹理图集
  • 减少灯数
  • 较低的抗锯齿级别
  • 去除阴影
  • 使用预先计算的照明

通常,当我在Unity中为虚拟现实制作游戏时,先在PC上制作场景,然后在工作时,为移动设备创建一个新的,更轻便的场景……具有相同的行为,但细节更少,材质也更简单。 有时我花了很多时间试图在GearVR上以60FPS的速度工作……而在Cardboard上,情况更糟。

当然, 如果您的游戏更具吸引力,那么您可以保证更深的 存在感 ,因此大脑将专注于游戏的故事 ,而不必担心让自己呕吐。 说起来似乎很明显,但是……请尝试使您的游戏真正有趣且引人入胜。 我已经注意到了这一点:如果在一个无聊的场景中自动进行摄像机移动,我会感到非常难过。 如果在超级有趣的环境中发生同样的事情,我会感到难过……但情况会更糟。

很久以前,我就读过一个关于如何减少晕车病的怪异想法: 让您的球员看到他们的鼻子! 有些人进行了一项研究,使测试人员可以体验过山车的虚拟现实体验(超级恶心),但其中一半人只是通过将鼻子放在自己的虚拟眼睛之间的简单3D模型来进行测试。 带有虚拟鼻子的人患晕车病的次数更少 ……不知道为什么(也许鼻子为大脑提供了固定的参考点),但是它起作用了。 我从未见过利用这项研究开发出一款游戏(也许是因为它很奇怪)……所以您可以成为第一个尝试这种策略的人!

关于界面:制作3D HUD,创建diagetic界面… 不要像PC第一人称射击游戏那样,将传统的2D HUD附加到用户的视野中 。 2D HUD减少了存在,而且还要求用户的眼睛不断改变焦点以查看2D界面,然后再次查看游戏的3D环境。 如果您不希望用户的视线爆炸,这种连续的焦点变化是不好的,因此请仅在3D世界中使用位于3D中的GUI。 还是根本不使用GUI …您还记得从Job Simulator退出的墨西哥卷饼技巧吗?

在这里,我们讨论了运动的超大型超问题 。 如何使您的播放器在虚拟现实中移动? 如何使他长途跋涉? 正如我已经解释的那样,如果使您的播放器以标准方式行走(例如,WASD键像在FPS中一样移动),则会引发晕动病。 那么,如何使他行动而不呕吐呢?

  • 使用不会引起疾病的运动机制,例如远距传送 。 如果您的玩家只能移动传送,那么他完全不会遭受任何疾病的困扰……这就是为什么这是Vive上推荐的移动系统。 但是,这是非常不自然的,并且破坏了存在……这就是为什么很多Vive用户(包括我)都非常讨厌它的原因。
  • 如果您想让玩家以经典方式进行移动,例如用户沿着游戏板等行走(即经典移动机制), 请停用玩家控制器中的加速功能 。 我已经在Immotionar博客上写了一篇很长的文章,内容涉及如何在Oculus上实现Unity,我建议您阅读它。 如果您想要tl; dr: 拿起播放器控制器并从中移除所有加速度 :它必须只有两种可能的状态:静止或以固定速度运动。 无中间速度。 如果您尝试一下,您会发现这些小技巧的结果确实令人印象深刻: 晕车病大大减少了 。 除此之外,您还应该避免用户视觉效果的连续旋转…… 如果用户想用游戏手柄旋转头部,则应该以不连续的方式进行操作 ,每次按键都以固定角度旋转头部。

  • 如果您允许连续旋转(如经典的第一人称射击游戏中的鼠标一样),这可能会使您的播放器感到不适。 除此之外, 阻止玩家的横向或向后运动,因为这会引起头晕 。 另一个建议: 当播放器移动时,减小其视野(FOV) :这意味着缩小播放器用眼睛可以看到的屏幕区域并使周围的所有区域变黑。 就像您的玩家正在透过双筒望远镜看一样。 此技巧已在许多游戏(包括新的Google Earth VR)中使用,并且可以使用,因为FOV与虚拟疾病直接相关,并且固定的黑色区域为我们的大脑提供了某种固定的参考系。 嗯,如果可以的话,请避免爬楼梯或此类东西 ,因为由于玩家实际上总是在地板上时会看到自己在上升,所以他可能会感到怪异的感觉。
  • 如果您可以控制用户的移动方式,请鼓励用户实际行走的解决方案 :像Virtuix Omni这样的硬件(您可以在现实世界中行走而在虚拟世界中行走); 或软件解决方案,使玩家可以就地行走以进入游戏内部 ,例如此Unity插件之一或我们的ImmotionRoom解决方案,使玩家可以在真实世界和虚拟世界中行走,从而彻底消除晕动病感觉;
  • 最后但并非最不重要的一点是, 请让玩家自由选择自己想走路的方式 :很多人抱怨,因为他们没有晕车病,因此不需要那种丑陋的远距离传送机械,而是被迫使用它。 。 让您的游戏至少允许2种运动机制,并让用户选择使他更舒适的一种。 这很重要。

最后一点比较棘手: 选择一种不会引起晕车的游戏类型 。 我们可以谈论这一点很多年了,是的,没有公认的答案。 例如,如果您要制作赛车游戏之类的游戏,或者要摔倒在摩天大楼上或过山车上的游戏,则肯定会给用户带来晕动病。 是的,当然会有更多的人使用VR,因此对这个问题的敏感度会降低,但是您更容易对用户产生不良的感觉,尤其是VR新手。 从另一个角度来看,从诚恳的角度来说,这些都是超酷的体验:虚拟过山车真的很有趣(我非常想念UE4过山车),我们都喜欢生活在它们之中。 因此,出现了一个大问题: 做还是不做? 没有公认的答案……我的答案是:做这些,但要警告您的用户他们可能会晕车。

就是这样,伙计们。 希望这些建议能帮助您制作下一个VR游戏……我从未见过有人使用VR后呕吐,但我见过很多人状况不佳, 所以请塑造您的游戏,以免引起晕动病!

如果您还有其他建议,请使用评论部分…,如果您喜欢该文章,喜欢并分享…,请不时访问我的博客! 干杯!

(文章首先出现在我的个人博客上)