④腾讯是如何利用Unity引擎技术实现首个3A级手游画面的
2019/05/152058 浏览版本爆料
首先我们需要做的是,补齐游戏里面所缺的渲染的东西。比如说头发怎么做,皮肤怎么做,角色怎么做,这些都要尽可能做补齐。对于一些包含地形的地图或者是其他技术方案可能要做拓展,比如说到地形,我认为我们应该是在国内工作室中Unity结合houdini应用最多的。我们有这个组合的工作流,还有不同地貌的Drawcall合并,并且支持Vertex fetch texture,我们使用地形的时候,我认为是现在手游最佳的地形方案,所以我们对地形系统做了深度的改造。

接下来是我们的烘焙,烘焙使用了GPU烘焙,当你的地形非常复杂的时候,如果用Enlighten就等着通宵吧。现在我们烘焙复杂度非常高的场景只需要3-5分钟,以前烘焙需要4-6个小时,这是不能接受的。出现bug的时候发现同一天就要卡十张图,会出现无限的加班,这个迭代时间非常重要。用GPU烘焙可以做更多的效果提升,计算正确性和参数科学性有了更强的依据。甚至于可用到一些AI技术,对烘焙结果做一些降噪和算法上的改造,所以我们这边用了整套GPU的烘焙方案。

我们对烘焙做了深度的定制,也就是说结合houdini做了自动的部署,以前我相信所有美术人员这些Light probe都是用手工一个一个去摆的,摆的纯属人体劳动力,并且不准确,所以我们拓展了整体算法,然后使用程序化自动生成Lightprobe,让这些迭代更加快速。所有的这些光影可以看到其实是非常密集的,我相信各位如果要做这种游戏的时候,也可以做这样的尝试,算法不是特别复杂。

然后说植被制作,原来完全是用美术做制作的,现在很多场景都要用到大量植被,以前的生产方式其实都是美术逐棵逐棵地做,我们现在程序化地生产AO和法线,这样原来两周的工作量等于节省到两天。这些都是很有意义的,省掉大量的制作成本和人力成本,也省掉很多外包的工作,所以现在无论制作什么,我们都要积极地去拥抱整个PCG的技术,用这些技术助力整个生产过程。
我们生产了很多很多的游戏,大家可以看到制作标准和美术规格也是非常高的。如何保证整体制作和引擎和性能能够保证一体化呢?我们所有程序和管线的制作都是要后期去进入的。比如我们用了4张贴图都是零散的贴图,我们肯定要有自己的一些技术。美术原来做的所有的都是零散的贴图,事后会对它的图进行整理和整合,这样避免一开始就定规范和美术讨论我的贴图如何分配,我如何做这种性能的保证,对于美术人员来说,他们根本不敏感或者是会出现问题,所以对于技术人员本身来说需要包括这一个。

此外我们会用一些Texture Streaming之类的技术保证包括iPhone 6的机型也要做兼容。所以整个制作过程都不会打乱美术的工作流,直到后续再做优化,我们会用一系列的技术比如说Texture atalas,Texture streaming,PbrShader的shaderlod等,这样后续进入优化阶段也能做到性能的动态收缩。

最后一部分更加重要,就是做引擎的改动的时候,需要了解引擎技术的演化。最近面试了很多候选人,聊了很多行业里面的大咖,对不同层次的开发人员做讨论。大家在做修改的时候,我觉得很多时候是没有依据的,可能是在翻博客时突然发现一个技术我就用。在我们的技术里面。我们团队非常注重引擎技术的演化,包括最重要的三个方面,一方面是引擎技术的移动端化。从2017年到现在,可以认为所有PC Game里的技术都可以在移动端使用了,如果现在不能使用,我相信未来两三年也可以。比如现在流行使用线性空间的运算、做PBR渲染、做雾和大气的效果,会做渲染标准的一些更新,这些其实端游我8年前就做过了。但是现在手游再次使用,所有技术都是端游往手游做演化,我们只是做相对的数学拟合和科学性的一些探索。所以大家做手游移动端化的时候,一定要注意端游技术的移动端化。
另一方面是引擎技术与工具的升级,引擎版本不断升级,我第一次使用Unity的时候是4.5的版本,现在这个游戏基本上可升到五点几。这些引擎的不断升级对底层的改造是比较大的,比如现在Unity ECS,各方面的烘焙方式、各方面的技术也都在做升级。所以升级引擎的时候你要想到用引擎升级的那一个游戏,做一些你自己最稳定的技术演化。再加上现在的工具也在不断地发展。近几年其实用Substance与Houdini,之后这一系列的美术工作在团队里面普及越来越明显,所以我们需要使用所有的工具做配合进行游戏的制作。
最后就是芯片的发展。芯片发展会更快,可以认为现在芯片可以达到了五六年前渲染的一些量级,只是功耗没有跟上来而已。所以我们基于现在芯片发展趋势可以做的事会越来越高。我们团队其实也在做一些PRT的动态GI的效果,我觉得这些将来都会变成可能。大家在一些高端平台上做这些特性,可以给游戏加分。再加上现在业界一些前沿技术的推进,也会让你整个手游更迈进一步,比如说RTX光线追踪,现在都在讨论要不要用RTX做光线的一些烘焙方案,我们自己用过光线追踪的渲染技术,发实它的理想效果会大有增益,可以做很多你想不到的东西。
再加上过程化制作,我前面其实演示了很多过程化制作的方面,有些部分没有在这里讲,但是2018年开始,过程化制作已经深入到我们每一个制作过程——比如说植被立型、任务、AI还有玩法本身都可以参与到过程化制作。再加上最后一点可能对国内来说有点前沿,就是Machine Learning。现在整个匹配算法还有后面的AI,我们都会尝试使用Machien Learning做探索,这些技术都会推动我们引擎技术不断演化。