有史以来最炫酷的VR游戏做到完美的街机体验,这游戏封神了

《机械重装》可以说是目前最好的VR射击游戏。Oculus Rift在今年初祭出了杀手锏大作《机械重装(Robo Recall)》,这款游戏不仅向玩家完美的诠释了Oculus Touch到底能实现什么功能,还充分地展示了玩家在VR环境中扮演一名枪手时,到底应该有怎样的姿态。这款游戏的前身是名为《Bullet Train》的Demo版本,由Epic Games采用虚幻4引擎自研,由于反响极高,Epic Games决定为这个Demo制作完整版的游戏《机械重装》,并在Oculus独占发售。《机械重装》在外媒有着极高的评价,不仅有IGN给出8.5的高分,甚至有媒体认为“它提供了近乎完美的街机式VR体验,唯一的缺点是Oculus Touch卖得太贵,特别是当你还要算上电脑钱的时候,当然这并不是游戏的锅”。之所以能得到这样高的评价,原因在于《机械重装》能带给玩家极其爽快刺激的沉浸体验,特别是游戏元素与玩家产生的交互,让人欲罢不能,比如下面这些操作:

将《机械重装》看作VR游戏的标杆一点都不为过,你甚至值得为了这一款游戏,置办一整套的Oculus设备。从美术设计的角度来看,《机械重装》解决了绝大多数影响玩家沉浸感的问题,在人设、特效、UI细节、场景、建模、光效等几乎每个方面,都有着完全不同于传统游戏的设计理念。在此前举办的2017年虚幻引擎技术开放日中,Epic Games艺术总监Jerome Platteaux分享了他们在设计《机械重装》时的理念,试错过程,以及经验总结,以下为演讲内容整理。大家好,我是Epic Games的美术总监,今天想分享一些《机械重装》设计中的重点,分为几个主题:什么是《机械重装》;它的来源;项目规模;机器人和武器的设计;游戏场景设计;光效设计;以及美术优化。不到20人团队,12个月做出一款3A级VR大作

《机械重装》是一款VR游戏,在今年的GDC上刚刚公布,它最早是在2015年,我们的12人团队,花了十个礼拜为Oculus Touch制作的一款技术测试Demo《Bullet Train》。

由于当时的人力和成本有限,制作周期也短,所以在制作的时候我们用了Epic项目中的资源,以及市场上购买的部分资源,我们也做了一些新的环境以及场景,比如说火车站和火车内部。我们也从这款Demo中学到了不少经验。

先说好的方面。首先我们大概知道了预算的范围,要跑到90帧,每个摄像头视角中,至少需要对150万个多边形绘制1000次。另外我们发现,场景设计的时候如果有重叠的元素,那么它带来的视觉差,能够让玩家在VR里产生得到很好的深度感。还有一个就是尺度的感受在VR里是非常重要的,而且当玩家沉浸在里面的时候,他们对距离以及东西大小的感受会非常敏感。反射在VR里面的效果看上去非常的好,能让整个场景看上去更加丰富。比较亮的环境可以在VR里面有比较好的效果,能避免头戴显示器镜片产生的眩光效果。最后,在VR里的交互非常有趣,比如抓东西、拿东西等等。

不好的方面。首先是预算不够,我们的资源很少。其次,我们做了一些反射效果,但并不是所有地方都有。所以我们又用模拟反射效果的方式来代替,但它的实用性不高,而且很容易穿帮,并不解决实际问题。

另外,我们用浮点阴影做了一些动态影子,但它的作用也跟之前的假反射差不多,所以并不能到处使用,我们需要研究更多的解决方法。

最后,《Bullet Train》里的角色看上去太像人类了,VR给人的感受会很真实,所以像这样对着人打的体验并不好,这种设计在VR里的容忍度很低。几个月以后我们就开始正式制作整个游戏,耗时大概12个月,团队规模也很小,只有15个核心成员,部分内容外包。游戏的最低配置是在i5的处理器和nVida Gtx970显卡,画面也要在《Bullet Train》的基础上做出很大的提升,毕竟它是我们的第一个VR游戏。

设计理念:让玩家体验20分钟的超神时间接下来讲一下游戏的核心设计,用来定义这款游戏到底是什么样的东西。首先我们想让玩家感觉自己就是救世主,大家指望你改变这个世界或者怎么样。而且还要是一个大坏蛋。

其次,我们要营造出一种街机游戏的感觉,也就是节奏非常快的,不断变化的、色彩丰富的体验。

