欢迎阅读关于战斗设计系列的第一篇文章!这一切都是从一篇文章开始的,但很快就发现这个话题非常广泛和复杂,以至于能够用一篇文章来解决它。

本系列是文章Keys to Rational Enemy Design的逻辑继承,因此请务必查看它。

在这个系列中,我们将讨论设计师需要考虑的所有组件,以产生一场活泼、有意义、有益、基于技能的战斗

  • 起搏

  • 敌人 AI 和决策树

  • 集团人工智能

  • 球员的能力和指标

  • 玩家的策略

  • 难度管理和合理化

  • Hitboxes 和 Hurtboxes

  • 当然,攻击是我们今天的主题。

我们从这个主题开始这个系列,因为攻击是战斗中最核心的组成部分。剖析构成攻击的因素,无论是对于玩家还是玩家正在战斗的敌人,都将阐明一场精彩战斗的关键:可读性、公平性、技巧、挑战、目的……

我们将讨论攻击的不同阶段、机会窗口(或简称为WoO)、动画、输入延迟……并且,希望您在本文结尾处拥有挑战自己战斗的所有关键系统并识别使《空洞骑士》或《仁王》等游戏在该领域如此出色的元素。

战斗类游戏设计的关键:攻击剖析

但在开始之前,了解我们将讨论的范围很重要:战斗是指玩家与一个或多个敌人之间的任何实时武装对抗然后,我们的研究将独立于上述武器,包括拳头、近战武器或远程武器。Street Fighter, Punch-Out , For Honor, Assassin's Creed, Hollow Knight, Cuphead, Mordhau, Dark Soul……这些游戏中的每一款都使用全球相同的设计规则来对抗玩家,而这些就是我们今天要分解的那些,从与它的敌人的一面。

敌人的攻击

为了正确设计攻击,我们首先需要了解构成攻击的阶段。敌人的攻击在纸面上非常简单明了,并且总是由三个不同的元素组成:

战斗类游戏设计的关键:攻击剖析

把它想象成现实生活:如果你想踢一脚,你首先要开始准备你的身体,向后弯曲你的身体,武装你的腿。这就是期待然后是攻击,这是关于打击对手的一小部分。最后,一旦攻击结束,你的身体将不得不回到它的最终休息位置(可能是原来的那个):这就是恢复

战斗类游戏设计的关键:攻击剖析

好吧,电子游戏中的攻击以完全相同的方式工作:

战斗类游戏设计的关键:攻击剖析

一个原因当然是因为我们的玩家虽然是在一个虚构的世界中玩耍,但他们也期望现实生活中的约束和力量也适用于其中:重力、重量、解剖学、生理学……但我们会在谈论动画时谈到这一点。

另一个对我们游戏设计师来说特别有趣的原因是,这三个阶段对游戏玩法至关重要,每个阶段都有其独特的方式它们是玩家战术出现的基础,并且经过精心设计以平衡难度、挑战能力和推动游戏风格。

让我们以玩家体验作为本文的共同主题来开发它们。

关键 #1:每一次攻击都应该分为 3 个阶段:预期、攻击和恢复。

预期

从本质上讲,对攻击的预期是特定攻击即将到来的玩家的标志(请参阅标志和反馈的关键)。这是一个警告它会驱使玩家在攻击发生之前逃跑,格挡、闪避,甚至推他的运气并尝试击中敌人来打断攻击。

为了使预期阶段正确发挥其作用,它必须遵守一些规则:

  • 每个预期的动画必须是唯一的:来自该敌人的其他攻击不能具有相同的预期(除非您想对您的玩家造成扭曲,我来判断谁)。我所说的独特是指完全不同在激烈的战斗中失去了微妙之处,玩家永远不会看到敌人在开始不同的攻击之前稍微改变了姿态,最终会导致挫败感。

  • 每个预期的动画都必须暗示其后续 攻击:玩家不应该依靠记忆和反复试验来学习如何击败敌人。动画,就像在现实生活中一样,应该遵循一个逻辑(例如,在将日志分成两部分之前将斧头放在身后)。记录并研究玩家与敌人的第一次遭遇。即使他们受到攻击,他们也应该看到它的到来并开始做出相应的反应。

