9月25日,云畅游戏技术总监刘晨受邀出席2021北京国际游戏创新大会(BIGC),并在大会引擎专场中分享了《鬼泣:战争巅峰》的高质量开发历程。
刘晨从角色、动作、关卡、AI等多个维度讲述了《鬼泣:战争巅峰》团队如何从角色、动作、关卡、AI等多个维度在移动设备上追求主机级3D动作游戏品质。
随着市场环境和用户需求的变化,主机级手游的建立逐渐成为一种趋势,整个手游技术也在不断的向着3A化发展,云昌游戏在该领域有着一定的实践和积累,相信其技术负责人的分享能够给行业带来一些启发。
为了优化阅读体验,对以下分享内容进行了调整:
大家好,我是云昌游戏的刘晨。
《鬼泣:巅峰之战》于今年6月在国内上线,是今年4月苹果春季新品发布会上亮相的一款高品质3D动作手游,公测后受到市场热捧,也取得了不错的成绩。
我们的项目主要有四大亮点:
由于移动终端性能的限制,主机级别的手游开发是整个行业的共同课题,所以,今天我就以此为主题,分享一下我们在《鬼泣:巅峰之战》中做出的一些尝试和技术解决方案。
我的整个分享分为六个部分,包括五个技术点的分解和一个总结:
不同于“网红脸”的角色制作
为了还原原作IP的基本质感,我们需要在《鬼泣:战争巅峰》的开发过程中不断优化建模,在保证高帧率的同时,我们会遵循PBR流程为手游打造角色,并且对头发、皮肤等部位使用了一些特殊材质。
对于头发,我们为了还原原作中人物发型的流畅质感,使用了2次pass进行渲染。但由于移动端的性能限制,我们还需要控制头发的三角形数量以降低性能消耗。因此,我们选择将头发分为三层来制作模型。
第一层为内层,是比较固定的一层,用于防止渗透,其质地呈不透明状态。
第二层是外层,用来塑造人物的基本外观,因为需要还原人物的头发纹理,所以这一层的质感会更加丰富。
第三层是修改层,用于修改外观,添加细节。
通过这三层的组合,我们基本可以展现出角色原来的发型和发质。
人物皮肤的制作,我们采用了预先整合的皮肤次表面散射LUT图的SSS效果,在色彩表现上,我们尽可能的展现出写实、硬朗的风格。
一方面是为了还原原版《鬼泣》的暗黑哥特风格;另一方面也是为了区别于市面上那些“小清新”、“网红脸”的人物造型。
为了让角色融入场景时显得更加立体、生动,我们在场景中预设了一个用于微调GI的面板,用来调整角色进入不同场景时的效果,经过微调后,角色可以显得更加自然,融入到场景中。
如何确保动作流畅逼真
鬼泣系列作为ACT游戏的标杆产品,对于角色动作的展现有着极高的标准,这不仅体现在华丽的技能动作设计和战斗手感上,更是体现在行走、奔跑、跳跃等最基本的人物基础动作上。
所以对于动作的展现,我们的原则是一定要流畅、合理,我先以游戏中的主角之一Virgil为例来说明一下我们想要达到的效果。
角色从静止到待机,从慢速运动到奔跑再加速的整个过程中,会有一组以不同速度连接的动作,为了达到平滑的运动效果,速度会以渐变的形式体现在数值上,结合 BlendTree 的设置,最终达到平滑的变化,尤其是空中动作与地面动作之间的无缝过渡。
另一方面,原版《鬼泣》的动作设计同样复杂而炫酷,就拿主角但丁来说,他在移动的同时,还可以使用枪械进行攻击。
为了让角色在进行射击行为的同时,能够接收到玩家的移动指令,我们加入了动作分层处理方式,将角色上半身举手射击的区域与下半身腿部移动的区域进行分层整合,并对玩家的输入进行反馈,最终实现一整套复杂的动作行为处理。
第三个方面就是如何让这款游戏的动作体验更加流畅,让玩家不会感觉到角色动作的僵硬,在这方面我们特别注重动作切换的流畅度,并制定了一整套制作标准。
我们将所有的动作资源分为“基础动作”和“行为动作”。
基础动作主要指角色的待机、移动、转身等,待机时不能有明显的大动作;行为动作主要指角色的行为,比如释放技能、被击中、与场景互动等。
对于基本动作来说,任何动作的起点和终点都应该是待命行为。这对待命行为有一个标准要求:没有特别明显的大动作。此外,动作必须有相应的速度。而为了使 BlendTree 发挥作用,它们的整体规范必须一致,例如,需要考虑角色是先迈左脚还是先迈右脚。
而对于行为动作,我们又可以进一步分为主动行为动作与被动行为动作,不管是主动还是被动,我们在动作设计上的客观要求就是反馈要及时,因此在配置动作切换时,我们缩短了动作合并的时间,并加入了动作的逻辑中断和切换时机的控制,让角色的攻击与被击中更加真实、即时。
基于“空战”的关卡创作
对于市面上大部分的ARPG或者MMO来说,关卡设计流程都比较简单,对应的工作流程通常是策划先做出平面图,然后进行美术输出模型的拼接,之后策划搭建关卡流程并进行关卡设计,但这样的流程并不适合《鬼泣》这类3D动作手游,而且因为加入了“Z轴战斗”,其关卡设计会更加复杂。
因此在制作过程中,我们探索出了一套基于三维尺度、富含各种玩法的关卡构建流程,我们还是希望能够在移动端实现关卡机制、路线、怪物刷新点、宝箱点等3D关卡设计。但这带来的挑战,就是策划和美术需要更加紧密的配合,关卡设计流程也会变得更加复杂。
首先策划会根据功能玩法需求构建白片,然后根据白片设计关卡的主要路线和区域手游开发,利用一些简单的表现手法来表达局部玩法。
第二步,美术团队会对白片关卡模型进行精细化改进,以展现美术团队的设计思路和理念。制作完成后的白片场景更加精细化,并辅以灯光和氛围,方便规划。以此来验证之前的功能设计是否有偏差。
美术部制作的白片场景经过策划确认后,原画师、模型师会介入,在第三步完成原画细节设计、模型粗略粘贴、关卡场景深化等操作。在此基础上进一步完善关卡细节,并验证过程中是否存在偏差。
一旦策划确认关卡OK,关卡制作就会进入最终的资产制作,制作完成后这些模型会逐渐融入到产品中。
通过这样的白片搭建流程,我们可以避免策划人员在开发过程中反复调整修改关卡,导致资源浪费。另外,在进入最终资产制作阶段之前手游开发,我们基本确定了所有模型的近中远位置,因此我们可以根据资源的优先级调整不同位置模型的精度,实现资源量的可控。
同时,为了实现设计意图,我们还需要一个关卡编辑器,我们使用的关卡编辑器内置了上百种触发器和行为,我们的策划人员可以根据预先设计好的关卡,随意排列组合上千种组合,实现关卡流程。关卡中包含怪物、各类机关、陷阱、空气墙、可破坏物体等元素,通过这些元素,策划人员可以设计复杂的关卡流程和谜题元素,让整个关卡内容尽可能丰富,但不至于枯燥无味。
怪物AI的设计与实现
怪物AI性能是高品质动作手游的另一个关键设计点,对此我们采用了行为树解决方案。
这里我们先来解释一下角色行为的基本流程:一个单位按照一定的规则做出决策,决策结果生成指令进入队列然后依次执行。对于玩家操作的单位来说,决策者就是玩家的输入信息,比如拉动摇杆移动,按攻击键释放技能;而对于怪物来说,它的行为树会做出决策并生成指令。
在项目开发过程中,我们首先需要一个AI编辑器和一个AI追踪器——编辑器用来编辑具体的AI行为,追踪器用来验证。经验进行多版本的调整,以达到最优的AI方案。
平衡图像质量和性能的后期处理效果
除了动作、模型、关卡、AI之外,后期处理也是《鬼泣:战争巅峰》开发过程中的重要一环。
我们需要让游戏画质尽可能接近主机画质,但同时也需要在高画质和高帧率之间取得平衡。为此,我们在 Unity Postporcess v2 基础上扩展了很多后处理效果,并不复杂,性能消耗也小,组合使用可以产生一加一大于二的效果。
比如径向模糊、色彩分离、画面撕裂等后期处理效果,在适当的时候播放,可以提升整体的表现力和战斗感。
此外,我们通过后期处理定制了一些特殊的场景效果,例如下雨的场景,为了节省带宽,我们没有采用在屏幕上进行纹理采样的方式实现下雨的效果,而是在 UV 模后将屏幕切割成多层块来实现雨滴流动的效果,然后在屏幕周围添加白色效果来模拟玻璃上的雾气。各种效果组合起来之后,就能更加真实地表达出雨天的氛围。
对于雾天,我们会在场景中使用上帝光配合深度雾和高度雾,结合主光源,模拟出大气雾效。总之,在这个项目制作过程中,我们会先判断场景是战斗场景还是故事动画中的场景,然后搭配不同的后期处理效果,达到画质和表现的统一。
以上就是本次要分享的内容了,总的来说,《鬼泣:巅峰之战》的整个开发过程,就是借助强大的Unity引擎,适配移动端性能受限的平台,以接近主机级动作手游的品质进行游戏开发,最终重现鬼泣《皇牌空战》的魅力。