另外,在环境设计上用一些比较接地气的场景是非常好的选择,大家熟悉的地点比较容易理解。

然后,我们既然要针对Oculus Touch的特性来做游戏,就必须做一些别的设备上无法体验的内容。

最后,游戏的时间最大就限制在20分钟左右。游戏的节奏必须非常紧凑,且有意义。

玩过以后,大家就可以摘掉头显好好休息了。

机器人设计:不仅要种类多,还要看上去很找打接下来讲一下机器人的设计。首先,就像刚才讲到对着真人射击的感觉非常差,所以我们设计的机器敌人不能太像人,也不能像人穿着盔甲,必须一眼看上去就知道它是纯粹的机器人。

其次,机器人的色彩也要更加丰富,配合有趣的音效、酷炫的动画特效,来保证游戏能给人轻松的体验。

然后,敌人看上去要像一些坏家伙,让你有冲动去射他们,而不是那种不找打的乖宝宝的形象。

另外这些机器人要各式各样的行动规律、尺寸,以及速度。因为VR中,人的头可以随意转动,来很好地判断这些差异,所以当不同种类、大小、速递的敌人从各个方向上向你冲过来,给人的感觉就非常的刺激。

再来看具体游戏中每种机器人的设计。行走机器人(The BipedBot)。游戏中最主要的机器人,尺寸比人类稍微大一点,看上去比人稍微强壮一点,外形的轮廓接近人型。

它可以表现出大部分的情感,还具备服装的特点,同时它有多种姿态,加上不同颜色的衣服,玩家就可以很快识别出它是什么样的机器人。

爬行机器人(CrawlerBot)和无人机(DroneBot)。爬行机器人相对小一些,但也不会设计的太小,因为在一定的距离内,玩家要能够射击到它们。我们通过反复设计和测试,来决定它们具体的大小。

它们看上去也有点恶心,有点可怕,像蜘蛛一样,可以直接跳到你的脸上抓你。

然后,我们用去掉腿的爬行机器人模型为基础来设计无人机。

大型机器人(BigBot)。它需要看上去比较大,但实际上又不能太大,设计的过于大会降低玩家对尺度的感觉。所以它从远近距离看上去都要比较合适,近的时候觉得很高,远的时候可以看到他。

而且大型机器人的行动比较缓慢,玩家还可以控制它,抓住别的机器人扔来扔去。

快速机器人(FastBot)。它的尺寸比人稍微小一些,但是行动速度非常的快,并且会瞬移,外观看上去更像女性。

飞行机器人(FlyingBot)。这个机器人就像一个炮台,能发射大量的火箭弹,它在地面上的行动非常缓慢,但在天空中特别灵活,而且它也是所有机器人里最丑的。

最终BOSS。因为时间的关系,所以我们并没有设计新的原画,于是重复使用了《Bullet Train》里的形象。

把这些大、中、小尺寸,行动速度有快有慢的机器人概念原画,先制作成原始模型,放在一起能看到它们的区别。

先做原始模型的好处有很多:1.可以进行快速反复的修改,觉得哪里不好都能很快调整;2.可以清楚看到整体比例的关系,刚才说到了VR里面尺寸和比例是非常关键的,所以能在VR环境下不断地去察看,不断地去调整;3.可以在VR环境下找到最显眼的部分。比如人眼最容易看到机器人的这个部位,我们就在这个部分增加更多的细节,强调表现力;4.可以找到有交互的点,比如大型机器人的背后有一个把手,玩家可以抓住,然后操控它;5.一旦我们做好了一个原始模型,设计师和动画师就可以基于它来进行相应的后续制作。6.原始模型应当和用到游戏当中的最终模型资源量相近,这样可以在替换掉资源的时候,避免一些意料之外的表现错误。

可以看到,从最终的原始模型开始制作游戏模型资源时,只需要以前者为基础再做高模就可以了。然后使用第三方面的工具来进行制建模,最终《机械重装》里的模型是在3DSMAX里做完的。

然后我们给每个角色模型设计了大概两到三套服装,只用了两到三个不同材质,这样做能尽量减少模型的数量。

然后利用Substance painter工具给服装绘制贴图,然后共享给所有的机器人模型,因为考虑到游戏性,我们还需要做一些破损、褶皱的质感。

下面是一些引擎中的资源示例,以及最终的模型细节表现。

这是大型机器人顶部的细节,因为玩家可以操控他,所以在顶上额外加了很多的细节。

