平均建模超50000面的手游。
5月10日至5月12日,Unity全球开发者大会Unite Shanghai 2019在上海召开,期间诸多技术专家来到现场为开发者分享最新的技术和制作经验。
叠纸游戏技术中心技术总监张霁和美术总监柳丛,在大会期间进行了“闪耀暖暖技术分享:2D 到 3D 的进化与创造之路”的主题演讲,首次对外分享了这款拳头产品在制作时遇到的难题与解决方案。
以下为演讲内容整理:
大家好,很荣幸在Unite 2019大会中分享《闪耀暖暖》的思路与收获。
这次分享将由两个人共同完成,我叫张霁,从事游戏行业8年了。2016年初加入叠纸,参与《闪耀暖暖》的研发,今天我会给大家分享一些引擎自定义和工作流的内容。
另一位演讲者是柳丛,他有十几年的开发经验,之前参与过多款次世代游戏的美术研发,今天他将带来一些美术效果的研发心得。
关于《闪耀暖暖》,这是叠纸的第二款Unity项目,我们用的引擎版本最初是Unity5,去年升级到了Unity2018。《闪耀暖暖》是暖暖系列的第四代产品,也是叠纸的首款3D手游。
项目开发前期,我们经历了一些技术和风格上的迭代,起初它甚至并不是一款3D游戏。初期的尝试方向是基于spine来做360度旋转,后面很快转向3D方向。
这个时期我们更多考虑的是如何用卡通渲染还原2D暖暖,如何还原2D暖暖的线条,让3D线条有颜色粗细虚实的变化,这是当时做到的效果。在2016年下半年的时候,对卡通渲染的研究进入了一个瓶颈期,因为想做到期望的品质,要求非常的高,对移动平台压力过大。
同时3D线条的效果与2D暖暖仍然有较大差距。即使这个差距可以继续缩小,卡通渲染导致的画面过于相似也会让新作缺少独特的吸引力。
这迫使我们回到原点思考问题,换装游戏的根本究竟是什么?我们的答案是漂亮的衣服和多样的穿搭体验。我们将其拆分成几个技术点:衣服的极致细节、穿搭的自由度,以及艺术的传承和创新,这也是我们这次分享的目录。
首先是细节,暖暖系列的基石。3D游戏要想达到足够高的精度,制定合理的美术规格是重要的基础。
我们发现模型面数对性能的影响并不是很大,影响较高的是贴图的分辨率。这是使用1024和2048贴图的表现效果,以及相应的AB占用和渲染耗时。可以看到即使2048在镜头拉近的时候仍然无法达到我们希望的精度,而随着分辨率的增加,包体内存压力迅速增加,也不利于持续更新。
为了解决这个问题,我们使用多层UV和多层贴图拼合,这是达到的效果。精度有了显著的提升,相当于4096的贴图。这个例子里使用了四层UV,四层贴图,总的占用比1024的单张贴图还要小。
《闪耀暖暖》的包体目在是2G多,有一半是3D的容量,其中一半是贴图。如果把这部分全按4K重置,包体会达到10多G。接近一款3A游戏了。同时加载多张4K贴图更会直接撑爆手机内存。使用多UV其实也有巨大的代价,渲染耗时从6.85毫秒到8.67毫秒,增加了26%。
我们对UV的优缺点做了总结,除了精度和包体优势,还有一个好处,就是在制作完成后,有较大的后期调整空间。缺点方面,除了pixel shader负荷增加较多,多UV会导致贴图数较高。Unity默认采样器的数量等于贴图的数量,这样就要求控制单个材质中贴图的使用,不能超过16张。