关键#2:有效的预期转化为独特的警告动画,传达即将到来的攻击。

Cuphead是一个很好的学习参考。他们过度夸张的动画风格和 1930 年代的卡通代码让他们能够真正创造出我在游戏中见过的最清晰的战斗动画。

我的意思是……看看那个期待!

战斗类游戏设计的关键:攻击剖析

既然我们谈到了动画的单一性和连续性,还有一个与预期相关的重点要讨论:时机这种期待应该持续多久?或者,在开发方面:预期必须有多少帧?好吧,不幸的是,没有明确的规则,因为它取决于两个因素:你希望玩家做什么动作(以及需要多长时间)?你想给他们的额外保证金是多少?请记住,承认即将到来的危险并对其做出反应对于人类来说并不是立即的(不幸的是)。

根据经验,考虑玩家的反应时间为 0.25 秒(因此在 30fps 游戏中大约 8 帧,在 60fps 游戏中大约 15 帧)。现在假设您希望玩家阻止特定攻击,并且该阻止将在其动画结束时有效,即玩家按下阻止按钮后 10 帧。最短预期时间10+8= 18 帧!当然,其他变量可能会影响这个数字:根据玩家与敌人的距离、输入延迟等,武器需要到达玩家的额外帧数。但你明白了。

躲避/招架/打断/阻挡攻击的难度体现在一个单一的指标中:在这个最小预期时间之上,你给你的玩家多少额外的缓冲。这部分将是玩家和开发者之间不断的微调。游戏测试是关键。

关键#3:预期时间=(玩家的反应时间)+(预期玩家的技能触发时间)+(难度缓冲)。

攻击

攻击部分对我们来说是最明显的想象,因为它完美地模仿了现实生活中的场景。敌人会尝试使用其武器(拳头、剑、枪)打击我们玩家的脆弱部位:通常是身体。很容易。

话虽如此,有很多微妙之处会让攻击感觉很好。我们在这里寻找的是一种敏锐、活泼的感觉,而不是一种草率的不可预测的感觉。

在设计攻击时,您希望它是:

  • 立即的

  • 明确的

  • 有明确的意图

  • 精确的

  • 推动特定玩家的反应

这似乎很简单,但很多游戏都错过了这些方向。具有即时攻击意味着您的动画从预期结束到恢复开始的时间不得超过几帧这意味着您可能必须稍微弯曲物理定律以夸大运动。当然,我们可以找到大量极慢、有压力的攻击的例子,但这些并不会改变我们试图实现的目标:我们希望玩家能够准确地判断攻击何时会落地在那一刻的任何模糊都会导致草率、令人沮丧的攻击。

推动特定玩家的反应并明确表示您希望您的攻击非常刻板,并且其指标适合玩家的能力例如,您不希望以不同的速度进行波浪状的对角线攻击。相反,您会更喜欢以恒定速度进行干净的水平滑动。

看看仁王的妖怪双重攻击

战斗类游戏设计的关键:攻击剖析

还记得我所说的关于弯曲物理定律的内容吗?期待是缓慢的,涉及整个妖怪的身体,展示了那把斧头的疯狂重量(和致命的力量)。考虑到举起这把武器的难度,恶魔不可能这么快挥动它。但在那个特定的时刻,解剖学和现实主义并不重要。重要的是他的挥杆是即时的并且完全是水平的,这让球员可以完美地把握他的闪避时间。

后续攻击遵循相同的原则:完全垂直且瞬间发生。你会注意到这次攻击无法击中躲过第一击的玩家(妖怪不会在攻击中调整方向)。它既可以用作玩家进行自己反击的机会之窗(WoO),也可以用作玩家被第一击击中时的双重惩罚

关键#4:攻击是即时的、持续的,并且具有非常少量的可变参数。

旁注:看预期。它是独一无二的,可识别的,没有微妙之处。我看到的缺点是这种斧头旋转距离看起来像攻击有多近。Nioh实际上通过在攻击阶段(即危险部分)为武器添加 VFX 来处理这些问题(因为它们在敌人中很常见)。武器轨迹是非常有效的标志,支持学习和理解敌人的攻击和模式。很多游戏都用到了这个技巧,你也可以考虑一下!

