游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1705|回复: 0

The Coalition深入讲解《战争机器5》的技术(上)

[复制链接]

1万

主题

1万

帖子

3万

积分

论坛元老

Rank: 8Rank: 8

积分
36572
发表于 2019-12-23 13:27:13 | 显示全部楼层 |阅读模式
虽然《战争机器4》是The Coalition为这个畅销多年的系列制作的第一款作品,但直到第二作——《战争机器5》,这家工作室才真正把它变成了自己的孩子。我们采访了这家位于加拿大温哥华的公司的几位成员,听他们讲述《战争机器4》如何让他们打好基础,使他们能够达成《战争机器5》的一些重要目标,在前作基础上实现优化画面、新增开放世界场景片段、强化AI等改进。他们辛勤的工作最终结出硕果,收获如潮的好评,造就了迄今为止画面最优秀的游戏之一。

我们找到这家工作室,讨论了他们如何利用虚幻引擎和源代码访问交付出一流的后期处理效果、粒子和体积光照,同时又在Xbox One X上实现60 fps的帧率。说到如何在各种硬件平台上实现流畅而一致的性能,他们透露了他们如何巧妙利用HLOD之类的工具放宽对绘制调用的限制,从而开发出这款游戏细节丰富且多样化的环境。

考虑到《战争机器5》奉献了一些游戏史上保真度最高的角色模型,我们还和他们讨论了如何使用双瓣高光、反向散射和复杂的眼部渲染功能结合一流的动画技巧来提供栩栩如生的数字人类。The Coalition还谈到了他们为这款游戏开发系列中首次出现的开放世界场景片段时所遇到的一些挑战,并说明了他们是如何克服这些障碍的。


请看虚幻开发者日2019上的“《战争机器5》的视觉效果技术”演讲。

《战争机器5》是The Coalition开发的第2款《战争机器》游戏。与《战争机器4》相比,它的开发过程有什么不同?

战役模式设计总监Matt Searcy:《战争机器4》的工作重点是证明我们能够做出优秀的《战争机器》游戏。对我们来说,重要的是让游戏迷看到The Coalition继承了原作的世界观、角色和游戏性。在那个游戏中,我们下了很大力气让游戏性与《战争机器3》相当(有一些细微调整),并围绕那个核心体验设计新的战斗、敌人和模式。

从那个意义来说,《战争机器4》其实是《战争机器5》的前期制作。我们相信自己有能力做出优秀的《战争机器》游戏,而从我们收到的评论和反馈来看,我们显然达成了那个目标,而且社区想要看到进一步的提高。

对于《战争机器5》,我们一开始就决定要挑战期待。首先它必须是一款优秀的《战争机器》游戏,但我们的前期制作把重点放在探索新体验以及如何将它们融入《战争机器》上。机器人Jack、载具Skiff和“撤离”模式等功能把游戏的设计扩展到了新的领域,同时我们在其他领域也是从一开始就下力气搞新的技巧和技术。如果没有从《战争机器4》积累下来的基础和专业经验,我们绝对没有时间来探索这些。

《战争机器5》拥有各种令人折服的视觉效果,包括逐物体动态模糊、屏幕空间反射、精细景深效果、曲面细分等等。团队是怎样巧妙运用这些后期处理效果的?

工作室技术美术总监Colin Penty:我们对这些后期处理效果的运用是非常巧妙的,因为我们既不想在视觉效果质量上妥协,又希望在Xbox One X上保持60 fps。我们竭尽所能把Epic的UE4最新发行版中所有后期处理效果都集成到我们自己的UE4引擎版本中,其中新的光圈景深是我们完成的最后一个后期处理集成。