武器设计:必须考虑到实际设备和玩家体感然后我们来看武器的设计。首先我们不想让武器看上去太真实,就跟射真人不好是一个道理,我们最终决定在玩具枪和真枪之间找一个平衡,用这种风格的枪在VR里面给人的感受是最好的。

同时枪械不能太大,因为在VR游戏中,玩家获得的重量感只有手里的手柄那么大,手感也就这么重,如果看上去很大手柄却很轻,这样给人的感受也不是很好。

另外就是只做单手枪,而不做双手枪,因为双手枪会给人产生两个手柄有物理上连接的感觉,但事实上是没有的,所以现实里的东西尽量少去模拟,设计要完全跟手柄的体感匹配。

建模和制作的流程,也跟刚才的角色模型部分一致。

手的制作方面,我们没有定义它是机器人还是人类,玩家觉得它是什么就是什么,我们不多做限制。

但是我们没有做手臂,原因在于游戏中玩家的动作还是很复杂的,比如可以拉扯,可以把别的机器人扔掉,这也导致了相应的动画也很复杂。所以在我们没有很多时间或者很好的解决方案的情况下,就选择尽量避免去做一些额外的尝试。

场景设计:降低理解门槛,极其注重细节再来看场景设计。设计理念如刚才提到的,要基于现实地点来设计。首先要看上去比较接地气,其次是要有正确的比例关系,最后是能很清楚的找到参照物,而不是像一些完全架空的未来式设计,有非常大的尺度和比例关系。

在基于现实的基础上,我们还要加入一些未来的元素。目的主要在于,首先确定世界观的时间点,告诉玩家这个游戏大概是发生在什么时候;其次是给游戏性增添一些用途;最后是让场景看起来很酷。

当我们具体设计的时候,需要测试不同的环境,来感受什么设计才是可取的。事实上我去旧金山拍了很多的照片,使照片建模的方式,还原出了当地的环境,但质量比较粗糙。

好处是在于,对比灰盒子式的设计,这样能够更清晰地把握住尺寸和比例的关系,然后我们继续用这些资源去拼接整个城市。

这又会面临一个问题,需要多少种不同的建筑才能够让玩家感受到一整个复刻的城市?结论来看,我们需要大量的不同建筑。

在有了大量建筑的基础上,我们还需要考虑,当实际把机器人放到场景里以后,它们看起来又是什么样的。可以看到,最初的街道非常空旷,所以我们需要更多的道具和装饰,比如车、垃圾筒等等。

又因为团队很小,所以我们进行了一些外包。事实上我们只外包照片上有的内容,因为照片能准确提供素材,减少不必要的迷惑。我们对外包的要求有几点:一是让部分场景模块化,可以拼接;二是每个模块不超过三万个点;三是在Substance painter工具里设计好1-2套场景;四是窗户要用特殊的材质;五是设计一些场景道具。

外包有利有弊,好处是由于Epic中国在控制品质和流程,所以返回项目组的外包内容看上去很不错,另外因为分担了工作,所以我们的团队也可以很方便的进行人员调整。而有一些内容是不能外包的,比如说优化。

可以看到这些是我们最终的场景效果:

下面讲一些小的技巧和窍门。刚才说到窗户要用特殊材质,是因为玻璃必须透明,让玩家看到里面的空间,但实际这么做又非常耗费资源。所以我们利用特殊的材质,从不同的角度看这个材质,会显示出不同的画面内容,从而模拟真实的室内透视效果。

每个窗户只有一个面,赋上这个材质后,通过摄像机和面的夹角来计算UV,使贴图在不同角度看到不的面,来模拟室内的效果。

另外在VR环境当中,场景模型的细节会非常引人注目,所谓我们加了一些细节的法线贴图来强化这些细节。特别是我们的游戏可以抓东西,玩家抓起某种东西的时候,物件模型就会离摄像头非常近,可以看到很多材质细节。

另外一定要在VR环境下检查场景的粗糙度贴图,在VR里人对这种物体表面的光泽,比不在VR里要敏感的多得多,所以非常注重物体的小变化以及光泽反射的变化。

光效设计:丰富的光效能带来更多游戏性因为场景很大,想要在VR设备中跑得流畅,我们首先是采用了静态的光源,来提供一个固定的直射光。

其次是使用了反射捕捉的处理,并打开对地图的光照混合混合选项,主要能使某些区的反射光被屏蔽掉(比如车底过亮),看上去更加真实。

此外我们还加入了一个新的平面反射功能,去表现非常精确的平面反射,这些平面的反射消耗的资源非常大,所以必须确保非常需要的地方,才有选择性的使用它。

