《怪物猎人世界》可以说是今年全球销量成绩最好的主机游戏产品。
据10月18日卡普空官方公布的消息,这款游戏自今年1月发售开始,全球销量已突破1000万份,刷新了该公司单款游戏销量的最高纪录。
而高销量的背后,自然是多数玩家对其游戏品质的认可。前不久,参与了《怪物猎人世界》项目的卡普空技术美术师竹井翔发布了演讲,针对这款游戏在开发过程中效果编辑,讲解了他们所使用的最为实用的十种效果要素。
效果编辑的两大特征
演讲中,竹井首先介绍了《怪物猎人世界》所使用的效果编辑器的概要、画面构成和操作顺序等基础知识,并重点解释了该编辑器中两大特征“粒子排序”(Particle Sort)和“粒子照明(Particle Lighting)”。
在概要介绍中,他提到这个效果编辑器是MT Framework2.0和RE Engine的混合版本。
其中,这个效果编辑器的操作顺序为:
1、生成效果编辑器;
2、添加Emitter;
3、在Emitter中添加项目;
4、设定各项目的参数;
5、通过F5重新生成效果。
在拖拽编辑器画面左方的项目列表时,就会抓取到左上方的一个Emitter,按照设定进行简单的操作。
这里的粒子排序,是指开发者可以像使用Photoshop中的“层”一样,对画面中显示的效果和粒子进行顺序排列的功能。排序则是从Emitter和Priority两个要素中获取信息,将Emitter列表中的某个项目,以由低到高的Priority在开发者面前进行排列。这里,以下图的火花、火焰(下图的“炎”)和烟雾(下图的“煙”)举例,对粒子排序进行了说明。
另一个要素粒子照明,就是用光对粒子进行照射。通过直接光的影响程度(Reflectance)、照明结果和发射结果的线性插值法(LightFactor)、阴影的影响程度(ShadowFactor)、间接光的影响程度(EnvLightFactor)、间接光的彩色饱和度(EnvSaturation)这五个参数对光的表现进行管理,开发者可以从事先设定的Preset中进行自行选择。之后,在选中照明方式的基础上,根据游戏内的场景和时间、制作者的感觉差异进行调整,进而消除照明模糊的问题。
当然,这个编辑器能够可以分别进行光照设定,但在需要调整和修正时,也要对Emitter进行逐一接触。对于那些将采用预设作为优势的主张,这是很沉重的打击。不过这款游戏中有很多类似木桶爆炸时的火焰那样,必要时设计出分别指定的效果。
演讲中也提到,《怪物猎人世界》采用了“Temporal Shadow”的独有技术,在阴影处理上投入了很多精力。照明不是按帧更新,而是每两秒进行一次缓慢更新,这样就避免了由于树叶漏出的阳光造成屏幕闪烁的情况。
最为实用的十种效果项目
此外,演讲还结合游戏中的具体案例和设计图,重点介绍了在这个效果编辑器中最为优秀的十种效果项目。
1、RGBcommon/RGBwater
它是粒子专用的着色器项目,可以说《怪物猎人世界》的效果由RGB结构组成也不为过,几乎涵盖了所有效果和Emitter。开发者可以在这个被分为R(红)G(绿)B(蓝)+α四个通道的结构中,分别输入信息,在效果编辑器上进行合成。
以爆炎为例,在红通道中绘制有照明的烟雾成分,在绿通道中绘制火焰的成分,在蓝通道中绘制薄烟的成分,每个通道分别制作动画。当伴着浓烟和烈火的火焰衰弱之后,浓烟就会逐渐变成薄烟,这样就轻易地将火焰衰退的样子表现了出来。
2、Type Lightning
这个项目是用于雷电的延伸方向、发光、粗细、长度、噪音的程度等方面设定生成的,闪电的落下和麻痹陷阱的麻痹学校过均靠这个项目得以实现。
3、PL Emissive
这个项目是用于设计那些玩家可以控制的材料,用于回复和状态异常时的效果展现、存在各种武器时的行动表现等。与效果编辑器中的寿命项目同时发挥作用,控制多个部位或者装备部分,能够像在RGB项目那样轻松地制作出动画。想有效地使用这个项目,就需要开发者之间能够做到如优先级设定等方面的密切协作。以游戏体验必要的优势顺序为基础去制作资源,这一点是很重要的。
4、Noise
针对各个粒子的坐标,这个项目以三角函数Sin变化的方式使它们周期运动,展现出摇动等效果。烈火燃烧时产生的火星、导虫在领域中留下的轨迹、尸套龙的瘴气等粒子类的表现内容,通常需要使用这一项目。这个项目可以通过简单计算轻易处理,同时根据调整情况还能发挥出相当不错的表现力。
5、Blink
这个项目和Noise一样,也同样用于粒子表现,管理不同粒子透明度的周期动画。因为不指定时间线和关键帧,所以在实现雷电等短时间激烈闪烁的光表现方面,调整起来非常轻松。
6、Ray Cast
它是获得冲突判定的其中一个项目,专门用于追踪冲突判定。在处理判定时间,指定判定距离时,和Emitter一起发挥作用,使范围产生变化。另外,在发生冲突的场所,还可以分别读取地面和物体两种内容。当游戏设定为不想冲击玩家而想冲击地面的时候,也能调整成只看到和地面发生碰撞的情况。比如“龙热机关式【银翼】改”的爆气状态造成的地面烧焦表现,也通过这个项目得以实现。
7、Action
它是将一个事件生成另一个事件的项目,应用的范围较广。由钢龙产生的龙卷风效果中,碎片的细小起伏和龙卷风大的起伏,都是通过Action来建立结构的,这样在表现起伏度时也能发挥出力量的效果。另外,在与RayCast共同使用时,怪兽火焰的吐息接触到的场所,是地面的时候就会加入余烬的效果,是水的时候就不会加入余烬的效果,能够轻松地根据场景进行使用。
8、Extern
它能够在特定条件或者特定时间中,让持续发生的效果发生变化。变化条件从程序和时间范围两种方式中选择其一。以古龙种炎妃龙的火焰效果为例,火焰生成时它是亮度很高、带着火星的火焰,在经过一段时间后,亮度逐渐降低,火星的数量也在减少。这样做的好处,不仅不会让玩家看到同样的效果而感到厌烦,而且还能减少粒子的生成数量,降低处理的负荷。
9、TubeLight
这个项目能够生成棒状荧光灯形的灯光,主要用于表现高亮度的发光体。通过调整摄像机的位置,为了避免以前中间显现出“空洞”的那种光线表现,会在棒状的激光中加入内芯。当它和Ray Cast配合使用时,制作者可以制作一边计算冲突判定,一边伸缩的动画。
10、FadeByEmitterAngle
它可以从Emitter的坐标中,排列具有一定角度的粒子α。这里的α可以对以100%绘制的“Cone”区域、以0到100%绘制的“Spread”区域和显示为0的区域指定角度。从买手机号码平台摄像机的角度来看,这个项目是基于让位于后方的粒子消失这样的目的而设计的。它原本的用途是粒子排列,不过在处理无法减轻的负荷方面也同样作出了贡献。
《怪物猎人世界》动作效果制作的三个实例
在介绍完十种效果项目后,竹井又以“样本效果的介绍和构成”为主题,以《怪物猎人世界》中“炎王龙的缠绕”、“冥灯龙的吐息”和“炎妃龙的狱炎弹”三个实例,讲解古龙种的强力攻击效果是通过哪些项目制作出来的。
1、炎王龙的缠绕
炎王龙有缠绕火焰的火焰模式和缠绕黄色粉末的粉尘模式两种缠绕模式。两种缠绕效果,分别由上面提到的Action功能构成,通过大量的变量来表现。火焰模式和粉尘模式,分别由负责变量发生坐标和动画的父Emitter、负责变量结构、动画和控制寿命的子Emitter两部分组成,而父Emitter和子Emitter的分工也让两种模式以几近相同的资源构成进行制作。这样一来,仅靠变量的调整,就可以对所有的图片进行大幅修改,艺术总监的要求也能够灵活处理,工作量也大幅降低。
2、冥灯龙的吐息
冥灯龙的吐息可以通过隐藏在大岩石的后面进行防御。在游戏开发的初期阶段,开发团队就想要制作一个使用遮蔽物对敌人的吐息进行防御的玩法,而TubeLight可以说就是为了表现冥灯龙的吐息而制作出来的功能。吐息的内芯部分通过TubeLight以粒子的形式完成火焰和火星,并通过Ray Cast实现射程判定。因为两个项目同时产生了地面碰撞的命中判定,在吐息偏向地面时,会出现蓝色的爆炎和烧焦的痕迹。
以前的制作方法,则是依靠美术设计对运动和吐息的寿命进行详细统计,在结束时刻输出效果这样一种极高工作量的调整。而现在效果编辑器能够自主控制效果,因此很多美术设计的控制都可生效,变为资源构成。
3、炎妃龙的狱炎弹
由于炎妃龙的这个技能不断放出超新星4倍,并伴着约40米射程范围的热风和热量,所以在当时制作这个效果上,开发团队花了很大的工夫。为达到最大程度抑制无法绘制的部分的目的,他们频繁使用FadeByEmitterAngle,诸如缩小显示范围的同时缩小角度这样,在画面中最小限度地保留粒子,在距离中心30米以上的时候,将靠近中心较近的粒子消除,以每5发两帧的间隔生成总共50发冲突判定和将尘埃堆积成山的方式,逐渐减轻无法处理的问题。