说到如何运用这些后期处理效果,通常在战役模式中,只要Xbox One上能跑得动,我们就会使用不带光泽的高质量SSR(PC上是有光泽的SSR)。对于曲面细分,我们创建了自己的自定义异步曲面细分着色器,基本上专门用于我们的白雪和沙砾材质。如果要让玩家周围的沙地和雪地动态地发生变形,为了做出逼真的效果就必须使用曲面细分,除非对网格体进行极高的预曲面细分。游戏中大量运用了泛光,但我们通常避免使用最严密的泛光核,因为它对GPU性能要求很高。我们使用了比《战争机器4》更多的摄像机曝光摇摆,让摄像机能够根据地图上明亮和黑暗的区域进行调整,不过我们还是很重视性能,如果游戏中某些区域的光照值范围不是很广,我们就会锁定摄像机曝光来提高性能。最后,在开发接近尾声时,我们还对整个游戏进行了一遍调优,以实现镜头光晕和镜头灰尘效果。

我们还将后期处理链设置为在下一帧异步运行,这也让我们能挽回一些性能。考虑到我们的后期处理通道因为始终以原生分辨率输出而开销高昂,这个举措是很有意义的。我们依靠UE4的临时上采样来缩放我们的基础通道/光照/半透明等等的内部分辨率,从而维持GPU性能。

1.jpg

《战争机器5》的光照效果令人印象深刻,其中使用了体积光源、体积雾和动态阴影。团队是怎样做到这些的?

Penty:我们的团队特别喜欢UE4增加的体积雾系统,只要有可能就会用上。我们创建了一个蓝图系统,它让我们能够在关卡中各处放置体积雾图元,我们会在GDC 2020更深入地讨论这个问题。我们的战役模式在Xbox One X上保持了60 fps帧率,同时还实现了体积雾质量,我对此感到自豪。

对于光照,我们决定避免使用我们在《战争机器4》中大量使用的静止光源。这使我们可以不再对阴影使用阴影贴图纹理,从而节省纹理内存,加快着色器渲染,也让我们可以显示完全实时的阴影。对于游戏中所有的光源,我们都使用了可移动光源,通过一些小微调,我们让可移动光源能使用Lightmass烘焙出间接数据。这都存储在我们的光照贴图中,它与阴影贴图不同,后者存储的是所有颜色GI数据,而不是阴影。

除了定向光源阴影级联,我们还使用了距离场光线追踪阴影来显示环境的阴影。在这种阴影中,光照系统使用网格体的距离场表示作为阴影投射器。因为玩家只有在一定距离上才会看到这种阴影,所以我们就可以让距离场表示不是非常精确,从而节省一些内存。

当然,你需要一个能干的光照团队把所有这些技术元素整合起来,提供华丽的视觉效果,我们的团队在这方面就做得非常棒。

这款游戏具有精彩的粒子效果。The Coalition在这方面是怎样做到的?

Penty:我们的视觉特效团队为《战争机器5》提供了一些了不起的效果。考虑到主机没有最强的CPU,而视觉特效又可能给CPU造成很大负担,这确实很有挑战性。为了绕过这一限制,我们使用材质编辑器创建了一个叫做Swift Particles的新视觉特效系统,它让我们能够使用顶点偏移,在不产生任何CPU开销的着色器中创建视觉特效。我们主要用Swift Particles表现环境视觉特效,【例如】雪、尘土和雨。

我们也尽可能使用GPU粒子,不过有些比较复杂的效果是挺难实现的。我们对UE4的粒子添加了一个“GPU生成”功能,使得粒子也能在GPU上生成。

为了控制CPU性能,我们的技术美术团队花了很多时间来处理视觉特效,确保粒子数量和发射器数量合理,并确保使用粒子LOD。为此我们不得不重新检视《战争机器4》中的角色和武器特效,并针对《战争机器5》重新优化一切,因为《战争机器4》是30 fps的游戏。

2.jpg

《战争机器5》中出现的角色面部巧妙地运用了次表面散射和双瓣高光。眼睛还使用了逼真的光线散射,进一步提高了保真度。The Coalition是如何制作出这款游戏中精美的数字人类面部的?

Penty:我们的角色渲染和性能也许是在《战争机器4》基础上较大的视觉效果提升之一。在《战争机器5》的开发伊始,我们就着手制作角色皮肤、眼睛和毛发。