关键#5:在所有攻击中添加武器轨迹视觉特效,跟随武器及其碰撞箱,是突出其致命部分的简洁方式(视觉特效持久性将强调攻击方向)。

恢复

最后,一旦执行了攻击,就会恢复。让我们马上说清楚,这个阶段的目标非常简单:给玩家一个明确的机会之窗一个可以反击、治疗、逃跑、重新加载、计划改变战术的窗口……这个恢复是在战斗中给玩家一个小小的喘息机会。与前两个阶段相比,这里没有规则可以尊重。

该形式可以采取任何你想要的形式:一个敌人在其最终攻击位置上保持更长时间(很容易实现,看起来很糟糕),一个敌人在着陆攻击后将其武器移出卡在地面上,或者一个筋疲力尽的动画在一次特别残酷的攻击之后……可能性无穷无尽!

时间也是完全开放的:从没有开口的单帧链接移动到完整的 10 秒站立动画!

战斗类游戏设计的关键:攻击剖析

Bloodborne中的敌人经常在攻击后将他们的武器拖回原位,为玩家留出足够的时间进行反击(与每次攻击的致命程度相比,这是平衡的),正如敌人在结束时强调的那样.gif

关键#6:复苏是由时机驱动的。这个时间取决于你想给你的玩家的 WoO 的长度。

敌人案例研究

现在我们分别分解了每个阶段,让我们看看它们如何组合成完整的攻击,一组攻击如何平衡,以及它如何使战斗变得独特和令人难忘。

我们将研究空心骑士中的一场boss战:与大黄蜂的第一场战斗大黄蜂在游戏开始时是一个特别可怕的敌人(导致论坛上的愤怒页面),但我们将看到她实际上设计得特别好我的理解是,与之前玩家必须打的所有 Boss 相比,Hornet 是第一个真正适应玩家的 Boss :她打破模式、攻击触发玩家接近、精确瞄准玩家位置等等。这是一种全新的游戏玩法,让玩家非常不安。

为了该示例,我们将需要 3 个指标:

  • 我们将考虑游戏以 30fps 运行(游戏实际上以稳定的 60FPS 运行)。

  • 玩家的攻击几乎是瞬间的:几帧长,在没有预期的情况下触发并且恢复最少。

  • 治疗是一种需要45 帧不间断(1.5 秒)的能力,同时在整个持续时间内将易受攻击的玩家锁定在原地。

大黄蜂只有 4 次攻击:

  • Dash:在地面上,冲向玩家,有方向性。

  • 投掷:在地面上,将她的武器发射穿过大部分竞技场,然后将其收回(两个攻击时刻),定向。

  • 套索:在地面或空中,作为保护措施触发,将玩家推开,360 度。

  • 俯冲:在空中,跳跃并俯冲到确切的玩家位置(在俯冲开始时计算,未修正的中间攻击)

这是每个攻击的分解,逐阶段,时间

战斗类游戏设计的关键:攻击剖析

这个故障告诉我们这个敌人的设计有多棒!让我们先来看看这些攻击的不同阶段:

战斗类游戏设计的关键:攻击剖析

每次攻击的预期都有一个独特的动画即使是在一个没有什么特征的小角色上,Cherry 团队也设法创建了高度可读的攻击。正如这张图片所强调的,一种非常强大的方法是将这种独特的动画与独特的身体形状相结合。这是一个非常强大的攻击记忆工具。

关键#7:动画中敌人的整体形状是一个强烈的单一性向量,同时保持微妙和不打扰。

战斗类游戏设计的关键:攻击剖析

攻击本身非常独特,都通过独特的 VFX 突出显示(冲刺攻击 VFX 是一种简单的运动模糊)。它不仅对玩家来说是一个清晰的标志(就像我们在 Nioh 示例中看到的那样),而且它还有助于区分它们中的每一个。

战斗类游戏设计的关键:攻击剖析

最后,恢复都是相同的,基本上是大黄蜂的休息姿势。这允许 Team Cherry 随时取消恢复(例如,如果认为这个特定的恢复 WoO 已被玩家充分利用),同时确保动画过渡保持完美但这是另一篇文章的主题。

