网易高级技术经理申文迪:深度解析《破晓唤龙者》开发经历与心得

《破晓唤龙者》上线于Google最新推出的Daydream移动VR平台,采用Unity引擎开发,是一款支持自由移动的第一人称奇幻写实风格的VR游戏。对于非常常见的VR眩晕问题,申文迪介绍团队发现了三种方案,首先是不要主动控制镜头,让玩家的眼镜变成摄像机,避免不必要的晃动、眩晕;其次通过好的传送式移动,减少玩家自身的移动量,从而避免镜头的晕动;最后FOV变化也能够缓解连续移动中的晕动症状。

2016 Vision VR/AR亚洲峰会,已于北京时间12月14日正式拉开帷幕,包括VR/AR业界的技术达人、新媒体艺术家、新锐VR导演、VR行业先驱等大咖齐聚一堂,一同探讨VR/AR前沿技术与创新应用。当天下午,网易高级技术经理申文迪受邀登台,分享了Daydream平台首发游戏《破晓唤龙者》(Twilight Pioneers)的开发经验和收获。据了解,这款作品在Vision VR/AR Awards 2017中脱颖而出,获得亚洲区专家团最高票数的认可。

111

《破晓唤龙者》上线于Google最新推出的Daydream移动VR平台,采用Unity引擎开发,是一款支持自由移动的第一人称奇幻写实风格的VR游戏。对于非常常见的VR眩晕问题,申文迪介绍团队发现了三种方案,首先是不要主动控制镜头,让玩家的眼镜变成摄像机,避免不必要的晃动、眩晕;其次通过好的传送式移动,减少玩家自身的移动量,从而避免镜头的晕动;最后FOV变化也能够缓解连续移动中的晕动症状。

以下为演讲实录:

大家好,我今天分享的主题是Daydream首发游戏《破晓唤龙者》开发经历和心得收获,我特地准备了一段视频,让我们先来看一下。

这是一款可以支持自由移动的VR游戏,今年2月底正式立项。这款游戏在今年做了首次亮相,于上个月发布。在游戏设计之初,我们对于目标群体进行了分析,我们认为这是一款移动VR游戏,其可能面对的潜在用户群体相当大,并且在这批用户中,应该有一批用户是首次体验VR游戏,而我们想给用户带来一种进入奇幻世界的新鲜感,并且可以在这个未知的世界中漫游。因此,我们坚持了一个设计,就是自由移动。但是如果要做自由移动,就会遇到晕动症的问题,这个也是我们必须要想办法解决的问题。

此外,因为我们是基于Google最新的Daydream平台进行制作,Daydream平台和Gear以及Cardboard最大的不同在于提供了一个三自由度的控制器,而我们肯定要基于这个控制器做一些玩法上的创新以及操作上的尝试。

但是,因为这个控制器只提供了三个自由度,即我们只能读取到这个控制器的姿态角,而无法读取到控制器的空间坐标,所以,如何在这种输入受限的情况下,能让玩家也相对自然地在虚拟世界中进行交互,也是我们一直在探索的问题。

最后,当我们能以一种相对舒适、自然地方式体验我们游戏的时候,我们就需要面对虚拟现实游戏和传统游戏制作中最大的不同点,如何在虚拟游戏中讲故事。

因为不同于传统游戏,虚拟现实游戏没有传统游戏的Camera的概念,所以,在无法控制玩家实现的情况下,如何能流畅地将我们的世界观和故事投放给玩家,让我们的游戏流程能顺利地进行下去,我们也进行了大量的探索。

今天我就会从这三个方面,来分享一下我们是如何解决这些问题的。

首先是如何让玩家舒适地在VR世界中自由移动,也就是怎样和晕动症进行对抗。

先简单介绍一下晕动症,现在学术界和业界普遍认同的一个说法是,晕动症的产生是由于我们的视觉系统和前庭系统之间的认知不匹配所造成的生理不适,而这种不适感经常用晕车、晕船的感觉来做类比,其实究其产生原因,更像这个(宇航员)。

