大数跨境
0
0

开课了!GDC 2023 Best in Play获奖者独家分享,游戏角色全流程设计经验

开课了!GDC 2023 Best in Play获奖者独家分享,游戏角色全流程设计经验 eHome百家合
2023-08-20
1
导读:《Evil Wizard》荣获 GDC 2023 Best in Play 奖项,游戏制作团队 Rubber Duck Games揭晓 Boss 角色 Hailga 从设计和原型制作到动画、测试、平衡

《Evil Wizard》是一款类银河恶魔城游戏,在游戏中玩家将扮演一名被击败了的终极首领,从失败中崛起,重拾失去已久的力量,然后与一支英雄大军战斗,从他们手中夺回城堡。

在这篇文章中,我们非常荣幸邀请到了荣获 GDC 2023 Best in Play 项的《Evil Wizard》游戏制作团队 Rubber Duck Games 为我们揭晓 Boss 角色 Hailga 从设计和原型制作到动画、测试、平衡及视觉效果与音频的全流程制作经验。

  角色设计

先从第一步设计开始。在设计 Boss 角色时,开发团队从很多知名游戏的主角身上寻找灵感和参考。在游戏中,Hailga 是玩家需要打败的第一个敌人,她是一名强大的冰魔法师。

Hailga 的角色灵感大部分源自《魔兽世界》的吉安娜,两者有很多共同点。在设计时,团队会为每一位角色都建立一份档案表格,并且在表格上详细阐述角色的主要特点、机制和参考资料。

团队首席程序员 Diego Ordóñez 说“Hailga 的冰锥和自动追踪冰弹攻击能给玩家带来不同挑战,这两种攻击主要区别在于生成冰弹的方式,以及朝玩家发射的数量。在程序上只要稍作调整,这两种攻击方式就可以复用同一套系统。”

  场景风雪设计

在 Hailga 一战里,团队希望追加暴风元素。基本设计是从随机方向生成风,把玩家吹向满是冰锥的墙壁来造成伤害。玩家需要找到掩体,当玩家躲在战场上随机生成的冰柱掩体后,就不会受到风力影响。这一设计包含了冰柱生成、风控制器和暴风雪视觉效果设计这几个不同部分。

冰柱的生成位置是在一个圆形碰撞体内随机获取的,生成时再加上一点 Y 轴的偏移。之后利用协程让对象的 Y 轴降低使之垂直下落。

可以生成冰柱后,开始进行风的设计。如上图所示,风控制器这个方形组件随圆形边缘旋转。风控制器中,因为风的生成方位是随机的,所以风发射器(Wind Emitter)必须指向中心方向,才能覆盖全场景区域。风发射器保存了风的转向、方向和位置,并且当风的生成方位随旋转变化时,这些数值也会实时变化。

前边提到,风可以被障碍物,也就是冰柱阻挡。障碍物带有的 BoxCollider2D 会检测风与玩家之间的碰撞。倘若玩家在障碍物躲避,OnTriggerEnter2D 就会激活风障碍物,在玩家离开障碍物时,OnTriggerExit2D 则会禁用它。下方玩家与发射器之间的蓝线展示了这个机制。线为绿色时,玩家是受冰柱保护的。

最后,需要让玩家受风力作用朝某个方向移动。为此团队创建了风接收器(WindReceiver)组件。组件会用 Physics.Raycast 在玩家向风接收器之间通过发射射线,检查玩家身上的风力大小和方向,之后用自定义的移动控制器把风力施加到玩家身上,使之往特定方向挪动。

  角色行为

在开发《Evil Wizard》的角色行为时,Unity 资源商店中的 Behavior Designer 帮了大忙。这款资产非常适合不熟悉代码的游戏设计师,只要程序员写好机制,设计师就能把它们放到角色的行为树上,不用代码就能制定好它的行为逻辑。

Behavior Designer 地址:
https://assetstore.unity.com/packages/tools/visual-scripting/behavior-designer-behavior-trees-for-everyone-15277

这是 Hailga 的行为树:

树的开头处是几个准备战斗的行为。比如让 Boss 进入第一阶段、播放入场动画、重置部分变量。

些动作只会在战斗开始时执行一次,下一块便是包含实际行为的重复节点(Repeater),如下图所示。

Boss 行为的着重点一直都是血量,战斗中需要用血量决定 Boss 是否该进入下一阶段或死亡。首先检查 Boss 的血量是否在 75% 以上。如果是,那么就执行第一阶段的行为,比如发射冰锥、自动跟踪冰弹和召唤雪史莱姆。当血量降到 75% 以下,行为树会到选择节点(Selector),并运行第二阶段的行为,直到 Boss 到达最终阶段,血量归零并判定死亡。

外部行为树功能可以很好地组织类似这棵比较庞大的行为树。正如下一张图所示的,这些三个盒子组成的图标属于外部行为树。

