查看原文
其他

Made with Unity | 120Hz高帧率、端游级超清画质,《新神魔大陆》手游是如何实现的?

Unity Unity官方平台 2022-05-07

自7月2日正式公测以来,完美世界游戏魔幻史诗MMO《新神魔大陆》手游的热度就不断攀升,不但开服仅1小时就登上iOS免费榜第一,且据七麦数据的下载量和收入预估,5天时间内其流水就应该已经破亿。

 

虽然这与游戏的超豪华宣发阵容直接挂钩:杨幂、陈小春、任达华强势代言,数十位主播扩大声量,再加上品牌联动、创意营销玩的飞起;但游戏本身的品质打磨也非常关键,这影响着玩家是否会继续留存以及游戏的整体口碑。据透露,《新神魔大陆》仅是针对主视觉人物希莉娅就有500次整身微调和迭代,游戏整体部分更是达近3000次调优。



游戏基于Unity引擎开发,其最大的亮点是在移动端实现了端游级别的超清画质表现。细腻的捏脸功能,优秀的场景渲染都让这个游戏更加可圈可点。那么这样一个海外国内都大获成功的国产魔幻大作,是如何开发出来的呢?我们特意邀请到了完美世界游戏《新神魔大陆》的主创团队,跟他们聊了聊。



01

游戏引擎优势


大型史诗魔幻MMORPG手游《新神魔大陆》震撼登场,细腻的角色刻画,给玩家最真实的战斗体验,视觉效果极佳。可以说下为什么选择Unity引擎开发这款游戏呢?



Unity引擎已经多次证明了自己是最擅长制作3D手游的商业引擎,资源驱动的引擎架构使得编辑器上手简单,拓展方便。Unity 2018默认的PBR材质工作流能够提供不俗的光照表现,Standard Assets中的后处理库覆盖了游戏需要的各种后处理效果。因此,无论从制作的角度,还是表现的角度,再加上项目组多年在Unity引擎上的积累,Unity引擎都是我们开发《新神魔大陆》手游的不二之选。


02

端游级超清画质


可以跟大家分享下新神魔大陆在移动设备上如何实现端游级别的超清画质表现的吗?



在移动端,延迟渲染管线并未覆盖大量机型,因此,我们在全平台使用前向渲染管线


在此基础上,使用PBR工作流制作场景和角色的资源,保证贴图的精度;光照方面,尽量遵循物理打光的原则,保证角色处于什么环境,就会受到什么环境的影响;后处理方面,整合了部分后处理的RT提升性能,对于不关键的RT进行降采样。


前向管线中大部分DX上可以使用的技术OpenGL上也能使用,只要注意资源把控,注意细节,关注敏感性能瓶颈(如带宽),就能在移动端实现不错的效果。



03

基于物理渲染的逼真铠甲


游戏中铮亮的铠甲格外引人注目,可以和广大的开发者分享下角色铠甲的PBR材质的制作流程吗?



因为本身是PBR的着色器,我们在制作中非常注意数值的正确性,以得到更好的效果。金属效果本身很吃环境,我们为了让其有更好的表现效果,在测试阶段多次修改反射的环境cubemap,经过一些尝试之后找到了满意的效果,也把最终的cubemap放到了材质制作软件(Substance)中,让其拥有和Unity相同的效果,方便我们的制作。


最终游戏中角色上的金属使用的几个Cubemap


之后不得不谈到后效了,尤其是HDRBloom效果对于金属的效果提升十分明显。我们针对金属单独修改的Bloom的权重,让金属的Bloom效果看起来更加饱满。




04

趣味捏脸


毫不夸张的说:捏脸已然成为了众多MMORPG游戏不可或缺的一部分。新神魔大陆中全自由骨骼让捏脸的可塑性大幅度提升,除此之外还有着多种细节化的调整,在骨架成型的技术上还能够微调五官,极大的提高游戏的可玩性,对此可以和广大爱好者分享下捏脸功能是如何实现的吗?


捏脸系统是个细节很多的系统,大致分为两部分,一个是修改模型,一个是修改贴图。


在修改模型方面,主流的方案大概有两种,一个是修改Mesh顶点信息(BlendShape),另一个通过修改骨骼的变换信息结合蒙皮修改脸部模型。综合比较二者的开销和效果后,我们使用了后者。

 

仅通过修改眉毛的骨骼就能改变角色的神态


通过定义不同捏脸特征影响对应骨骼的变换权重(平移旋转缩放),使得玩家能够自由地在预设的范围内调整脸部的骨骼,进而通过蒙皮修改角色脸部的模型。


修改贴图方面,主要通过记录不同贴花相对baseTexture的偏移和缩放,然后叠加上去即可,使得不同玩家的辨识度更高。


不同妆容,对应实时计算生成的BaseColor图


在这个基础上,辅以眨眼的动画,头部跟随相机的IK动画,百变的发型,时装染色等系统,让神魔大陆的每一个玩家都栩栩如生、独一无二。


捏脸系统最终效果图


05

炫酷拟真的后期效果


游戏中的各种后期效果,极大的提高了游戏的画质表现,其中可以跟大家介绍下游戏中景深效果是怎么在移动设备上实现的呢?


景深效果


景深对于MMO来说是一个不可或缺的效果,但是对于手游而言经常因为渲染深度的庞大开销而被放弃。