据NASA的统计,有60%以上的宇航员在首次太空任务时,都会产生太空晕眩症问题。而我们要进行对抗的,就是这个连身体素质比较好的宇航员都难以克服的问题。在我们游戏开发初期,第一个Demo的时候,我们团队其实还是一个传统游戏开发团队,我们曾经做过这样的设计:为了增强击败BOSS的成就感,美术同学设计了一段精彩的斩杀QTE,通过不同的分镜与镜头拉动,来展示这个斩杀过程,我们在编辑器里面看的时候没有任何问题,但是当我们把这个QTE输出到头显中,这个体验几乎是毁灭性的。我们几乎都无法站立住,从这个例子,我们得出一个很重要的原则,不要主动控制镜头。

所以,在我们传统游戏中经常采用的基于镜头的叙事方式就不适用了,比如说震屏——千万不要在VR中震屏;像镜头拉动这种叙事方法,也必须要小心谨慎。

并且,在VR设计中有一个务必牢记的铁律——“玩家眼睛就是摄像机”。

这个结论可能大家觉得太简单了,但其实在VR设计中,就因为这个原则太基本了,所以很容易就被我们忽略了,而我们甚至认为,这个原则应该贯穿于整个设计始终,关于这个结论,我们后面还有个有意思的故事给大家分享。现在继续回到当前的议题,怎样移动才能不晕 ,其实,这个问题是有一个解决方案。对,传送式移动现在是一种业界公认的好的解决方案,很神奇的是,它真的完全不会产生晕动反应

但是请注意,这里有一个定语——“好的”

传送式移动本身没有问题,但是体验好不好,晕不晕,仍然有很多细节需要处理。

比如,如果传送的过去的地方是一堵墙,贴着镜头,玩家传过去了一样会感到生理不适,更甚至穿过了整个场景模型,会显示BUG,画面不断抖动等等问题,那么这次传送会是一次极其糟糕的体验。

所以我们认为好的传送式移动,特别注意以下几点:

选点容易、传送预览(能够清晰地保持自己的位置,不容易在VR空间中迷失)过渡顺畅(要让我们的用户能注意到这个过程,并且能很快适应这个过程)、目标地点检测(我们需要保证我们传送过去的地点,是一个舒适且安全的地方)。

虽然传送式移动很好,但它并不是万能药,因为有些游戏是必须有连续移动的,试想一下如何用传送玩骑马与砍杀?

在我们游戏中,传送式移动只是作为一个技能存在,可以通过双击手柄的触摸板上对应方向,就往对应方向闪现一段距离,我们会自动计算最远的可传送位置,然后用一个快速地模糊效果进行过渡,可传送范围比起场景略小一些,这样来保护用户不传送撞墙,传送式移动在我们游戏中的主要用途也只是用来躲避敌人攻击以及大范围赶路的。对于解密要素,或者战斗过程中,都有大量的连续移动需求存在,那这个问题怎么解决呢?

在今年3月份的3DUI大会上来自哥伦比亚大学Steven Feiner教授团队,所贡献的论文获得了本次大会的Best Paper Award。这篇论文指出,要想减少VR中移动的眩晕感,可以通过缩小用户的视场来达到这个效果,但是过小的视场会减少VR的沉浸感。所以哥大提出的解决方案是根据运动情况对用户视场进行动态调节。

看到这篇论文后,我们就参照论文的技术原理进行了尝试,在速度发生变化的时候适当缩小视场,当速度稳定的时候逐步恢复原视场大小,最终效果也确实很明显的,在移动改进前后我们进行的UE测试中,绝大部分测试玩家在移动优化后不会产生因为移动导致的眩晕感。

对于Unity的开发者,还有一个好消息!Google上个月19号告诉我们他们实现了一个叫做tunneling locomotion的技术,并且已经release了一个unity plugin。其原理和哥大的论文一样,所以,感兴趣的同学可以找一下这个Plugin研究一下,可以很简单地在自己的项目中使用起来。

其实在移动中,还有一种移动不会产生晕动反应,这就是低速移动在《破晓唤龙者》中,我们把低速移动作为默认方式,这样可以让玩家慢慢适应移动。并且,这时我们没有投放移动教学,在刚进入游戏的时候,我们用这种移动来代替。为了保证用户不晕,我们必须要保证速度足够低,但这种速度玩家不会喜欢。

