动作游戏设计入门:《火影忍者》手游如何实现“打击感”
张弛,腾讯互娱魔方工作室群高级游戏策划,现任《一人之下》手游战斗系统负责人,曾参与《火影忍者》手游、《机甲旋风》等项目的策划设计工作。
以下文字为课程节选内容 完整版请在文末点击视频查看
战斗的基础
动作类游戏所有的交互都是在时间轴上面进行的,最基础两个单位分别是攻击方和受击方,两方通过判定的形式产生位移以及各种血量、数值、状态的变化。这里所说的时间、位移、判定方式以及这之后双方的状态关系,就是我们说的动作游戏基本框架的四要素。
时间
帧是动作游戏里的时间单位,通常是以逻辑或者渲染的刷新率来制定的,我们一般玩的格斗游戏大部分帧率都在六十左右,一些低配置的可能会掉到三十帧,这个概念指的是在一秒的时间里面对这个游戏的画面以及逻辑刷新了六十次,也就是一帧的时间为六十分之一秒,它是游戏画面刷新以及逻辑刷新最小的单位。在游戏里面我们常常会说每帧这个角色走了多长的距离,用这个单位来描述其实更加准确和可靠。
大部分攻击都可以在时间上面拆分成以下三个部分,分别是起手时间(前摇)、攻击时间、还有收招时间(后摇),这几个阶段时间长短不同的搭配让每一个攻击呈现了不同的性质或者特点。
以《火影》里面的迈特凯为例,这(上左)是他朝前面突进的一个攻击技能,起手时间比较长,但是它的单次伤害非常高,也就是通常说的它的DPH很高,是一个比较适合打爆发的技能。相比之下,“木叶旋风”的起手时间比较短,就更加适合用来打断别人的攻击来抢先手。而迈特凯的大招“朝孔雀”(上右)则是一个攻击时间很长,不停打拳朝前发出火焰的技能,这个时候更多地考虑需要持续地聚怪进行输出。
同理,佐助的技能“千鸟锐枪”(上左),它有一个很长的收招时间,在X轴上的范围很大,可以用来试探起手,但是如果你试探失败了,这个时候你就可能会进入一个比较长时间的失控阶段。他的另外一个技能“豪龙火”(上右)收招时间就相对短一些,这个技能相比起千鸟锐枪更加适合打单点、零碎的攻击,玩家可以用这个技能POKE或者起手试探玩家。对于这类技能,它的收招时间一般是比较短的,虽然不能打很大的伤害但是胜在灵活。
接下来我们说一下受击方在时间上面的表现。角色从受到攻击,进入受击动作,直到重回待机所用的时间,叫做受击时间(受击僵直/硬直时间)。一般在受击时间内,角色不受玩家控制。一些老的格斗游戏受击动作可能只有十几帧,而一些新的大作中的受击动作会更加丰富,像《究极风暴》里面一个角色加起来差不多有二十多种受击动作,而《火影手游》用到的受击动作大概只有十多帧。这一方面是出于制作资源和性能上的考虑,另一方面这种做法会让受击时间更加可控,不受美术做的动画的影响。国内很多类似的ACT类游戏都选择了这种方案。
在实际游戏当中,受击长短的变化是数值成长的重要体现,成长的数值能够使一些不可能连招的操作成为可能,从而提高动作游戏的非伤害数值的追求,并提升了游戏深度。但需要注意的是,经常变化的打击效果需要玩家不断适应,容易导致在PVP中也无法立刻理解对方能力的情况出现,并且极有可能造成设计之外的攻击能力而使角色过强。
位移
另外一个重要的要素就是位移,通常攻击方在使用一个技能进行攻击的时候并不是维持在原地不动的,都会伴随一些或多或少的位移。位移的形式有这几种,第一种叫做原地攻击,第二种叫做位移的同时产生攻击,这种位移因为有位移所以可以躲避别人的攻击,有一定的安全性,而且不容易产生MISS的情况。和它相对应的是位移之后再攻击,这种攻击因为在中间一大段距离里面是没有攻击判定的,所以它的攻击判定只产生在最后位移停下来的时候,如果没有经过预判可能会造成MISS的风险。位移会影响技能的一些安全性还有灵活性。
受击方的位移通常是我们在动作游戏的编辑器或者引擎里面,通过攻击方的攻击判定来给受击方一个受击参数来实现的:击退其实就是给受击方一个X轴横向的数值,打飞到空中其实就是给一个Y轴的数值。在调一个角色的连段还有手感的时候,攻守击双方的位移都要进行调整,而且双方要相互匹配,如果攻击方有一个很大的位移但是攻击动作并没有把受击方打到对应的位置,这个时候受击方可能就被丢在攻击方身后产生断连了(如上图)。
再看一下位移的一个情况。我们说到受击方的位移是通过设置位移初速度来实现的,和速度相对应,游戏里面也会有摩擦力或者重力这样的参数,用以保证攻受击方的位移看起来自然不生硬。这里给大家演示一个例子,上面视频当中伊鲁卡受击时移动的初速度是一样的,但是上面左图中的环境摩擦力是两倍,所以他的初速度衰减得非常厉害,你会感觉到虽然打了这个角色但是他马上停了下来了,这个时候给我们的反馈就是他打不动。而后者则是相反的状况,因为摩擦力只有一半,受击方被打的时候位移过长,造成了攻击方断连。
我们需要根据不同的攻击动作来配置足够的受击位移,受击位移不仅仅由被赋予的初速度来决定,还会受到重力和摩擦力的影响,这些环境的参数对于调出来的手感会有非常大的影响。
这是一个正常摩擦力的情况。
在合理的基础上面我们可能还要兼顾一层,就是让动作的手感更加讨喜。上面两个视频里面攻击方的动作节奏是完全一样的,他给予受击方受击位移也是在我们认定的合理范围之内,但是在合理范围之内左边的角色在连段上面会更加顺畅,玩家基本上只要按住普攻就能稳定地连上一套了,但是右边的角色因为攻击方最后一下把别人打得相对高一点,所以第二下攻击如果还是使用普攻的话可能就会造成断连,这个时候他就可能要先停一下,甚至往前走两步才能够比较稳定地连上招数。
这里面其实就引出了我们在格斗游戏里面的一个概念——确认难度,它指的是我在连招里面当我第一下命中敌人之后,我能顺利流畅地把接下来的连招打完的实现难度。一般来讲确认难度是和敌人、你的位置以及敌人浮空的高度是关联在一起的,如果在大部分浮空或者是在一定距离的情况下,攻击命中敌人之后的连招都能连上的话,那么它的确认难度就相对低,意味着这个角色这一套连招是比较简单的,不会受到一些手操是实际战斗环境的影响,玩家操作起来更加舒服。
在设计游戏时我们需要根据实际的需要,把攻击的机会设置成确认难度更低或者是更高,但是就现在的市场审美来讲,一个合理范围之内的攻击,确认难度低一点可能会让用户感觉得更加舒服。
判定
大部分动作游戏其实都是采用判定框的机制来检测攻击是否命中目标,对于像《火影》又或者是像《DNF》这种有纵深感的游戏,攻受击方其实还有一个纵深层面的Z坐标轴,相当于一个立体的盒子。在横版游戏里面这个参数同样是很重要的,如果这个参数设置不合适,你会发现有的时候你明明走到跟敌人很接近的地方,但是却无法命中。
状态关系
攻受击判定成立之后,通常伴随着受击方的动画以及位移表现的,比方说我把他打入一个眩晕的动画,又或者我把他击飞到很远让他的X轴和Y轴都产生了位移,这些都是受击方的行为状态。还有另外一种状态是异常状态,这种状态的一个特点就是它通常不会有受击方的动作或者是位移表现,但是它能够在它的一些数值或者行为状态上面做出限制,比方说中毒会持续地掉血,冰冻以后受击方整个人是脱离操作不能够反应的。
以《火影忍者》手游为例,一个动作游戏角色的制作是需要经过以上八个流程的,在这八个流程里面策划跟美术还有开发紧密合作,同时各有侧重。对于策划而言,通常我们需要设定这个角色的人物风格,包括立回还有美术表现两个层面,接着根据角色的立回风格还有技能特性编辑好他的技能,最后根据游戏关卡还有怪物的特点进行打击感还有手感的调整。
课程章节:
【第一章节】动作游戏是什么
-动作游戏发展历程
-FTG和ACT
【第二章节】战斗的基础
-时间
-位移
-判定
-状态关系
【第三章节】制作一个角色
-制作流程
-角色特性
-立回风格
-案例演示
【第四章节】优化打击感
-关键帧
-特效和音效
-判定设计
-特殊手段