设计

射击游戏有瞄准,射击,后坐力三个绕不开的部分,动作游戏也有一些天然要去设计的元素

想象一个角色从玩家输入触发攻击按键,到角色执行攻击动画,再到敌人受到伤害做出受击动画

这个过程可拆解分为:输入触发设计、动作设计、动画事件设计、伤害公式设计、硬直系统设计

输入触发设计

按键的设计是对指令维度的设计,根据游戏要服务的玩家群体,从易到难大致可分为五档
不同的方式也可以组合使用,目前大部分动作游戏采用:复数按键 + 组合按键 + 时间窗口的设计方式
image2022-10-19_11-38-17.png

单一按键式

仅由一个按键完成攻击输入指令,最复杂的指令维度也只有长按与短按的区别,以此来区分轻攻击与重攻击
也有通过长按与短按的输入顺序打出新的攻击派生的方式
如:A (短按)→ A(短按)→ A(长按) 

常见的代表作:《伊苏7》《双星物语》

image2022-10-19_16-0-5.png

复数按键式

两个及以上的按键作为攻击输入指令,也可以通过不同的输入顺序打出新的攻击派生
目前大多数动作游戏都采用了复数按键设计,如:A (轻攻击)→ A(轻攻击)→ B(重攻击)→ A(特殊攻击) 
常见的代表作:《战神》《艾尔登法环》《尼尔:机械纪元》

组合按键式

两个及以上的按键同时触发时作为输入指令
如:A + B(特殊攻击)↓ + A(下坠攻击)
缺点是对手机用户不友好,通常会为移动平台单独制作组合键的按钮

1001.gif

时间窗口式

在指定的动画帧内输入指令才能触发的攻击行为,通常是以通过增加操作难度的方式,来增加游戏的深度
常见的代表作:《鬼泣》中尼禄的红刀,《斩妖行》中的《斩》攻击,属于主动触发的时间窗口

在第三下攻击的后摇时等待剑气特效出现再按下攻击键,触发《斩》特殊攻击
500x281_61275201547d4.gif

累积组合式

在一定时间内按下特定顺序的按键才能触发攻击的方式,最早由 FTG(格斗游戏)演变而来
由于在三维游戏中,玩家通常还要对方位和距离进行把握,对玩家操作要求较高,目前很少使用
常见的代表作:《流星蝴蝶剑》《拳皇》

动作设计

动作设计通常是一款动作游戏的灵魂,由于人本身对于人体动作的敏感度很高
如果动作的衔接出现奇怪的混合,很容易影响游玩体验
在 ACT 游戏可以使用的一些障眼法来掩盖动画的瑕疵,例如大量的特效和本身就很快的动作
但对于不适合使用大量特效,动作又不快的游戏来说,好的动作设计与动画衔接就显得尤为重要

动画开发流程

先来看一下简化的动作开发流程图

动画开发流程图0.2.png

Desgin 阶段

动作需求拆解:
当策划提出动作需求时要先思考几件事情

  • 动作/武器的定位是什么?

    • 九宫格武器象限2.png
  • 武器的机制是什么?
  • 武器最能打动玩家的特点是什么?
  • 武器的动作派生的组成结构?

当策划对自己想要的动作越明确的传达给动画师时,动画制作的命中率就会越高

Blocking 阶段

当动画师了解到动画的需求后,会先给出几帧只带有关键动作的 layout 动画
策划通过关键动作便能够大致想象动画的整个表现,若对动作有改动需求要在这个阶段尽可能的反馈给动画师修改
在 Blocking 阶段进行修改的成本是最低的,所以要在这个阶段尽量让动作达到满意的效果

塞尔达blocking演示.gif

Spline 阶段

在这个阶段动画师将会制作完整的动画片段,给到策划进行配置,并提供制作预期的连击帧、伤害判定帧的具体帧数
策划需要对动作连招,动画事件,混合时间进行配置,并在战斗测试场景中进行测试,保证操作的手感的良好的

image2022-7-18_22-30-15.png

Polish 阶段

在最后的阶段策划可以根据手感或表现给出细节部分调整的需求
但不应该给出对整体进行调整的需求,例如修改动画总时长,这部分需求应在 Blocking 阶段解决
若改动的动画涉及到攻击判定时长,策划需要对事件帧进行相应调整,并在战斗测试场景中进行测试
一切无误后,便可以进行最后的验收了

动画参数需求

动作由策划和动画师共同制作,为了提高动画命中率,需要策划在需求上给出明确的信息

