前言:
其实很多时候大家都觉得普攻攻击没有什么大的逻辑,其实不然,普攻往往是一场中释放频率比较高的技能;其更重要的作用是定位了一场战斗的整体战斗节奏。普攻行为的触发时机、触发后的行为、收招后的行为都可以为战斗的定位带来非常多的可能,举个例子,我们一般的普攻是在普攻状态下无法移动的,只能不断地向前方滑步,这就意味我进攻的过程中,会限制的我的移动,我移动的频率低了就会暴露破绽,所以要严格把握进攻的节奏;但是假设我的普攻是可以再移动中释放的,那我的普攻就会兼具进攻和防御的双重特点。我可以一边打一边位移躲闪。
以上的两个例子中,两种不同操作的战斗,就会带来不同的战斗体验,不同的战斗体验就会带来不同的战斗节奏。
总而言之,普攻是进攻手段的一种,这种进攻的限制和设计就决定了战斗的输出方式和策略。
https://v.vzuu.com/video/1105772820625448960?autoplay=false&useMSE=
楚留香的普攻逻辑:普攻分段
一、普攻的释放时机
1、普攻的状态机设计
状态机是指的普攻可以由什么动作转到普攻,比方说在移动的过程中可以释放普攻,那么状态机的设计就是:跑步→普攻。楚留香的普攻逻辑是:
由什么动作可以过渡到普攻
个人认为,在战斗的设计中,普攻或者是进攻技能的状态机是最优先应该被设计的,原因是:“我什么时候可以使用攻击”决定了“我可以用什么方式去战斗”。举个例子:如果我的普攻可以由跳跃中直接发动,那么我就可以像《只狼》那样在空中挥剑,空中斩杀敌人。但是如果我的普攻只能在跑步中释放,那么我的战斗方式就是在一条平面对砍。
所以,普攻的状态机决定了战斗的方式,也是一种战斗框架的边界,有了这个边界,那么整场战斗的进攻方式、视觉表现、后端逻辑也就应运而生。
2、是否可以强制普攻
是否可以强制普攻的意思是,我在移动和待机的过程中,如果点击了普攻,是否会立即释放普攻的动作而不需要等待移动和待机动作的持续时间结束。
也就是说,我在奔跑的过程中可以没有任何延迟的瞬间进行攻击。
而什么地方不能采用强制普攻呢,当然是在释放技能、轻功和翻滚的时候不能强制普攻。这是因为这三个属于玩家的功能行为,意思是我正在释放一个技能,我突然按下普攻,然后把这个技能给打断了,技能进入CD状态。此时玩家的战斗体验就会非常糟糕。
所以,轻功、翻滚、释放技能的时候,当我按下了普攻,是必须等到这些动作完整的释放完成后才能进行的。
https://v.vzuu.com/video/1105785256887771136?autoplay=false&useMSE=
待机、移动过程中按普攻
二、普攻的动作设计
1、一共有几个普攻动作
https://v.vzuu.com/video/1105786530446192640?autoplay=false&useMSE=
楚留香的普攻动作分两段
一般来说,普攻有几个动作,就意味着普攻有几个连招。如果按第一下普攻释放的是A动作,在有效时间之内按第二下普攻释放的是B动作,那么这个动作分段就有两段。而楚留香的普攻动作一共分为两段。
2、普攻的连招
普攻的两段在连续按下普攻的时候会先出第一段攻击,然后在有效时间之内继续按下普攻会在第一段的基础上释放第二段的普攻。
这里面的逻辑是:
一次普攻连招逻辑
个人建议这个地方其实作为策划来讲根本不需要进行配表去控制连招时间,因为如果是上面这种逻辑,就相当于连招时间=普攻第一段动作的时间,反正N段普攻完成后会进行N+1段的普攻,完成后总会回到Idle状态。如下列视频所示:
https://v.vzuu.com/video/1106888121580576768?autoplay=false&useMSE=
普攻与普攻连招的状态机切换
3.不同职业普攻动作设计与帧数占比
一个动作的可分解为三步:起手、出招、收招。
如果我们把这三个阶段看成时间轴的话,那么这个时间轴是这样的:
攻击的时间轴
所以我们在设计普攻的时候会先考虑这三个阶段的帧数,来确定普攻的节奏。众所周知,刺客的攻击速度>坦克的攻击速度,一般的设计思路是:刺客的起手和出招都很快,但是收招很慢,例如刺客信条的作品中,我们会发现一般是按下攻击后很快的一把刀插进敌人的胸膛,然后有一个很缓慢的停顿,之后再猛的拔刀拔出来。
而坦克型的职业则会不一样。起手>出招<收招,是坦克职业的显著特征,例如我们在玩LOL时候看到的石头人,普攻时先抬手抬的很高,然后瞬间落下,最后把手收回去。你会感觉到一种蓄力砸下来的过程。
综上,当我们去设计一个职业的普攻技能时,我们会考虑该职业的定位和所希望达到的效果,例如当我们希望去设计一个刺客型的职业时,同样的60帧攻击动作,我们会按照起手、出招、收招1:1:2的比例去设计;而当我们去设计一个坦克型职业的普攻动作时,同样是60帧,我们则会按照2:1:2的比例来进行设计。
4、普攻动作的受击点
我们在设计普攻的动作时,还会考虑到普攻的受击点,意思是我的普攻动作在第几帧的时候攻击到敌人,产生击打效果和数值计算。
例如,当我们在一个一分钟60帧的攻击动作中,我们希望在第35帧的时候可以击中敌人。那么我们会在动作的第35帧插入一个关键帧,将它作为事件来进行监听。
在这个普攻动作中插入一个事件
通过这样的方式,我们便可以设计连招和受击两个功能。举个例子,如果我们希望当玩家按下普攻后,普攻会按照时间轴的顺序播放开始播放帧数。从0到60是一整套普攻的动作帧数。如果我们希望玩家在20帧→40帧这段时间内再次按下普攻就可以进行普攻的连招,我们就需要在这两个地方加入关键帧。
方法是:我们把这个变量理解成一个bool类型的开关
这两个关键帧一个是起点一个是终点,当程序执行到起点时,这个开关打开,当程序执行到终点时,这个开关关闭。所以逻辑就变成了:
当按下普攻按钮后,再次按下普攻按钮进行连招:
如果“当前的行为是普攻一段”并且“这个开关”被开启了,则进行第二段普攻,否则连招失败。
bool类型的开关
具体的逻辑
本章节告一段落,后面的第四章将介绍基础攻击行为的逻辑:伤害判定与受击动作设计
1.伤害范围的判定逻辑
2.受击表现的设计
作者:华韬
来源:知乎