关键 #8:如果您需要取消敌人动画,请关注过渡帧并将其视为该敌人的空闲姿势。

但是战斗崩溃还有另一个非常有趣的方面,它将成为定义敌人难度和推动游戏玩法单一性的关键:时机

大黄蜂的进攻时机

每次攻击的每个阶段的时间都起着至关重要的作用:它们定义了游戏玩法他们告诉玩家他们能做什么,不能做什么:什么时候进攻,什么时候后退,什么时候推运气,什么时候阻挡……每一次进攻都需要自己的设计和特点。

从这个角度来看,大黄蜂的攻击是一个非常干净的例子:

战斗类游戏设计的关键:攻击剖析

  • 短跑

    • 预期:15f (0.5s),所有预期中最短的。它会造成非常紧张的攻击,真正挑战玩家的反应(难度缓冲很小)。这足以让玩家注意到动画并跳到安全地带。

    • 攻击:10f,短距离,非常快,在预期的连续性中。

    • 恢复:10f。这很有趣:在大多数情况下,玩家反击的时间太短了,这个时机积极地否认了 WoO但是这种攻击具有恒定的位移指标,熟练的玩家可以安排在攻击结束时几乎接触,利用这个极小的 WoO 进行命中。

战斗类游戏设计的关键:攻击剖析

    • 预期:20f。更加放松,让玩家有时间预测这次危险的攻击。

    • 攻击:20f+15f。玩了两次(武器来回),范围几乎覆盖了整个竞技场,它邀请玩家跳入攻击,并利用整个 WoO 的一秒对大黄蜂进行多达 2 次命中.

    • 恢复:10f。如前所述,这个时机不足以让玩家利用它,有效地强调了之前的攻击阶段 WoO。

战斗类游戏设计的关键:攻击剖析

  • 套索

    • 预期:20f。这种攻击会在玩家接近时触发,并且会阻止 Hornet 的附近,额外的帧允许玩家后退到安全的地方。

    • 攻击: 30f。这也很有趣。这种攻击可能在一眨眼之间发生(回击),没有必要让它持续那么长时间。这里真正发生的是,这种攻击创造了战斗中最大的 WoO不要打大黄蜂(因为她受到保护),而是要治愈:这是玩家在战斗中唯一干净和安全的时刻,Cherry 团队的设计师确保了这一点。

    • 恢复:同样,非常长(几乎 1 秒)让玩家完成治疗,或者接触和反击。

战斗类游戏设计的关键:攻击剖析

  • 潜水

    • 预期:非常长的预期,让玩家为即将到来的非常危险的攻击做好准备:一种针对玩家确切位置的攻击。

    • 攻击:平均长度和难度

    • 恢复:一个小的 WoO,但对球员有用,因为如果他们躲避命中,黄蜂队会停在他们旁边。

关键#9:攻击的时机,在其第 3 个阶段,将定义游戏玩法并推动玩家的机会和战术。

这篇分析,只要花时间写,就只看大黄蜂的攻击了。节奏、人工智能和竞技场都是需要同样仔细研究的不同主题。设计敌人是一个漫长而精确的过程,在严肃的战斗型游戏中是不可避免的。许多游戏将大部分精力放在战斗的玩家方面,这是一个错误。

我真的邀请你检查空洞骑士的每一个敌人和老板它们都是奇妙的设计和无限的灵感来源。

动画片

在战斗设计中涵盖动画显然是一个值得单独写一篇文章的话题。同时,我邀请您观看此视频以结束我们的空心骑士案例研究:

提醒一下,这是我们已经讨论过的内容:

  • 预期:动画的形状和姿势必须独特,并且应该暗示即将到来的 攻击

  • 攻击:动画必须是即时的(即使它需要打破物理规则),具有明确的命中位置一致的方向

  • 恢复:玩家WoO。动画必须有明确的签名,并且可以以空闲姿势结束,以便轻松过渡。

游戏设计师与动画师配对是战斗设计中的关键组合。动画师将处理肌肉、重力、重量、解剖学……游戏设计师将处理时间、WoO、预期行为、战术、模式识别……这些领域将不断发生冲突,并且通过不断的来回来回找到最佳位置这两者之间的合作