为此,我们研究了Unity新版本URP对于深度图的获得方式,借鉴这个思想,自定义ColorBufferDepthBuffer,在不透明物体渲染完成后将深度缓冲拷贝出来,用于实现各种各样的效果(如景深、水、深度雾、热扰动等)。


深度雾

热扰动

对于景深而言,我们继续调研了降采样和模糊的算法,主要通过中值滤波和高斯模糊实现,根据不同的机器配置修改滤波器的数量和模糊的次数。此外,借鉴GTA5中的处理,我们根据相机的水平角度修改景深的强度,使移动端获得了不俗的景深表现。



06

优质的企业技术支持


被誉为“阿尔法小分队”的Unity技术支持团队对项目有哪些支持,对项目有何帮助呢?


在《新神魔大陆》手游的研发过程中,我们和Unity技术支持团队达成了比较深度的合作。不必说微信群里每天不停的骚扰、Unity技术支持上的工单时间最长的可以追溯到三年前。在编辑器开发内存管理等方面,Unity为我们提供了极大的帮助,在Tex2DArray、MSAA等技术上,也通过沟通在游戏中有了完整的应用。


项目海外测试前,Unity提供的项目审查(Project Review)服务更是帮助我们定位到了很多性能瓶颈,为最后的上线提供了巨大帮助。再次深表感谢!



07

“羽羽”如生


游戏中华丽的双翅给游戏带来了更多的可玩性,可以简单的分享下游戏中人物翅膀逼真的羽毛的实现吗?



神魔大陆翅膀采用了类似头发的制作方法,使用面片加透贴的方式实现羽毛基本形状,之后拼接出整体轮廓和层次,二套UV烘焙整体AO增加层次感,配合各向异性还原羽毛本身质感,因为是整体染色,羽毛缺少边缘过度的柔顺感,之后我们给每个面片添加了边缘光,靠强度区分了内侧和边缘,进一步柔化了效果。



08

120Hz的超高帧率表现


新神魔大陆在部分手机上有120Hz的高帧率表现与其顺滑的操作性,团队在游戏性能的提升上下足了功夫,可以跟和大家讲解下整个项目是如何进行性能优化从而使游戏达到如此高帧率呢?


120Hz对于手游而言是一个巨大的挑战。在部分厂商的高配机型上,我们进行了特殊的定制化处理,把性能优化这个事儿抠地更细致。


模型上,需要尽可能地复用,同时对场景的可见区域中,不可见的模型进行剔除。通过精细化控制烘培,以及Instancing的技术,尽可能减少DrawCall。在降低DC的基础上,对模型使用LOD技术,降低远处模型的精度,减少面数。


对于不重要的光照效果,比如树干的IBL,进行剔除,让每一分性能都花在刀刃上。在场景制作上,进行一些Trick,将一些无法靠近的模型烘培成贴图,既保留光照的精度,又节约了性能。在逻辑方面,也需要控制同屏角色的数量,以及每个角色的外显(宠物、坐骑)等数量,在不影响玩家体验游戏的同时,提升性能。



09

批量制作的剧情动画


游戏中魔幻且精良的剧情动画,让整个游戏情节扣人心悬,让角色更加生动饱满。关于新神魔大陆剧情动画的批量制作这块,可以跟大家分享下吗?



由于项目使用的版本原因,《新神魔大陆》中并没有使用TimeLine来制作剧情动画(当然我们现在的新项目已经全部使用TimeLine了),但是整体的剧情编辑器的开发上,我们依然主要借鉴了TimeLine的思路,通过定义一个又一个的事件,让剧情动画中能做的事情越来越多。


项目团队中,有专门的剧情导演,通过故事的背景、角色的性格、场景的氛围等因素,辅以剧情中的单独打光,角色的高模和特殊动作,让剧情动画更加饱满,生动地交代了故事情节和发展。



10

更多精彩游戏


可以跟大家分享下Unity 开发MMORPG游戏的优势有哪些?我们工作室后期还有哪些Unity的作品值得期待呢?


使用Unity开发MMORPG最大的优势,在于Unity引擎的完整性。MMO中需要的各种系统,从全局光照到大地形,从动作状态机到各种各样Shader变体的编译和依赖,Unity中都有对应的系统来完整地实现。在Unity中开发MMO,不需要从头设计过于复杂的引擎系统,只需要聚焦于细节的展现,解放了开发者的创造力。


后续的项目,我们会涉及到回合制RPG、JRPG等类型的题材,使用了URP管线,能够实现更加丰富的光照和更加炫酷的后处理,希望大家多多期待。



《新神魔大陆》已经上线,快快下载体验吧。也欢迎大家在文末留言,分享你的试玩感受,留言获赞最高的朋友将获得《新神魔大陆》提供的豪华周边礼盒,截止日期为7月26日(本周日)。


文中提及的相关链接:


[1] Unity 通用渲染管线(URP)相关文档

https://docs.unity3d.com/Packages/com.unity.render-pipelines.universal@latest


[2] 立方体贴图 Cubemap 相关文档

https://docs.unity.cn/cn/2018.4/Manual/class-Cubemap.html


[3] Level of detail 多层次细节相关文档

https://docs.unity.cn/cn/current/Manual/LevelOfDetail.html


[4] GPUInstancing GPU实例化相关文档

https://docs.unity.cn/cn/current/Manual/GPUInstancing.html










长按关注

Unity 官方微信

第一时间了解Unity引擎动向,学习最新开发技巧



 每一个“在看”,都是我们前进的动力 


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存