在游戏上线之初,我们经常会搜用户评论,我们以前也研究过其他的游戏,有些游戏甚至需要一把转椅才能玩。我们发现我们忽略了一个很重要的问题,据玩家用户特性的报告指出,像移动VR用户有一个设备使用习惯,他们更希望在一个相对安全且舒适的环境下使用移动VR设备。而这种安全且舒适的环境往往是在客厅、沙发、床上,在这种地方。因此,如果我们要求用户有一把转椅才能玩,这可能是一种无理的行为。

所以我们了进行迭代,我们最直观的想法是按住某一个方向,直接转。但是如果我们真的这样做了,就违反了我们上面第一个原则,不要主动控制镜头,三轴快速转向。当我们快速转向的时候,应以当前为基准,快速旋转,这样就真的可以不晕,我们认为它的原理就和闪现一样。

至于为什么是120度,这个是经过我们实验的,我们试过90度,手感稍微有点拖沓。 最后的虚拟鼻子我是介绍了一个业界的说法,目前并没有在我们的游戏中运用。为什么虚拟鼻子能降低晕眩感?因为在VR世界中,放一个相对固定的参照物,就会极大地减少晕眩感。这并不是一个通用解决方式,我们不可能要求所有游戏都有一个固定参照物。

普渡大学也提出一个解决方案,也是“鼻子”,其实就是在我们的上面贴了一个鼻子,但却对我们画面没有任何影响,你几乎注意不到有一个东西在那儿。你看不见,但又真实存在。这个方案我们正在研究,看是否能够带来提升,但是如果没有问题的,这是一个比较优雅的解决方案。

我们做过许多尝试,我们团队现在仍然在跟晕动症做对抗。但自产品上线以来,还没有一个用户告诉我们有眩晕状况。其中有一个用户说:“太奇怪了我既然没有晕动症反应,这是对我们一个最大的肯定。”

关于晕动症的对抗就暂时分享那么多,接下来让我们进入对控制器的探索

Daydream控制器主要部件包括了陀螺仪,磁力计,加速计 。输入装置有最上面的触摸板,中间的APP键和下面的Home键,侧边还有音量调节按键,其中可编程的是触摸板和APP键 。Daydream手柄提供了三自由度,即可以通过API读取到当前手柄的姿态角参数,而其空间坐标是无法获取的。手柄与手机的连接方式是低功耗蓝牙。

其实当我们最开始拿到这个手柄的时候,觉得很为难,因为我们认为在VR中进行交互仅靠三自由度,那么交互方式就只能以点点画画为主,与其说是一个手柄,其实更像是一个遥控器。所以我们做了一次尝试,看是否能通过算法来模拟计算手柄的空间位置,经过多次的尝试与算法的调整,我们最终唯一能确定的是,当我将手柄从这里移动到那里,在虚拟空间中,手柄一定不会在这里,它可能在周围的任何地方。对此,我们也向Google询问看是否能提供算法或者支持来达到空间位置模拟,不过答案是“不行”,所以,最开始我们的游戏中的手柄是这样的。

在游戏中我们的手柄是以一把剑的形式存在的,而因为无法读取到空间坐标,所以我们将剑以剑柄中的某一点为圆心固定住,剑可以根据控制器的方向做一个刚体转动,当然这样体验并不自然,而我们对控制器使用尝试的突破,是来自一次意外。

在对施放的迭代中,我们提出了这样的交互,先按住APP键充能,我们手中的剑刃也会同步变色代表进度,当充满以后,就自动切换成下一段充能,代表另外一个技能,而这个时候,采用特定的触发方式就能释放这个技能。当时策划同学设计了一个类似扔回旋镖的技能,当充能到这个技能的时候,将手柄用“扔”这个动作发动技能,然后剑就会飞出去转一圈攻击敌人,最后回到我们手中。当我们实现了这个技能,我们发现效果很差,因为剑本来以一种很不自然的形式固定在我们面前,但下一秒种突然飞了出去,感觉很突兀,看起来就像出了个BUG一样。这时我们的策划同学提出,能否在这个技能的生效期间,尝试让手柄动起来,即使不准确也无所谓,反正用户马上就要把剑扔出去,并且剑飞回来的时候正好也可以重置手柄空间位置,也就没有误差积累或者位置漂移之类的问题了,我们一想这有道理,于是就在游戏中实现了手柄的运动。所以,我们最后实现的飞剑效果是这样的。