除了选择性的使用,我们还把这些平面反射在不同的区域独立开来,这样玩家在不同区域中进行瞬移或移动的时候,系统就可以自动开关这个功能,只在玩家的区域打开,在别的区域关闭,减小系统消耗。

对于角色的光照,我们使用了胶囊阴影的功能,这样不论是直射光照,还是非直射光照,都能很好的表现出角色的阴影,让他看起来的确是站在地面上。对于快速移动的角色,我们还可以打开“Single Sample”的选项,来更好的表现他的阴影,避免阴影残留的现象。

值得一提的是我们使用了光照方案的功能,来快速地切换同一场景的不同光照效果。在过去,同样环境要表现白天、晚上两种光照情况,可能需要复制这一整个关卡,然后给予不同的光照设计,但借助光照方案的功能,我们可以让关卡和光照分离开,并选择性的进行组合。只不过现在这个功能只能在同一时间激活一种光照方案,不能进行实时混合,不能从白天直接变成晚上。

但毫无疑问的是,利用同样的一些场景资源,我们也可以生成非常多的光效变化,光暗效果的差别,也会带来更多的游戏性和游戏体验。

美术优化:从头到尾都要做的事情最后我们来看一下美术优化和抗锯齿的问题。我们采用的是前置渲染的方式,它的好处在于整体渲染的会更快一些,借助Msaa(多重采样抗锯齿)的方式,还能渲染出更清晰的图像效果。当然前置渲染也存在一些不好的地方,比如Msaa在渲染大量亚像素几何图形时,它的处理速度非常慢。除此之外,物体中间部分的高光,是Msaa无能为力的。

所以问题来了,你应该从什么时候开始优化你的VR项目呢?从一开始就优化,必须时刻维持住一定的标准,否则团队就会很被动。

比如你必须时刻保证90帧的运行效果,否则团队在测试游戏的时候,就会运行缓慢。

有的时候,非常快速但比较粗暴的优化也是好的,这能让你的成本控制在预算当中,之后可以再做一些细节的调整,来报纸画面的品质。

具体来说,我们可以用到项目优化的功能,下面是《机械重装》在打包输出的时候采用的渲染参数,基于屏幕的、空间的反射关掉,关掉动态模糊等等,所有的参数在这里可以做参考。

点大图看得清楚一些场景的优化方面,最大、最起效的方法,也就是做距离剔除(Distance Culling),然后不能剔除的就做LODs。做LODs的一种方式是通过Quad Overdraw视图来查看,可以明显看到Msaa在抗锯齿时产生的消耗量,红色的部分消耗量更大,对比图的下面一张图是做了LODs处理的,可以看到它能大大减少这种消耗。

另一种方式是减少模型锯齿量,这也是为什么在《机械重装》里很多窗户的边框都做成了贴图,如果换做模型的话,面数变多,就会产生实打实的消耗。

此外,还可以通过HLODS功能来优化场景,它的作用就是会把在地点附近、周围的一些多边形,自动的聚集在一起,来减少材质球的数量,降低消耗。

所以原理上看,合并的同时除了减少材质球的量,还可以直接减少材质绘制次数,比如Merges功能。

下面讲一下关于锯齿的解决方案。默认情况下,虚幻4引擎使用的是TAA(Temporal AA)方案,它是非常好的抗锯齿的方式,但会让图像稍微变的模糊一些,特别是在非常大的画面和非常低的分辨率情况下,模糊的效果会更明显。VR环境下这两项都占到了,所以用这种模式后,模糊效果会被夸大。

渲染时,如果使用Msaa那么对高光是无能为力的,大家可以从图像上看到高光的锯齿。要解决这个问题,我们可以使用它的法线贴图来取得模型转折处的信息,用这些信息叠加到它的粗糙度贴图上面,来降低转折处的粗糙度,粗糙度降低了它的高光就会减少了,看上去高光就比较弱了。

下图就是处理后的样子,效果非常明显。

同时Epic也给开发者提供这些技术的演示,大家可以到我们官网上下载和研究。

最后,除了我上面提到的这些内容,还有大量的问题可以探讨,比如在VR当中,UI是个非常大的话题。音效也是如此,VR给予玩家的是三维空间,所以我们也做了一些动态的音乐来体现三维的效果。还有VR的叙事也是值得探讨的点。

其实这些内容我们都会在刚才提到的网站上公开,给开发者演示如何去制作,分享一些经验。在这里我就不展开说了,感谢大家。

(0)

相关推荐