一篇关于如何进行打击感和战斗手感优化的文章
一、前言
1、为什么要优化打击感
打击感对于任何一个拥有动作元素的游戏来说都是不可或缺的。通常来说,打击感优化会是动作游戏中一个较为核心的模块,也是一个难以做好的模块。
但是打击感的提升对于游戏品质、玩家体感方面的提升都是巨大的,所以对于一款以战斗为核心的游戏而言,打击感的优化是比较重要的。
另外,此处需要感谢哲哥的内容分享
2、什么是优秀的战斗手感
战斗手感和打击感需要围绕三个重要因素进行设计
- 顺:优秀的动作操作体验应当非常顺滑,按下按钮立刻有所对应反应,做到所控即所得。
- 准:只有当命中反馈尽量精准时,才能让玩家信任游戏的操控体验,做到人机交互的统一。
- 爽:战斗节奏需要从压抑到释放的节奏变化,通过动作与各类视效、镜头和的联动达到对感官的本能冲击。
3、什么是优秀的战斗手感
- 干脆利落
- 攻击意图明确
- 攻守双方协调统一
- 动特音一体化
二、打击感和手感的影响因素
通过人的感知对打击感区分了四个方向的影响因素
- 视觉:
- 动作
- 位移
- 特效
- UI
- 后处理
- 听觉
- 音效
- 背景音乐
- 输入
- 动作取消
- 受击判定
- 指令输入
- 触觉
- 控制器震动
三、如何优化打击感
1、视觉因素
(1)动作
-
攻击动作
-
符合发力原理
对于任何一个动作设计而言,其基本都需要符合发力原理。
以人形骨骼为例,通常以腿→腰胯→肩手头的发力顺序来保证动作看起来顺畅。
参考武打港片中(如:叶问系列)的打戏镜头,可以看出发力要符合人体结构才能看起来真实
-
符合攻击意图
- 蓄力→释放
这是一个没有任何蓄力的动作设计 ↑
这是添加了蓄力动作的设计 ↑
由此可见一个有节奏的动作设计需要在每帧内的速度各不相同,如果动画同学在进行动作设计的同时没有注意这 点,很有可能导致最后动作设计缺少打击感。
-
需要有后摇缓冲
对于一个攻击动作而言,无论其是否能被取消(动作取消),都需要设计其攻击判定结束后的收招动作,是确保动作的连贯性和演出性质的重要因素。同时搭配动作取消,能成为影响操作手感的重要因素。
-
-
受击 动作
-
夸张化处理
对于 videogame 而言,通常由于缺少大银幕、运镜、对焦等拍摄手法,其表现力通常不如影视作品,所以在游戏中的动作设计通常会比影视作品中更加夸张化处理一点。
-
一帧切原则
通常动作游戏的打击感强调爽快、精准和迅速的反馈,所以当角色受到攻击后,需要参考一帧切原则进行受击动画的播放。即:角色从当前动作过度到受击动作的播放只能使用一帧的过度时间
而在以强调真实感的拟真游戏当中,动作设计以真实感为核心,所以此时无需参考一帧切原则,可以使用较长的过渡动画。
-
分档合理
在 ARPG/ACT 游戏中,受击动作会根据规则进行分档
-
融合受击:不会打断角色当前的动作,通过动画遮罩实现受击动作和当前动作的融合。
-
大 / 小受击:此类型受击会打断角色当前动作,通过一帧切播放受击动画来打断角色当前动作。
-
击飞受击:角色受到重受击后,自身产生击飞类型的受击位移。
通常重受击会投放在连段中的最后一段,符合战斗从压抑到释放的节奏,如果将重攻击投放在普攻中间,会导致连段无法连上,破坏玩家战斗节奏
-
-
动画融合
以 unity 为例用动画层(layers)和动画遮罩(avatar mask)实现动画融合,可以提高受击动作流畅性
通过在 unity 中新建新的动画 layer,在播放受击动画依照动画层级和权重进行动作播放
例如:当角色的上半身碰撞盒受击时,Body 层的动作播放受击动作权重为 100%,而下半身通过播放权重 20%,通过 IK 实现动画的连贯性,避免出现上半身受击,而下半身动作很大的错误案例
以同样的例子可以看出,在街霸 6 中的实现就是如此,当角色上半身受击时、下半身动作幅度并不大
-
体型衰减
如果在游戏中都是人形 avatar 且体型相差不大的情况下可以不使用体型衰减(如 FTG),但对于出现体型不同的怪物,例如当正常体型的人形角色攻击大体型怪物时,会需要有相应的受击衰减,可通过 韧性机制进行受击判定
-
受身动作
当角色受到大幅度受击动作后,通常应该有一个受身动作,其节奏随游戏不同略有不同,在格斗游戏中,角色受击后的起身应该保持尽可能相同的帧数,确保玩家在面对不同角色的时候的战斗节奏不会发生太大的变化。
-
(2)位移
-
受击位移
通常受击位移在前 4 帧内不会有太大变化,目的是配合特效生命周期进行统一管理,防止出现特效播放位置和实际受击位置不匹配的问题。
由于受击位移在前 4 帧内不会发生较大变化,所以在初速度算法上会有额外的补偿,例如:
设理论初速度 v=10m/s
则补偿后的初速度 v1=10/(0.167*5)≈12m/s
(3)特效
-
攻击特效
攻击特效需要匹配角色战斗性能,即特效需要符合角色动作,避免出现动作不匹配的问题
-
受击特效
受击特效按类别又可以分为一下几类
-
通用受击特效
此类型特效无需特殊的表现,都可以引用合适的受击特效,绝大多数近战和远程物理类型攻击可引用这些受击特效
-
技能专用受击特效
有时为了体现技能本身的特性,需要制作技能专用受击特效,可以弥补此类技能本身动作表现较弱的缺点
-
物体受击特效
与技能受击特效不同,此类型的特效播放规则不依赖于攻击方的攻击方式,只取决于受击方的特性
例如:
-
护盾受击
-
场景受击
-
-
-
特效生命周期
通常来说,一个特效的生命周期分为三个关键帧
- 首帧表现:即特效的第一帧会达到总体的 80% 的表现
- 最大形状帧数:在特效的第三帧会达到总体的 100%
- 消散帧数:通常会在第 7-8 帧消散,视情况而定
-
顿帧
顿帧是一把双刃剑,在不合理的时候出现的顿帧会破坏游戏的整体流畅性,仅适合用在大型怪物或一些需要特别表现的受击动作上。
(4)UI 和后处理
-
伤害显示
通过伤害显示的方式体现是否命中是一种简单的处理方式。
-
血条震动
-
屏幕震动
屏幕震动同样是一把双刃剑,仅仅适合用在蓄力、重武器的攻击前摇以及命中等情况下,适合搭配镜头运动等其他因素一起食用。
-
风格化处理
风格化后处理是一种能快速表现攻击和受击的方式,但需要注意避免后处理过多导致遮挡主要画面。
-
特写镜头
特写镜头是一种影视化的处理方式,能带来较好的表现
2、听觉因素
(1)音效
音效设计总体上可以确认是以下流程:
-
近战受击音效
近战音效的受击是多方面的因素共同影响的,通过多方面的因素产生音效融合来体现打击感
- 受击材质
- 肉体
- 金属
- 甲壳
- 攻击力度
- 轻攻击
- 重攻击
- 攻击锋利度
- 锐器
- 钝器
- 受击材质
-
远程受击音效
远程受击音效通常是较为单层的,受击材质部分占据了大部分的权重
-
受击材质
-
子弹口径
-
子弹射速
-
3、输入因素
(1)判定
-
碰撞盒
对于任何一款拥有战斗元素的游戏来说,攻击的命中判定都是不可或缺的因素
通常碰撞盒可以分为以下几类:
- 矩形(通常用于 2D 游戏)
- 球体
- 胶囊体
- BOX
在 3d 游戏中较多的使用胶囊体作为 hitbox,主要原因是胶囊体在引擎进行碰撞计算的时候会消耗更少的性能。
-
碰撞判定
主要是针对碰撞盒在攻击过程中产生的连续碰撞问题,因为在引擎中,碰撞是连续存在的,在攻击命中后,对于是否需要连续进行命中判定,就需要对技能进行提前设计。
在技能编辑器中需要设计此功能,即在攻击招式的判定帧内生效次数。
-
位置判定
通常受击位置的判定需要考虑攻击碰撞盒同时命中多个受击碰撞盒的问题。此时需要设计正确的碰撞规则,才能保证受击方的动作和特效播放正确。
可以使用向量判定方案:即记录从攻击碰撞盒到每个受击碰撞盒中心位置的向量,记为判定向量 DisToBox。同时记录攻击方向向量 disAttack,则取两者向量差值最小时的碰撞盒为实际受击位置。
-
动作判定 通常在 ARPG/ACT 游戏中会有一套韧性判定机制,当韧性小于 0 时才会播放重受击动画。
(2)动作取消
动作取消在动作游戏中是一个很重要的因素
首先,减少了收尾,两个技能的连接可以使得动作更加的顺滑,其次,减少了破绽,因为在起手和收尾阶段往往更容易受到攻击和打断,而攻击时往往处于难以打断状态。再者,某一个动作可能有更多的后续动作,拓宽了动作选择,达到出其不意的效果,让战局更加的变幻莫测。
并且在不同类型的游戏中取消会有不同的设定:
-
Moba 中一般可以在攻击的任何时候取消
-
RPG 来说只能取消部分的后摇收招 动作
-
FTG 中需要操作的指令覆盖或者消耗资源来强制取消
4、触觉因素
触觉因素是一个和硬件关联性很大的因素,通常在主机游戏中体现较为明显,也更容易做适配。
(1)控制器震动
通常来说在命中时给控制器一个震动指令,能带给玩家更直观的打击体验
(2)力反馈扳机
在 dualsecse 控制器中新增的力反馈扳机搭配 ps5 平台的专门主机优化,在一系列射击游戏中能获得更优秀的感官体验。
暂时就会这么多,想到了再更新。欢迎各位大佬对文章有任何问题可以通过主页的联系方式联系我进行探讨。