本站

Unite 2019|《使命召唤手游》的引擎技术升级与演化

2019-05-27 17:35:30 来源:互联网 作者:未知 编辑:Wishing028

第1页:

展开
使命召唤手游
大小:2.10 GB类型:射击
扫一扫直接下载

  《使命召唤》无疑是今年腾讯手中最重磅的IP之一。在Unite Shanghai 2019大会中,腾讯天美J3工作室技术副总监郭智分享了《使命召唤手游》的引擎技术升级与演化。

游民星空

演讲内容

  大家好,感谢来到Unite 2019会场听我的分享。

  首先介绍一下自己, 我是郭智,2011年入职腾讯,现任腾讯天美J3工作室任职技术副总监、技术专家,负责整个工作室手游客户端的研发和一些管理工作。我有数十年从业经验,负责过不同品类项目的开发,用过一些自研和商业的引擎,做过几款FPS游戏,有比较深厚的积累。

  下面是我所参与过的游戏,主要涉及MMOG、FPS以及各种端手游,涉及的引擎最左边的一些自研引擎,第二款是用的Gamebryo,第三款是Unreal,后面涉及到Unity 5的一些项目的开发。目前Unity使用得比较多,也做过Unity项目的整个引擎升级。

游民星空

  2017年大家都知道是手游画面升级的元年,所以对于今天,对于引擎技术来说,我们首先要聊一聊画面。对于整个游戏的画面来说,我先要谈一下整个画面呈现标准的建立。

  相信各位以前从来没有听过什么叫做画面标准,说的都是要用哪几张贴图,怎么做,画面标准都是美术师去定的。 《使命召唤手游》的目标是打造3A手游呈现画面,所以我们必须探索普PBR时代画面呈现的最佳实践与升级。

  对于整个IP产品来说,首先是要定义制作的主基调。《使命召唤手游》开始立项的时候,我们为了性能经历过一段时间的纠结,纠结要不要使用Phong的模型,要不要使用最经典的手绘模式。

  去年我们对《使命召唤手游》的游戏画面做了重大的翻新,使用PBR去复刻整个主机的画面效果。只有能达到主机的品质,游戏才能上线。我们需要挑战的是达到主机画面的丰富度和还原度,去满足整个IP高端用户的主机情怀。

游民星空

  既然要制作PBR,我们要做的第一件事是统一制作管线和技术管线。

  对于制作管线来说,美术需要的所有的贴图资源都需要在线性空间进行计算,无论使用任何工具去制作任何贴图,都需要是线性的。

  对于技术管线来说,需要为引擎定义统一的渲染管线,也就是渲染管线是通过技术做Scalable的HD渲染管线,对于高配进行HDR的RT输入,对于低配来说为了节省性能不能做任何的后处理,就使用OnePassHDR的管线,使用Tonemapping在最终的Shader做相应的数学拟合,来拟合我们的目标曲线。

游民星空

  整个的制作管线和技术管线建立之后,我们再谈谈画面标准的建立。

  对于画面呈现来说,我们需要一致的画面标准,例如这个角色,每个像素我们都要定义得非常标准。在国际标准上,任何的3A游戏里面都要定义Material Model、Lighting Model、Shading Model。

  标准建立了,就可以用同样的语言说话。如果没有这个标准,美术同学会说我要这样贴图,这里面画点光上去,要做一些阴影的效果。统一标准之后,在团队里面,每个场合里面就不会再有分歧和异义,讨论起来非常简单。

  这些标准都是具有物理意义的参数和基于真实物理的定律,也就是遵循PBR的。还有一点是全场景物理一致的光照环境,也就是说我们要使用动态的光影+PBR+IBL。