可以把外部行为树看作代码里的方法(method):可以在整个游戏逻辑里多次调用方法,它会运行同一段代码。要是修改这部分逻辑,改动会应用到所有方法被调用的位置。外部行为树的作用相同,它包含了执行特定动作的行为,比如“召唤雪史莱姆”。

打开游戏其中一棵外部行为树就能看到这个:

这个行为树会检查 Boss 有没有重复多次施展相同的招数,或战场上是否有过多小兵,以决定是否让 Boss 召唤小兵,播放台词,或让 Boss 切换为闲置状态。

假使想改变场上同一时间所存在的小兵数限制,只需要修改外部行为树的“Check Enemy Amount of Type”,所有涉及召唤小兵的游戏部分就都会被修改。

  制作动画

团队的首席美术师 Ruben Gómez 在创作 Hailga 时参考了许多知名角色,例如《魔兽世界》的吉安娜和《冰雪奇缘》的艾莎。Ruben 说,“团队从参考角色身上借鉴了一些着装和发型特征,这些元素在体积较小的像素图上能提升角色辨识度。”

在动画里,角色动作需要快速进行,同时又不失去帧之间的平滑度,因此团队尝试通过每个角色动作的更快迭代来缩短制作周期。动作设计使用了最近插值(nearest interpolation)对动画的每一帧裁剪、重新排列、缩放和旋转角色的每个部分。

下图是经过细节打磨后最终版的角色动画。

  测试与平衡

动画制作期间,团队创建了一个称为“Combat Zone”的独立场景,用于测试 Boss、敌人、法术等等。早期在 Combat Zone 里测试的 Hailga 看起来是这样的:

在对行为、功能和难度感到满意后,团队便把 Hailga 正式放到游戏里。

  视觉特效

完成了 Hailga 的行为和动画之后,团队用 Animation Importer 来整合 Boss 的动画,这个工具用来整合像素动画非常好用,只需几步就能完成所有步骤,之后便是视觉特效的制作流程。

Animation Importer 地址:
https://github.com/talecrafter/AnimationImporter

Boss 战用到了多种视觉特效,其中 Boss 战的一处高潮是 Hailga 转换到最后阶段。她会发怒,向巫师发射冰冻光束,冻结整个战场,本文将以这个效果为例,拆解这个魔法的制作流程。

这个魔法分为两部分:冰冻光束和地面冻结。对于第一部分,在过去团队会直接用 Unity 的 Line Renderer 组件在两点间渲染出直线,用脚本控制直线,加一个基础着色器,给线的边缘和中心添加色彩。

就像上图那样,虽然能达到基本效果,但是还不够精致。

下一步,团队想让效果看起来更像一束光线(而不是实体),为了实现目标,着色器需要分成三部分。首先,使用了横向对称渐变色的纹理(即下图里的 MainTex),由于这个渐变纹理中间深两端浅,所以使用“Pow”节点就可以轻松控制光束的宽度。

然后,用 Tiling And Offset 节点的 Simple Noise,来达到两个目的:消解部分位置的光束(这里始终由一个公共变量控制),并且修改光束的 UV,使其外观发生扭曲变形。

之后把光束乘上一种 HDR 颜色,来控制发光的颜色。最后把光束的边缘接入 Step 节点,将它们相乘来得出另一种颜色,利用对比让光线中间部分更加突出。

到这里好像有点成果了。但光束好像是凭空出现的。于是,团队利用粒子系统做了一个冰球,充当光束的发射源:

冰冻光束的冰球发射源在 Unity 编辑器里的样子。(图源 Rubber Duck Games)

最后,我们要用粒子让光束融入周围环境。

第二部分地面冻结效果更难。需要从未冰冻地面向冰冻地面的纹理转换,但转换的角度速度需要与快速旋转的光束一致。

为了匹配光束的速度,团队使用常规脚本来控制光束的速度,并根据光束当前的旋转,使地面的冻结值在 0 到 1 之间变化。为了实现纹理的变化效果,团队将着色器分为两个部分,以获得径向渐变和实际的插值。
以下是应用于计算径向渐变的公式,这其中考虑到了 UV 位置并且数值从 0 到 1 变化,该公式会用这个冻结值使地面冻结与光束运动同步。

它在场景里看起来是这样的:

  最终配音

最后,游戏的配乐师 Haakon Davidsen 用音乐让玩家感受到战斗的“火热”。当然女配音演员 Breanna MacDowall 还给了 Hailga 一副好嗓音。

欢迎到 Steam 或 Xbox 上购买《Evil Wizard》,亲自体验 Hailga 的 Boss 战,未来该游戏将会登陆更多平台。

《Evil Wizard》由E-home上海百家合信息技术发展有限公司全球发行,现已登陆Steam和Xbox平台,即将在Nintendo Switch、Epic Game Store等平台发布,敬请关注。



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

【声明】内容源于网络
0
0
eHome百家合
上海百家合信息技术发展有限公司
内容 82
粉丝 0
eHome百家合 上海百家合信息技术发展有限公司
总阅读13
粉丝0
内容82