关键#10:将在游戏设计和动画的交叉点找到最先进的战斗。这些域应该相互补充。

但是攻击话题的另一面呢?玩家方面?

玩家的攻击

玩家的攻击结构与敌人的攻击结构惊人地接近。它有一个很大的补充:触发器部分

战斗类游戏设计的关键:攻击剖析

与敌人在决定时立即触发攻击相比,玩家将不得不经历一个耗时的过程:攻击的触发。这个过程涉及相当多的步骤:

  • 决定发动特定攻击并将信息发送到手中的心理过程。

  • 物理按下按钮所需的时间(触发器和死区是最差的)。

  • 按下此按钮与游戏实际注册之间的延迟(电传输等)。

  • 游戏对其采取行动并实际触发攻击所需的时间。

前 3 个元素是不可避免的,而且几乎超出了我们的控制范围(大多数甚至取决于玩家的设置)。但是最后一项实际上是需要非常小心的,这篇文章是我们深入研究它的好机会。这就是我们在谈论input-lag时通常提到的。

输入滞后

输入延迟可以由许多不同的来源产生,包括硬件本身、网络连接、FPS 计数、游戏算法,甚至是一些动画死帧。

战斗类游戏设计的关键:攻击剖析

不幸的是,无论你多么优秀,你都无法避免它。这个问题可能会导致玩家的不适和挫败感,并且会直接影响游戏的清晰度以及游戏是否具有响应性。

Super Meat BoyHollow KnightCoD:Modern Warfare 2,在最佳条件下播放,输入延迟均低于 100 毫秒这是你应该瞄准的。GTA4战地 3的平均时长均为 160ms,这是可感知的,直接影响游戏玩法。GTA的情况下,它可能并不重要,因为游戏支柱并不围绕着一个奇特的战斗设计,但这就是为什么CoD总是感觉比战地更紧张的原因(尽管BF4下降到平均 95 毫秒和回来参加 FPS 比赛)。

尝试测量角色每个动作(跳跃、冲刺、击打、阻挡等)的输入延迟。如果您有问题,在深入研究引擎和图形算法之前,请尝试检查这些经典问题:

  • 这可能不是输入延迟,而只是动画开始时的一些死帧

  • 您的FPS 下降,这是一个非常常见的反应性问题(特别是在 VFX 上的攻击很重的情况下)。

  • 您的游戏算法正在“等待”几帧。

相对于最后一点,我开发的游戏在处理结果之前检查玩家输入是轻击还是按住时会检查 10 帧……这是每个动作丢失 10 帧,并且在降低输入延迟的同时轻松获胜.

关键 #11:为角色的所有动作计时,并确保关键动作(精确的战斗、像素完美的平台、快速事件等)都低于 100 毫秒。

预期与恢复

现在,让我们快速了解玩家攻击的预期和恢复。我将它们归为一组是因为,与我们之前在敌人身上看到的相比,这两个阶段的目的相同,而且更直接:它们在这里提供风险回报情况在游戏玩法中创造多样性

《黑暗之魂》这样的游戏以其围绕玩家承诺的战斗方式而闻名:一旦玩家触发攻击,就无法取消试图发动攻击意味着玩家在预期和恢复期间将非常脆弱然后它变成了一种权衡:承诺更大的损失以换取更高的被击中和中断的风险。

Nioh不仅用它的武器玩弄了这种逻辑,而且还玩弄了一个设计精美的姿势系统:

战斗类游戏设计的关键:攻击剖析

关键#12:精确决定玩家的动作是否可以取消,如果答案是肯定的,在哪个时间范围内。

随意尝试这 2 个阶段:例如,空洞骑士有一个单一的预期框架,并在其基本攻击上立即恢复,从而带来更少惩罚和更紧张的战斗(但仍然无法取消)。

攻击

最后是攻击部分。
这个遵循与敌人相同的构造规则:

  • 立即的

  • 明确的

  • 有明确的意图

  • 精确的

  • 满足特定玩家的需求

最终,一个尖锐而清晰的战斗系统是玩家和敌人之间不断来回的,由指标、时间和攻击特性定义。这些将在推动玩家每时每刻能做什么和不能做什么方面发挥关键作用,并让他们制定策略并发展围绕他们玩的技能。