游民星空

  下面介绍 Material、Lighting 和 Shader这三个方面,在《使命召唤手游》手游里面到底是什么样的。

  首先看一下Shading Model是什么?

  我们构建了完整的手机平台的PBR光照方案,用分级对PBR进行近似。我们提出4级的PBR的数学拟合,最高级肯定是给现在的835这些系列的高端的GPU去用的,3级就是在520这种机器,2级给更低端的机器,最后1级为那种兼容型是有问题的机器去使用,解决所有的兼容性问题。

  人物在高中低配都使用最完整的PBR方案,也就是说不会做Shader LOD的切换。直接光用了GGX Specular+Lambert diffuse,间接光用Cubemamp做GI Specular,用SH Probe做GI Diffuse。

  对于建筑,出于性能的考虑,低端设备会简化一些光照的部分,就是刚才说的Shader LOD。直接光会在远景用Shadowmask,直接光不会烘焙进光照贴图,直接光用纯动态的光照,间接光用的是IBL Cubbmap+GPU Bake的光照贴图。

游民星空

  再来看看材质。固有色、一张法线加上粗糙度合并的贴图、金属度+AO放在另外一张贴图。材质接受了光照探针的间接光照和一个直接光,以及来源于环境的间接光,最后得到整体的呈现,这就是Material Model 和Lighting Model。

游民星空

  现在整个团队所有场景就基本确定了。确定之后我们要讨论的是制作本身,对于《使命召唤手游》这样一个3A级手游里面的一些制作管线。

  相信可能对于一些程序或者开发者而言,其实不怎么在意制作管线。但是我认为所有的技术人员都需要了解美术,甚至策划的一些工作,这样才能把游戏制作好,所以我们来聊一聊对于3A级手游中的制作管线。

  我们来看看3A级手游制作中的核心因素。

  第一个是量产。所有的游戏现在最慢也需要3年才能制作完成,但是往往我们没有那么多费用或者时间,所以我们需要大量的外包。量产能够保证我们所有的外包、所有的人员、所有的开发、所有的美术标准都统一,才能达到量产。

  第二个是引擎。现在对于任何引擎都要做成我们认为一二年后所看到的最好的样子。

  最后一个是性能。无论是主机平台、还是PC平台、手机平台都是非常重要的,不可能让玩家玩得很卡顿,肯定要有最流畅的体验。

  量产、引擎、性能这三个因素决定了我们整个游戏的制作管线。

游民星空

  对于制作管线来说,使用流程与工具保证美术素材的正确性与合理性,原则有二个:

  美术素材输入一切都符合PBR标准。也就是说你不能画各种阴影,你的色彩,你的明暗不能大于我们所认为推荐的值范围。

  需要统一所有的生产规格和生产环境。这一切达到之后才能量产化。达到统一规格之后画面才是统一的,才是认为能够把握的样子。

游民星空

  PBR最初是欧美那边提出来的,初衷其实不是为了效果,而是为了量产。

  量产的策略其实有几个:一个是验证,我们能尽可能地验证。其次是文档,我们需要有各种各样的白皮书,各种各样的地方去阐述我们的思路。最后一个是科学,PBR诞生本身是工业化的产物,不是美术或者是艺术的产物。

  当一味强调各种各样的Hack,强调美术不同的制作方式,强调每个技术美术做各种各样的画面的雕琢之后,就不可能再科学,游戏就不可能可控,团队就会很失控,就不可能把游戏制作出来,也不可能有量产。

  所以如果要做PBR,一定要遵循“验证、文档、科学”这三个原则。

游民星空

  先谈谈验证,我们需要提供一系列的光照环境给美术做验证。

  现在的PBR生产,以前都是在Photoshop中完成的。但是在里面制作的任何贴图,都有可能是错误的,都可能让美术制作失控,所以整个场景制作需要符合三大要点:

  图形技术保证。在同样的一个PBR的光照环境,有95%以上是一致的。

  制作环境约束。美术制作者使用的渲染环境必须与标准的光照环境是一致的。

  验收标准约束。任何人讨论素材的本身的效果品质的时候,只能参考标准的光照环境。不要在3ds MAX或者是Maya中打开,或者是任何引擎或其它软件中打开。我们要在标准环境中打开,这样讨论才有意义。如果管线不一致,讨论的结果也会有差异。