在释放的时候,我们的剑可以稍微有一些位移,当我们把剑扔出去的过程不到0.1秒,有没有对我们用户体验差距是巨大的,当实现了这个技能之后,我们发现我们犯了一个很大的错误,我们严重地低估了大脑的能力,比如这个手柄我从这里移到这里,可能在虚拟世界中,由于误差手柄才在这里,但其实没有问题,我们大脑会告诉我们“你再移点呗”,我们总会移动到正确的位置。虽然感觉可能有点笨拙,但并不是完全不可行的。这样做了以后,它会大大地扩宽我们交互的范围,按照这个思路我们做了更多的尝试。

我们会召唤出一条神龙,我们会控制神龙飞行轨迹,去攻击敌人,同时还有别的技能,比如说拉、拔、斩。回顾一下我们对控制器的探索,我们发现有时候在VR设计中的实际状况比我们单纯的理论更复杂。

最后一个议题,如何流畅地在VR中讲故事。

其实在VR中讲故事是一个很大的议题,而我们的重点在于流畅上面。为什么我们要从这个点来切入呢?因为我们在做一些VR游戏测试的时候,发现无论什么背景的玩家,都有可能问到一个问题,“我现在该干嘛” 并且这个问题会在后续的游戏进程中再次被提出,“我现在应该干嘛”,《破晓唤龙者》是一个连续叙事型的游戏,所以这个问题对于我们来说更加重要。我们分析发现,往往有三个原因:

第一,这个点没有做引导,或者以前的引导目标不足以维持到现在,他总会迷失。

第二,引导做的不好,比如我写了一大段字在这里,但我自己都不知道在写什么,用户更看不懂。

第三,我其实做了一个比较好的引导,但是用户没有看见,他看其他地方了,回过头也没发现引导。

经过我们大量的尝试和记录,最终收获到一个很重要的经验,冗余式引导。因为我们发现,如果我们设计的引导没有被玩家看到,那么玩家就很容易陷入到“我现在该干嘛?”的状态中。

要设计一个不会被忽略的引导,我们认为需要满足的最低标准是 “一种永久性引导,两种动态式引导”

虽然这个演示我们用了五种引导方式,但抽离一下,我们认为最重要的引导是如下三个:第一个闪光的NPC这个永久性引导;加机关发射的第一道光线这个动态式引导,以及解密物件中发射出来的光球这个动态式引导。虽然我们在引导这方面做了那么多的积累与原则,就像前面说过的一样,我们很容易就忽略了一个最基本的原则——“用户眼睛就是摄像机”,让我们来看一段我们相对不够好的设计。

这是一位玩家的视频,是一位大叔,完美地错过了我们想要投放给他的剧情,但是这位大叔虽然错过了很多东西,但是由于我们有永久性引导,他仍然可以继续游戏下去,不过,就会成一位浑浑噩噩的玩家,他不会知道这个NPC刚刚做了什么, 也不知道为啥自己为啥突然有了强大的力量,这对于叙事这个方面来说是很难接受的。对我们的损害也是非常严重的,因为这样一种剧情被玩家忽略掉了。

经过对这个例子的反思,我们认为这种有展示需要的情景,应该采取触发式引导,让玩家主动触发下一步剧情,这样可以更好地让玩家的注意力回到我们想要他注意的地方,也让我们的故事能更完整地传达给玩家。

这是我今天的分享,感谢Unity给我这个机会分享,也感谢我的团队,让我们一起乐在其中,谢谢。

 

如若转载,请注明出处:http://www.gamelook.com.cn/2016/12/276239

关注微信