对于皮肤,就像你说的那样,我们实现了双瓣高光,这大大提高了皮肤的“光泽”质量。我们还使用摄影参考优化了皮肤反向散射来确保真实。为了表现毛孔细节,我们还添加了细节法线。

对于毛发,我们创建了一个更好的工具,使用Maya中的Houdini Engine来生成毛发,使毛发更好地扎根。我们对毛发材质做了一些调整,但是保留了《战争机器4》所用的毛发着色模型,那是一种Disney Marschner着色模型。

我们在眼睛上花的时间也许是最多的。我们给虹膜添加了Paragon凹凸贴图偏移,将眼睛改为使用SSSSS(屏幕空间次表面散射),使它们在眼窝中显得自然多了(《战争机器4》没有对眼睛使用SSSSS)。我们添加了许多附加的眼部几何体,例如眼泪、泪腺和眼睛AO几何体,这大大提高了逼真度。作为最后的润色,我们添加了一种动态的虹膜Caustic系统,它是受Jorge Jimenez和Javir von der Pahlen的GDC 2013讲座启发而开发的。我们还重做了面部,大大提高骨骼和面部结构的准确度,这也对提升逼真度很有帮助。

美术总监Aryan Hanbeck:我们非常希望在《战争机器4》的角色面部基础上显着改进。游戏的最初几秒钟有Kait从噩梦中醒来时的面部特写镜头。我们组织了一个突击小组,专门负责项目中大部分的Kait面部,他们就使用这个特写镜头作为展示进步的试验场。每隔一段时间,我们就能看到显着的提高,并且对结果很满意,但是接下来我们又会看到他们做出了其他改进。好在每当Kait有了改进,我们就能把那些变化带到其他角色身上,所以最后所有角色的质量都有了飞跃。

《战争机器5》被称赞为可能是对HDR运用得最好的游戏。能详细说说工作室是怎样利用机器学习做到这一点的吗?

Penty:我们使用了Redmond的ATG组开发的机器学习算法来训练一个逆向色调映射器进行色彩空间转换。然后我们把这50%与Reinhard缓冲区混合,以实现最大限度的控制。

HDR背后的技术只不过是这套综合技术的一部分。例如,在内容端需要进行许多调整,以确保枪口火焰和天空盒处于正确的光度范围。我自己也需要进行许多调整,与美术总监和工程师们合作处理公开的参数,以确保HDR的外观正确。有时候经过调整,它在一个关卡里看起来“很棒”,但同样的调整值放到下一个关卡里观看起来就很糟糕,所以必须非常小心地设置HDR值,确保在效果华丽的同时又能适应各种情境且保留美术师的意图。

最后,我们还花了很多时间来确保有一个能代表各种光照情境的可靠校准屏幕。我们实现了在调整HDR滑块时隐藏校准图像的能力,同时公开一条代表HDR输出的曲线。最后,我们增加了控制HDR对比度和最大亮度的功能,这确实有助于玩家获得他们想要的画面。

3.jpg

《战争机器5》具有顶尖的动画和华丽的实时过场动画。能详细说说你们是怎样捕捉游戏中的精彩表演的吗?

Penty:我们改用了FaceWare来处理《战争机器5》的所有过场表演,这确实有助于提高保真度。当然我们还有优秀的动画师团队,他们在那些数据基础上实现了游戏中的表演。

我们的面部动画主要基于Blendshape,有作为“调节器”使用的关节,让我们能够修改Blendshape。我们整修了《战争机器4》的所有面部形状来提高面部动画质量,并重建了面部的压缩和扩张法线贴图。然后我们通过19个不同的皱纹部位驱动扩张和压缩法线贴图的混合以及面部血液流动。所有这些改进合在一起,再加上角色着色器的改进,确实让角色变得栩栩如生。

游戏中环境的精细和多样化程度是前所未有的。能说说你们是怎么设计它们的吗?