游民星空

  验证的标准场景包含一个主场景,用于验证:固有色的明暗和色相、不同粗糙度表面的镜面反射情况、以及金属材质的镜面反射情况。

  六个辅助场景检验包括:室内外环境光源、暖色调环境下效果、强对比度的明暗光照、典型室外光照下效果或固有色是否太黑的环境。

  我们参考装修中的原则,还有各种各样抽象出来的环境,这样能够帮助美术在做各种各样的验证讨论的时候,有一些可以让他们去看到制作问题的场景。

游民星空

  有了验证环境之后要定义好详细规则的白皮书。这是我们的白皮书,包括:输出是什么样子、环境是怎么配置的、还有一些漫反射还有镜面反射率,基本是一些数学原理。

游民星空

  我们可以使用一些黑科技作为素材验证的参考工具,包括:屏幕校色器、照度仪、以及一些标准的色彩,我们通过这些参考去做校验。

游民星空

  我们要测量SH或者光照贴图的环境,以保证色调也是一致的,不至于美术在调各种各样的色彩甚至是光照值都是感性的认识。

游民星空

  我们需要给美术一个非常标准和标量的参考,这个标准能够保证在制作整个PBR的时候有所参考,有所依据。

游民星空

  最后才能呈现得到很好的画面效果。

游民星空

  我们现在谈谈《使命召唤手游》的引擎技术的沉淀。

  上面二个部分掺杂一些技术美术以及工程师的一些工作,下面是一些相关的纯技术人员的工作。其实就是颠覆或者说是去拓展整个Unity引擎之路,会作为未来的3A手游的引擎实践的一些标杆。

  首先我们需要补齐游戏里面所缺的渲染的东西,例如:头发怎么做、皮肤怎么做、角色怎么做,这些都要尽可能做补齐。

游民星空

  我们可能对于一些包含地形的地图或者是其它技术方案要进行拓展。

  地形方面,我们应该是在国内工作室中,使用Unity结合Houdini应用最多的工作室,我们有完整的组合工作流,还有不同地貌的DrawCall合并,还支持Vertex Fetch Texture,所以我们对地形系统进行了深度的改造。

游民星空

  烘焙使用了GPU烘焙。当地形非常复杂的时候,如果使用Enlighten,可能需要整晚的时间。当出现Bug的时候,同一天就会卡十张图,就会出现无限的加班时间。所以迭代时间非常重要。

  以前烘焙其实是需要4-6个小时,这是不能接受的。现在我们烘焙复杂度非常高的场景就只需要3-5分钟。

  我们使用GPU烘焙可以做更多效果的提升,计算正确性和参数科学性有了更强的依据。甚至我们可以用到一些AI技术对烘焙结果进行降噪和算法上的改造。

游民星空

  我们对烘焙进行深度的定制,也就是结合Houdini做了自动的部署。以前我相信所有美术人员这些光照探针是用手工一个一个去摆的,而且摆的纯属人体劳动力并且不准确。

  我们拓展了整体算法,使用程序化自动生成光照探针,让这些迭代更加快速,所有的这些光影可以看到其实是非常密集的,大家也可以做这样的尝试,算法不是特别复杂。

游民星空

  下面是对植被制作。我们现在很多场景都要用到很多的植被,以前生产方式都是美术逐棵逐棵制作,我们现在程序化去生产它们的AO和法线,这样原来二周的工作量等于节省到二天。

  这些都是很有意义的,省掉大量的制作成本和人力成本,也省掉很多外包的工作,所以现在无论制作什么,我们要积极地去拥抱整个PCG的技术,使用这些技术去助力我们的整个生产过程。