动作描述需求应包含的内容
动作描述对动作细节进行描述,同时带有图片或视频进行参考
动画位移对位移时间 + 位移距离进行描述,如前 0.5s 内移动 2m,如果效果明确,使用曲线表达更容易达到期望效果
动画时长使用期望时长 ± 允许误差的方式进行表达

下面是来自任天堂大乱斗中的动画参数文档分享视频,看完后或许对动画开发有所帮助

【樱井老师的开发课堂】动画效果:动画参数文档
image2022-10-19_17-57-29.png

动画事件设计

动画事件分类

合理的配置动画事件可以保证操作体验的流畅性

通常动画事件的功能会有两大类

控制状态切换的事件(如:何时可以打断后摇进行移动,何时可以切换下一攻击招式)
产生功能效果的事件(如:何时打开和关闭伤害判定,何时播放特效与音效,何时生成掉落物品)

另外为了降低玩家的操作难度,也会有用于记录玩家预输入的指令缓存帧事件

常见事件帧设计

移动帧

攻击动画的收刀恢复架势阶段,也就是常说的后摇,通常情况下为了保证交互的及时反馈
在后摇阶段是允许角色直接切换到移动状态
用于控制切换到移动状态的事件帧在动画中配置非常频繁

武器碰撞帧

用于开启和关闭伤害判定的碰撞体的事件帧,通常在武器开始挥动时开启,武器停止挥动时关闭
用于伤害判定的碰撞体大小通常需要比武器本身看起来更大一些,因为武器在快速挥动时玩家并不能精准的把控距离
因此一个好的碰撞体大小应该是,看起来差不多可以打中敌人,攻击就可以命中的大小

可连击帧

可以切换到下一攻击的动画区间帧便是连击帧,配置的过早过晚都会导致动画表现和制作的有差别
通常需要动画师对连击帧多留一些时间,让玩家有时间做决策

攻击输入缓存帧

和连击帧共同使用,用于存储攻击指令,通常动画的连击帧不应该过长,否则动画表现会不太自然
玩家会抱怨吞操作指令就是因为输入在了连击帧外,没有预输入帧,所以为了解决输入区间过短的问题,指令缓存是必要的
事件通常的起始配置点不应该过于靠前,当玩家连点按键时很可能误触

旋转帧

在战斗时玩家经常需要调整自己的方位,来保证自己的下一次攻击能够命中敌人
但让整个动画都可以随时旋转对于动画的观感来说是毁灭性的
所以通常的做法是在动画开始的前几帧运行角色可以进行旋转,同时旋转的速度要快,以保证旋转不会影响动画的观感

硬直系统设计

冲击力机制

为了让敌人受击反馈和攻击动作之间产生联系,同时要符合玩家直觉,通常影响受击表现的值被称做“冲击力”或“威力值”,下文将使用冲击力一词进行表达
冲击力的参数类型可以使用等级的方式,也可以使用数值的方式表示,两者各有优劣

  • 使用等级的方式更容易设计和使用,让动作和冲击力这一概念进行强绑定,通常大部分游戏采用这种方式
  • 使用数值方式的好处在于可以将冲击力加入成长体系中,允许玩家通过使用技能或道具动态改变冲击力的大小,亦或是抵抗冲击力的能力

《黑暗之魂》冲击力 — 硬直设计

Untitled (1).png

《怪物猎人》威力值 — 硬直设计

image2022-10-21_16-11-29.png

韧性值

有了冲击力后,我们可以将攻击动画和硬直动画关联起来了
但如果每次攻击敌人都会产生同样表现,在实际战斗中重复感会太强,且没有策略性可言
在魂系列中的解决办法是再加入一个中间状态,这里称作“失衡状态”,不同制作组的内部叫法不同
让处于正常状态和失衡状态的角色对于相同的冲击力对应不同的硬直动画,为了让状态之间的切换有一定的规则限制
动作游戏常见的做法会引入三个数值

  • 韧性值 PH(PoiseHealth)
  • 削韧值 PD(PoiseDamage)
  • 削韧抵抗值 AP(ArmorPoise)

以及一个简单的计算公式

  • PH = PH - PD * (1 - AP%)

角色每次受击除了会减少血量值,同时也会减少自身的韧性值,当韧性值为空时将进入失衡状态,在失衡状态下的角色受击后会对应等级更高的硬直动画

同时也需要有从失衡状态恢复到正常状态的规则,通常有两种做法,受击后韧性值立刻恢复满值,从硬直状态回到正常状态,另一种做法是使用计时器,一定时间后回到正常状态

image2022-10-21_16-46-44.png

《原神》硬直计算流程

原神硬直流程图 (1).png