Penty:从技术角度讲,严格控制像素密度对我们来说很重要,因为我们从一开始就知道这个游戏将是Xbox One X上的产品,所以我们给游戏中的大部分物体添加了细节纹理通道。我们还下了很大力气提高环境材质在GPU上的速度,这样一来,虽然《战争机器5》是60 fps的游戏,我们也能把物体密度提得更高。最后,我们又结合了HLOD通道来放宽对绘制调用的限制。

Hanbeck:《战争机器5》拥有《战争机器》系列游戏中迄今为止最多样化的环境。因此,我们必须确保每个生物群落区都有与众不同的视觉效果特色,能给人留下持久的印象。我们从美术的角度对此投入了许多关注,确保尽我们所能地把颜色、色调和氛围表现得最好。

4.jpg

考虑到《战争机器5》引入了开放世界场景片段,能谈谈你们是怎么实现这些片段的吗?

Hanbeck:游戏中具有开放世界场景元素的较大空间给美术方面带来了重大挑战。既要保证性能,又要在场景中放入足够的物体来确保它有真实感,这两者之间的平衡是非常难把握的。最后我们不得不认清一个现实,那就是无法让物体密度达到我们在线性关卡里习以为常的那种水平。要点在于,当你乘坐Skiff以10倍于平时的速度穿行于场景时,其实不需要那么高的物体密度。我认为我们找到了合适的细节水平,使场景显得不是太空旷,有一定的可信度。

Searcy:加入更多开放探索区域的中心思想是改进以往游戏中“调味剂”般存在的载具部分,让玩家有更多选择。第一步是构建Skiff,它是一种新的风力载具。它本身驾驶起来就很有趣,这是关键。然后我们对开放区域进行了许多迭代,设法找到合适的探索、距离速度和地形。最后一个环节就是Jack的升级。设计了为Jack找零件的支线以后,我们就能打造一些有趣的战斗,奖励玩家可以影响游戏主线的元素,让玩家能够随心所欲地控制探索和打主线任务的节奏。

Penty:总体而言,我对于我们在保持60 fps的前提下达到的大地图区域视觉效果是非常满意的。是美术、设计和技术之间的密切协作确保了Xbox内存不过载,把物体突然出现的现象减少到最低限度。由于视线关系我们对开放世界场景片段大量使用了HLOD系统,还有虚幻的地形系统。美术师先在World Machine中生成地形高度图和纹理图,然后将它们导入虚幻引擎中的地形系统,在其中继续雕刻。所有地形着色器都按照尽可能高的几何体密度运行曲面细分着色器。开放世界场景区域也在很大程度上激励了我们放弃烘焙的阴影贴图,改用实时级联和光线追踪距离场阴影,因为我们实在不想为这些巨大的空间存储阴影贴图。

《战争机器5》具有令人折服的破坏设置,包括可破坏的掩体和会破裂的冰面。工作室是怎样在游戏中实现这些的?

Penty:与我们对粒子的研究相似的是,我们发现可破坏的掩体在《战争机器4》中造成了很大的CPU开销,为了在Xbox One X上达到60 fps,我们必须解决这个问题。我们将自家的Swift Particle System扩展为Swift Destruction System,它本质上就是使用材质编辑器构建的基于顶点偏移的系统。我们将Swift Destruction与我们的Houdini Engine破坏工具紧密集成,后者会烘焙出模拟到UV集所需的所有数据(例如:破裂点)。为了做出破碎的冰面,我们用一个顶点着色器设置实现该效果,它会识别冰面是仅仅出现裂缝还是完全破碎。然后我们必须使用设计手段来设置一个蓝图,在冰面达到破坏阈值时正确地更新玩家碰撞。我们还使用了Alembic缓存模拟来驱动在Houdini中离线创建的顶点流送破坏。这非常适合用于游玩空间以外的预设破坏事件。

5.jpg

更多访谈内容,请关注下期内容:The Coalition深入讲解《战争机器5》的技术(下)。


作者: Jimmy Thang   
来源:虚幻引擎
原地址:https://mp.weixin.qq.com/s/bRKMGIGH72sbMfKefjO4Qg

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2024-3-28 22:25

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表