游民星空

  我们制作了很多的游戏,大家可以看到制作标准和美术规格也是非常高的,如何保证整体制作和引擎和性能能够一体化呢?

  我们所有程序和管线的制作都是要后期去进入的。例如:我们用了4张贴图都是零散的贴图,原来做的所有的都是零散的贴图,事后会对它的图进行整理和整合,这样避免一开始就定规范和美术去讨论贴图如何分配。如何去做这种性能的保证,对于美术来说他们根本不敏感或是会出现问题,所以对于技术人员而言需要考虑这一项。

  我们会使用一些Texture Streaming之类的技术,保证包括iPhone 6的机型也要兼容。所以整个制作过程都不会打乱美术的工作流,直到后续再做优化。我们会用很多Texture Atalas、Texture Streaming、PBR Shader Lod等一系列的技术,助力我们后续进入优化阶段也能做到性能的动态收缩。

游民星空

  最后一部分其实更加重要,就是在进行任何引擎的改动的时候,需要了解引擎技术的演化。

  最近面试了很多候选人,聊了不少行业中的大咖,与不同层次的开发人员进行讨论。我发现大家在做修改的时候,很多时候是没有依据的,或者仅仅是在阅读到某篇文章,突然发现一个技术就去尝试使用。

  我们团队非常注重引擎技术的演化,包括最重要的三个方面。

  第一个方面是引擎技术的移动端化。

  从2017年到现在,所有的客户端PC Game里面的技术在移动端已经可以使用,如果现在不能使用,相信未来2-3年也可以使用。

  现在流行使用线性空间的运算、PBR的渲染、做雾和大气的效果、会做渲染标准的一些更新。这些其实在端游就经历过了,但是现在手游里面再次使用,所以现在所有技术的本身都是端游往手游做演化。

  我们只是做相对的数学拟合和科学性的一些探索,所以在制作手游移动端化的时候一定要注意端游技术的移动端化。

游民星空

  第二个方面是引擎技术与工具的升级。

  引擎版本不断升级。我第一次使用Unity是4.5的版本,现在升级到Unity 2018,Unity 2019版本。引擎的不断升级对底层的改造是比较大的,例如:现在ECS,烘焙方式、以及各方面的技术也在升级。升级引擎的时候,你要想到使用引擎升级什么游戏,哪些最稳定技术的演化。

  现在的工具也在不断地发展。近几年使用Substance与Houdini这一系列的美术工作流程在开发团队中越来越普及,所以我们需要使用所有的工具做配合进行游戏的制作。

  芯片也在不断发展,会越来越快,基于现在芯片发展趋势可以做的事会越来越高。我们团队现在也在做一些PRT的动态GI的效果,我觉得这些将来都会变成可能。大家在一些高端平台上做这些特性,可以让你的游戏得到加分。

游民星空

  第三个方面业界一些前沿技术的推进,也会让整个手游更迈进一步。

  例如RTX光线追踪,基本上现在已经在讨论要不要使用RTX做光线的一些烘焙方案,我们使用过光线追踪的渲染技术,会发现其实它的理想效果会大有增益,可以做很多想不到的东西。

  还有过程化制作,我演示了很多过程化制作的方面,有些部分没有在这里讲,但是2018年开始,过程化制作已经深入到我们团队每一个制作过程,例如:植被立型、任务、AI、还有玩法本身都可以参与到过程化制作。

  最后一点是Machine Learning,可能有点对国内来说有点前沿。现在整个匹配算法还有后面的AI等方面,我们都会尝试使用Machien Learning做探索,这些所有的技术都会推动我们引擎技术不断演化。

  我们今天分享的主要内容就是这些,谢谢大家!

更多相关内容请关注:使命召唤手游专区

游民星空APP
随手浏览游戏攻略
code
开发:腾讯游戏
类型:射击
游民指数
loading
loading
喜欢
loading
不喜欢
玩家评分
loading
我要评分
    0.0
    攻略合集
    新游排行榜
    热点资讯
    精彩视频
    抢礼包
    游戏杂谈
    游民星空联运游戏