首发“腾讯GWB游戏无界” ,2021年5月发文
篇一:
如何打造满足多种游戏类型的技能设计模块?从技能触发方式谈起
作者:Bruce
腾讯互动娱乐 高级游戏策划
技能设计是游戏中非常重要的一部分,那么,如何才能快速设计出好玩的游戏技能?是否能通过模块化组合的方式达成目的?本文作者分享了一些关于技能模块设计的想法思路,希望对大家有所启发。
“当你想要设计一个角色或者BOSS,需要用到技能表现,结果特性组花费时间开发之后,结果验证不好玩,或者验证的效率太慢。有没有办法在过程中,快速调整技能的设计思路?”
之所以想写这个文章,是因为2019年在做技能模块设计,简单来说就是用UE4Gas的底子,搭建一个策划自主技能设计的开发模块,希望策划应用到技能设计时,能通过模块化组合的方式,提供快速满足策划设计思路的工具和工作管线。
历经几个月的摸索,算是出了点成果,所以就想总结开发过程中的一些东西,跟大家分享一下自己关于技能模块设计的想法思路。
一、游戏技能是什么?
既然咱们说到模块技能设计,先来看看游戏技能指什么?我找了各种说明,综合对比后,给出这么一段话。
游戏技能指的是游戏中通过游戏行为造成攻击、防御、辅助等效果的方式。
随着游戏玩法元素更多的衍生融合,我们可以看到,在主流的游戏类型中,大多都会涉及游戏技能的应用。
所以针对不同的游戏类型,关于游戏技能定义,我这里加了一条个人看法,游戏技能的表现会依托于不同游戏环境,有不同的效果和表现方式。
二、如何打造满足多种游戏类型的技能设计模块?
我当时做这个内容的时候,在想虽然是面对不同类型的游戏技能,但我们先不用陷入到具体的技能设计中,而是从各种类型的游戏技能具体效果上抽离出来,找出游戏技能的必要元素。
必要元素也就是组成技能的基础类型模块,希望类似于乐高的大颗粒积木一样,可以用这些基础类型模块去自由组合成不同技能的方式。
带着这个思路,重新梳理了市面不同类型的主流游戏技能,咱们不管游戏技能类型的差异化多大,无非逃不开六个基础类型模块,依次为:
1、技能的触发方式;
2、技能的释放条件;
3、技能的释放选择;
4、技能的表现方式;
5、技能的生成机制;
6、技能的影响效果。
三、技能的触发事件
关于技能的触发方式,通常大家的理解,也就是说技能是怎么触发的?
传统的触发方式理解为:
一种是主动触发:也就是主动按键触发的方式;
另一种是被动触发:而被动触发的条件就非常广泛,比如受伤触发、死亡触发、命中触发等等触发方式。
而我们所说的触发方式,不会只归纳为主动和被动的方式,而是依照触发事件来划分。
比如有些主动技能中,也存在主动按键之后,需要满足某个触发事件,才会触发技能行为。
比如莫甘娜的“灵魂镣铐”技能,从传统意义上来说,是个主动按键的技能,但触发的方式中,还需要验证范围触发的方式,也就是说范围中检测到敌人后,才能够触发。
说到这里,大家伙可能就会吐槽了,这东西我也知道啊,不就是设定触发事件吗,这个设计技能的时候都会做,这有啥可瞎白活的?
别急,待我一一道来。
为了选择足够通用和样本性的触发事件,我对市面上技能机制比较全的几款知名产品进行分析后,横向对比了四百多个技能的设计,发现这些技能虽然各有特色,但是技能触发的方式几乎囊括在八种触发事件中。
给八种事件做了简单命名,分为:
攻击、命中、时间、空间、状态、属性、死亡、验证。
当然这八种类型的事件,不是单独存在的,还可以通过多种事件耦合的方式,做出更多特性的展现,不夸张的说,这八种事件已经能够满足绝大部分的技能设计需求。
1、攻击触发事件
攻击触发:简单理解来说,就是发起攻击之后,会触发的行为事件。
常用在攻击方式变化和攻击发起后,影响角色属性和效果的技能效果中。
需要说明的是,攻击触发事件,只跟攻击发出有关,逻辑上只要攻击发出就会触发事件,而不需要检测是否命中。
当然这种用法的方式会通过额外的判定条件,来给攻击触发事件增加不同的特色用法。
比如在射击类型游戏《无主之地》的枪械特性中:攻击行为之前会判定是否满足消耗子弹数量?如果满足,则每次射击会判定消耗两发子弹,继而触发了攻击事件,通过消耗2发子弹的方式,提升了枪械的攻击效果。
再说一下攻击触发事件的另外一种应用方式,在《王者荣耀》中有这样的设定,英雄在普通攻击到一定次数之后,会触发攻击方式的改变。
以MOBA游戏《王者荣耀》中鲁班举例:
每次攻击行为事件会触发记录攻击次数的行为,当攻击次数=4的时候,下一次攻击行为会改变攻击方式。
而在SLG类型的游戏《鸿图之下》中,有一类连击技能,攻击触发事件中通过概率判定的方式,触发技能效果。
关于攻击触发事件的应用方式还有很多,这里只是列举了一些常用案例。
当然无论应用方式怎么变化,攻击触发事件的核心,就是逻辑上通过攻击触发的行为事件。而在这个应用过程中,设计者通过添加不同的条件判定,就会为攻击触发事件增加有趣的特性使用方式,以丰富技能的效果。
2、命中触发事件
命中触发:判定单位(敌人/自己)在程序逻辑上被有效命中之后,会触发的行为事件。
在命中触发事件中,通常用到的是判定命中之后,针对“发出攻击者”和“被攻击者”的效果反馈,以及命中之后的条件判定的反馈。
比如《APEX英雄》中“班加罗尔”的“疾步”技能:当自身被命中后,触发了持续时间内,提升自身移动速度的技能效果。
在这个技能案例中,命中触发事件所判定的命中目标为自己,当自己被命中后,移动速度属性提升。
而在《魔兽世界》战士的“新鲜血肉”技能中:则判定为我命中敌人之后,会触发的行为事件。这种情况下,所判定的命中个体就是敌人。
以上两种技能,说明在命中触发事件的这种机制,除了要判定命中的逻辑之外,还要记录命中发生的双方单位的信息。
还有一种命中触发的应用方式,是对攻击命中发起人和被命中的人产生了双向影响。
《英雄联盟》中“披甲龙龟”的“尖刺防御”技能,在命中触发事件的用法中,首先是敌人命中自己会对自己造成伤害,但在自己被命中后,也会反弹给命中自己的人造成伤害。
当然我们这里所说的命中事件,不单只是用在角色命中的技能当中,还会用在命中Actor(逻辑判定为可被攻击命中的物体)的判定当中。
例如《APEX英雄》中,瘟疫释放的毒气罐,就可以被攻击命中,提前触发爆炸的效果。这个也是游戏技能中,最常用的一种方式,对于某个特定Actor的命中判定的反馈。
所以受击行为,首先是从程序逻辑中如何定义命中,而在命中行为事件的应用中,最基本的用法就是记录“攻击”和“被攻击者”信息,从而在技能效果中,扩展受击行为事件的技能效果。
3、时间触发事件
时间触发:满足特定时间区间或节点的行为结果,触发的行为事件。
那么问题来了,特定时间区间、特定时间节点到底该怎么解释?
首先是满足特定时间区间的用法,我会解释为在持续时间内的才能触发的行为事件,各种游戏类型中常用的持续性技能都会用到类似的方式。
比如《APEX英雄》恶灵的维度裂隙:开启技能后,持续时间内,开启两座传送门,己方队员碰触传送门,会触发在两座传送门中传送角色的技能行为。
这里的时间触发事件的先决前提是满足在传送门存在的特定时间区间内。
而满足特定时间节点的用法,则是要求时间到达某个特定的节点时,才能触发的行为事件,在很多游戏中,延迟生效的技能多会用到类似的方式。
比如《英雄联盟》时光老人的“定时炸弹”:指定目标地点投掷一个定时炸弹,3秒倒计时之后炸弹会爆炸。这里所描述的3秒之后,就是满足特定时间节点最常用的一种方式。
在满足特定时间节点的用法中,还有一种满足游戏规则定义的特殊时间节点,比如四季、昼夜、年份,甚至是通过技能效果改变当前时间节点,以满足触发技能行为事件。
在《DOTA2》的暗夜魔王就属于这种的典型应用,在《DOTA2》的游戏规则中,设定了关于昼夜切换的游戏规则,暗夜魔王在黑夜这个特定时间节点阶段中,自身的技能会获得额外加成,甚至自身还拥有着直接改变当前时间节点的技能方式。
当然关于“时间”这个概念,还有很多衍生的用法,在这里我们主要是提炼“时间触发事件”的概念,以上的三种案例是用来阐述关于时间触发的应用方式。
4、空间触发事件
空间触发:以指定Actor为中心进行空间范围检测,满足预设条件后,触发的技能行为事件。
在空间触发事件中,通常大家会看到两种方式的应用,范围内有效条件的持续监测和范围边界的条件检测,前者应用途径更广,几乎各种游戏类型都能看到,而后者应用的环境相对较少。
对于范围触发的事件,我们最多接触的就是类似光环类型的技能,比如《魔兽争霸》中的“荆棘光环”,又或者是《APEX英雄》中恶灵的“魔音传脑”,都是类似的应用方式,以自身为中心进行对范围的目标,进行实时检测,只要目标触及范围内,并且满足判定条件,则触发技能事件。
除了实时检测直接生效技能效果,还有对于主动触发的判定,比如《英雄联盟》中堕落天使的“灵魂镣铐”:
在释放技能前,以自身为中心进行范围检测,当检测到敌方目标后,满足技能触发条件,触发了对范围内敌人进行伤害和减速效果;如果没有检测到,技能则无法被触发。
在《APEX英雄》的直布罗陀中防护罩技能,则是空间边界的条件检测,以召唤Actor的位置为中心,一定空间范围边界,开启一个立体的防护罩,防护子弹和爆炸伤害。
这里的防护罩是设置空间范围边界的条件检测,当爆炸发生且爆炸会影响空间边界时,进行空间范围条件检测,检测爆炸点处于防护罩的边界位置,当爆炸发生在防护罩的一侧时,护罩将会挡住爆炸伤害。
关于“空间”这个事件的应用,除了我们这里的示例介绍,以圆形/球形范围的单次或者持续时间的检测触发的方式;还有在空间范围的形状变化,以及更多在条件判定的应用。
比如《英雄联盟》的安妮的焚烧技能,她的技能空间范围检测的则是锥形的范围。
5、死亡触发事件
死亡触发:以指定Actor处于逻辑死亡状态判定后,触发技能行为事件。
死亡状态,大多数游戏中对死亡的逻辑判定,会聚焦为“生命属性为0,并且无法进行输入指令操作”,是游戏中最常接触的一种状态效果。
比如《APEX英雄》中的幻象,当幻象处于逻辑“死亡”的状态时,在死亡位置生成了假的Actor,自己短暂隐身。
所以关于死亡触发行为,核心都是判定Actor处于逻辑死亡状态,触发的技能效果。
比如《APEX英雄》亡灵的“死亡图腾”技能应用,在指定的位置生成一个图腾,处于图腾有效范围内,玩家进入死亡状态后,会触发在图腾附近复活重生。
而在《魔兽世界》中关于死亡的另外一种用法,是在遭受判定为死亡状态的时候,转化为抵挡伤害,暂时保持存活状态。
这两种都是死亡状态时,立刻触发了技能效果,从而改变了死亡状态。
还有一种是确认了死亡状态,但是设置了即使处于死亡状态,玩家依然在死亡状态下的技能效果。
《英雄联盟》中死歌的死亡契约技能效果,当自身处于死亡状态时,改变了死亡的逻辑判定,在延长的技能效果时间内,玩家可以继续释放技能。
关于这种用法就是一种复合机制的使用方式,首先是在死亡状态触发时,其次是关联了时间触发事件的应用,所以在触发行为事件的应用中,除了单一触发机制判定以外,通常还有多种机制的复合应用方式。
6、属性触发事件
属性触发:检测游戏中Actor属性数值的变化,触发技能行为事件。
通常在游戏制作的时候,都会对游戏中的Acotr,这里我统称为游戏角色,设定基础属性,用来衡量各种行为状态的标准。
比如最基础的生命值、移动速度、攻击速度等等,而技能相关的还有用来衡量技能消耗的蓝条或者能量等。
《英雄联盟》中奥拉夫的狂战之怒,是最典型的属性触发方式,每次当血量属性降低的时候,提升自身的移动速度。这种属性触发的应用方式,实质上就是实时监测自身某种属性的变化,满足条件判定后,触发技能行为效果。
而《APEX英雄》辛烷的兴奋药剂技能,对比狂战之怒,同样是减少生命值,提升移动速度的技能效果。
但是在兴奋药剂技能中,是主动触发的方式,技能逻辑是当辛烷使用兴奋药剂技能的时候,持续时间内,提升移动速度,并且自身“生命值”属性发生变化。
还有一种是当属性发生变化后,需要判定属性是否达到临界值,这就需要触发的同时针对这一次属性变化进行验证,来确定是否达到技能触发的条件临界值。
属性触发事件中最常见的触发方式,就是针对属性数值的变化进行判定,当满足条件时就会触发技能效果。
7、状态触发方式
状态触发:检测游戏中Actor状态效果的变化,触发技能行为事件。
我们在游戏制作中,除了属性数值之外,还有一种常见定义的内容,就是Actor在不同行为下的状态效果。比如最常见的加速、减速、晕眩、沉默等异常状态效果,通常是游戏中定义Actor在游戏中附加的正向或负面状态效果。
以“沉默”这个状态效果为例,游戏中通常定义为Actor处于沉默状态下将无法释放主动技能。当然每个游戏中关于状态的逻辑定义会有些差异,关于各种状态效果和定义方式,将会在后续的状态篇中详细说明。
比如《APEX英雄》亡灵的“沉默”技能应用,投掷装置,对范围内的敌人造成无法使用技能的状态效果。
当然大家有可能会疑惑,这不是“沉默”技能的直接效果吗?怎么会归到状态触发效果中?
通常游戏中对于属性和状态触发的用法,是针对属性或者状态发生变化后,验证这两种变化的标准。当满足变化标准后,就会触发技能行为事件。
以《魔兽世界》中刺客的“药膏专家”为例,技能效果是针对目标验证是否中毒,如果满足中毒状态的话,将会返还8点能量。
此处的状态触发事件的使用方式就是针对特定状态“中毒”的目标进行验证,满足验证目标,将会触发技能事件。
当然还有图上这位,玩过《英雄联盟》的玩家,都知道是谁,疾风剑豪,经常有我方“托儿索”,敌方剑豪的美誉。
“狂风绝息斩”的技能是个典型的状态判定的触发行为。技能触发的条件,是判定当目标处于被击飞的敌方目标空间范围内,才会触发技能事件。
疾风剑豪的触发机制,是一种需要高端技巧或者队友配合的机制,所以发挥的场景,需要玩家对于技能的衔接理解和熟练度都有一定的要求。
而通常这种需要状态触发的机制,一般都会定义为游戏中的通用机制。比如减速、击飞、击退等这种大多数条件下满足的技能机制。
8、叠层验证触发
叠层验证触发:验证游戏中Actor上的叠层BUFF,满足验证条件后,触发技能行为事件。
从严格意义上来说,叠层验证并不是游戏中统一归类的一种触发事件,更多是一种辅助其他触发事件的条件验证方式,使用场景,也是会跟其他的触发机制融合使用。
不过叠层验证这个机制出现的频率太高,几乎在任何游戏类型,任何游戏方式中都会出现,所以在这里把叠层验证当成一种归类的触发方式来说明。
例如在《英雄联盟》中,这种叠层验证的使用方式就层出不穷,目前英雄总共155位英雄,技能中带有叠层验证的英雄超过了100位。
以黑暗之女安妮为例,嗜火,在施放4次技能后,安妮的下一个伤害技能将会造成晕眩。此时的叠层验证应用,是将安妮每次释放技能后,给自身添加BUFF,满足叠层验证次数后将会触发“晕眩”状态效果。
而沙漠死神内瑟斯的痛苦汲取,则是叠层验证和死亡触发的融合应用方式,判定当敌人死于痛苦汲取的技能效果时,会给自身叠加伤害值。
在《魔兽世界》术士的翻腾痛楚技能中,则进一步把叠层验证的应用方式进一步融合。首先是验证当痛楚BUFF叠加到第4层时,开始造成伤害,其次是痛楚BUFF叠加层数后,将会增加伤害效果。
在叠层BUFF中,通常我会把BUFF分为两种:
一种是游戏意义中的有效BUFF,意味着对于Actor有实质意义上的效果BUFF,比如刚才提到的翻腾痛楚BUFF的应用效果,此类型BUFF拥有实质的效果,并且承担了叠层验证的功能;
而另一种则是无效BUFF,这种BUFF,对于Actor没有实质意义,是作为记录需要验证的标准,比如黑暗之女安妮的技能次数的应用效果。
写到这里,关于技能模块化技能设计之-触发事件篇也暂时告一段落,个人在写文章的过程中,又重新梳理了一篇过程,深觉游戏中技能应用的广博,所以本文中的总结仅代表个人的理解,大家如果有什么其他见解,也希望能够跟作者交流。
篇二:
ARPG游戏技能该如何设计?流程是怎样的?
作者:鱼骨头
ARPG游戏技能施放需要经历哪些流程?本文作者将其拆成三个阶段,今天将和大家聊聊技能有效性检测。如果你也在烦恼游戏技能设计,看完这篇或许能帮你少走一些弯路。
大家好,我是鱼骨头,今天我想跟大家聊一下ARPG的技能流程。在这里我先将技能整个流程简单的拆成三个阶段,如下图所示,分别为技能有效性检测、技能施放流程、技能生效。
简单来说,技能有效性检测是解决技能是否能放,对谁放的问题;技能施放过程是解决技能怎么放的问题;而技能生效阶段则是解决技能产生了什么样的影响的问题。本篇为第一篇,即技能的有效性检测部分,见下文。
一、前言
技能有效性检测一般都包含消耗、冷却、射程和施法目标四种变量的检测。其中消耗的规则没有太多想讲的,本文略过。冷却方面只简单聊一聊,重点还是施法目标和射程的检测与其相关规则。
二、冷却规则
技能冷却时间简单聊聊,比较通用的设计就是技能在冷却期间则无法施放,只有冷却时间为0时才可施放。这一设计想必无需赘述,以下聊一个小的优化设计--装载冷却。
在某些游戏中,技能有“装载冷却”的概念,即拥有技能的实体单位在拥有技能时,会预先进入一个“装载冷却”后才可正常施放技能。“装载冷却”和“技能冷却”是两个不同的变量,前者只会在拥有技能时生效一次,后者会在每次施放技能时生效一次。
比如某个角色在刚开始生成时,普攻装载冷却为0,但是技能装载冷却为5,则会开局直接施放普攻,等待5秒后才会开始施放技能。这两个变量可以很好的控制技能的施放节奏,尤其是AI的技能施放节奏,这两个参数相互配合则可以很好的还原出《刀塔传奇》的技能施放节奏。
在《DNF》这款游戏的竞技场中,为了平衡性和对抗节奏设计的需要,也会使高等级的技能在开局时拥有不同的装载冷却时间。
三、目标与射程的设计
因为目标和射程的关联性较强,所以打算一起来写。在这之前,鱼骨头先将技能分成两种模式,就施放时是否一定需要一个目标而分为“强目标”技能与“弱目标”技能。
3.1 强目标技能
强目标技能指的是技能施放时,技能射程内必须要有有效实体目标,否则技能是无法施放的。这种技能类型也就是大家常说的锁定型技能,在MOBA游戏中,英雄的普通攻击普遍采用的就是这种设计。
在这种设计下,因为技能射程内可能并不存在有效目标,因而玩家并不总是使用技能指令就能立即施放出技能的。但是从体验感上来讲,玩家使用了技能指令,还是期望立即能获得对应反馈的。
强目标设计中,战斗更偏数值,玩家只需要注意距离即可
在有效目标超出射程时,大部分游戏中的强目标技能都会执行追击逻辑。即系统会让施法者寻路至合适的距离后,再尝试施放该技能。注意,追击本身不属于技能流程中的内容,而是为了使有效目标满足有效射程而做的优化规则。
追击一般都会设置一个追击范围,即表示施法者只会对追击范围内的有效目标发动追击行为。如果追击范围内都没有有效目标的话,也就会提示玩家“该技能需要有效目标”,也就是用一种即时的错误反馈来提醒玩家该技能目前无法施放。
角色脚底蓝色光圈为技能射程指示器,角色会追击至合适距离再发动攻击
在这里,值得一提的是,不管是追击或是直接进行错误反馈的提示。从体验上来讲都是会降低操控感的,从玩家操控行为上而言,他的意图是发动技能,但是实际上技能并未发动。追击是一种补偿措施,而错误提示则是直接的错误反馈。
所以,就提升技能操控体验而言,鱼骨头想详细聊聊弱目标锁敌下的相关设计。
3.2 弱目标技能
与“强目标”技能对应的“弱目标”技能,则是在技能施放时,不要求技能射程内必须要有有效的实体目标,也就是说技能是允许空放的。这种设计体验上的好处主要是反馈即时,玩家发出施放技能的指令即可立即看到角色自身施放对应技能。
这种方案更多的运用在ACT游戏中,提升了操控感,但也因为操作反馈对即时性的要求,则舍去了目标选取的过程,与之代替的是对方向的选取或系统自动选取有效单位。
弱目标设计中玩家更多的需要自己来感受空间
方向型技能
对方向的技能很好理解,就是对某一个方向施放的技能。近战、远程、位移等技能都可以单纯的只对某一方向使用。
在设计上一般都是优先采用移动摇杆方向,如果没有使用摇杆,则默认为角色前方。我们可以将玩家摇杆在UI中的二维坐标,转换成角色水平地面的二维坐标。这样就构建了一个角色朝向与移动摇杆方向的对应关系。
这种技能一般用于比如翻滚(闪避)、召唤等不需要目标的技能。因为没有对有效目标的需求,所以本篇就不多讲,在下一篇中会聊到这些技能在流程上的设计思路。
系统自动选敌
因为系统都已经省略了目标选择的相关功能,那么与之代替的则是需要设计自动选敌的规则。如何能做到尽可能少操控的情况下保证技能可以攻击到目标,并且是攻击到想要攻击的目标呢?在这里,鱼骨头打算聊一下很多ARPG中惯用的自动锁敌的机制。这个机制细节较多,我们分几步来讲。
第一步-筛选目标
在选目标时,首先我们需要剔除掉技能射程外的所有目标,只保留射程内的目标。不同技能射程不同,因而保留的目标数也就不同。
如果射程内没有任何目标,则空放技能。空放技能一般都会处理成对自己空放或对角色前方某个虚拟的锚点坐标进行施放,这里便不多赘述,见下图即可。
对角色前方某个虚拟的锚点坐标进行施放示意图
如果技能射程内有目标,则选择一个目标并对该目标施放技能。为了反馈清晰,我们一般会设计成技能会朝向目标施法,但是这也并不绝对,不是所有技能都会朝向目标施法的,这个设计者自行决定即可。至于目标选择的规则,在第二步会详述。
角色普通攻击射程内无目标则空放
龙卷风技能射程远,射程内有目标则朝向目标施放
第二步-挑选“最近”的目标
在敌方单位较多的情况下,玩家使用普通攻击,则直接攻击最近的敌方单位,无疑是一个即省操作又能充分发挥技能效用的方案。
使用普通攻击,角色会立即攻击最近的敌方单位
但这种方案也有一个很明显的问题,那就是最近的敌方单位往往不是我想攻击的敌方单位。那么我们则需要加入一些更加智能的判定,即判断出什么单位是玩家想攻击的单位。在这里,我们需要结合一些设计者自己的想法,把玩家想攻击的单位改成设计者认为的玩家想攻击的单位。
以下鱼骨头会从怪物性质、镜头视野、摇杆操控、攻击范围几个点来详细阐述优化规则。
怪物性质
在挑选目标时,我们可以加入敌方单位威胁性的概念。即不同怪物有不同威胁性,这种威胁性会影响距离的计算。有些怪物影响率更高,有些怪物影响率更低,一般依据普通怪,精英怪,BOSS怪三个梯度来划分即可。
在实际应用时,我们将之前距离判断添加了威胁性影响比率,结果为距离*影响比率。譬如普通怪是1,精英怪是0.9,BOSS怪是0.8。那么同样是距离10米,在系统计算过影响比例后,三者经计算后距离分别为10,9,8米,也就是说,如果普通怪不能在8米以内的话,玩家角色施放技能则会始终攻击BOSS怪。
红色更大的敌人为BOSS,如果BOSS只是稍远于小怪的话,主角会优先攻击BOSS
按照这个思路,我们还可以将怪物的强度、健康程度都纳入计算范围,可以让玩家角色优先攻击更弱的或更容易击杀的单位。这些都看设计者具体需求,不多赘述。
镜头视野
经过上述计算后,玩家角色会攻击一个计算后的距离最近的目标,但却可能出现这个问题:游戏中镜头偏平视,距离角色也比较近,玩家明明看到前面5米有个目标,按下普通攻击按钮期待着攻击这个单位,结果角色突然180度转身攻击了后方一个距离2米的原本看不到的敌人。虽然这符合上述的逻辑,但不符合玩家的预期。
所以在上述的逻辑中,我们还需要考虑到镜头的视野。一般来讲,我们让游戏镜头可以看到的单位享有更高的优先级即可,与上述怪物性质规则一致。比如在镜头外的目标在进行距离计算时为1.1,那镜头外的目标除非明显比镜头内的目标更近,否则都会攻击镜头内的目标。
但是依然会存在一些问题,尽管运用了上述规则,但角色始终可能攻击镜头外的一个目标。并且镜头本身其实还有另一个问题,那就是目标位置相对于角色位置不太合理的话,比如目标在镜头边缘,我们攻击时观感并不舒服。那么我们就需要镜头旋转到合适的角度,以解决这2个问题。
这时候我们需要改变镜头三样参数,水平旋转角度、垂直旋转角度、与目标锚点的距离。
这三个参数可以让镜头在一个合适而又舒服的位置来观看角色攻击目标,但如果角色攻击所有目标都需要镜头旋转,又会使得镜头晃动过于频繁。
因为每款产品在这方面设计都各有特色,鱼骨头在此就只提几个常用设计。
在某些游戏中,如下图所示,用角色位置、镜头水平朝向构建出了一个二维坐标系。如果目标在1、2象限,则镜头不会水平选择;在3,4象限则会水平旋转。这是一种比较简单的设计思路,即攻击“镜头前方”的目标,前后的判断是基于主角。
角色攻击基于镜头朝向的“后方”单位时镜头会转向
角色攻击基于镜头朝向的“前方”单位时镜头不会转向
示意图,数字为象限
另外一种设计也较为通用,那便是其实每次攻击系统都会尝试改变镜头参数。他们会尝试镜头改变到一个合理的位置,让主角和目标都处于镜头的中心区域,这个中心区域的确定就需要使用到三分法的理论。三分法简单说就是把镜头分成一个九宫格,角色和目标在三分线交叉点上为最佳,两线位置次佳,如下图所示。篇幅所限就不细致讲解三分法了。
基于三分法的镜头
可见目标都在三分线交叉点位置,且保持中心对称
那么当识别到目标不在合适的位置时,镜头就自动就近旋转运动到合适的角度,以便于目标在合适的位置。这个设计需要运算出目标在镜头具体什么方位,即空间3D坐标需要换算成镜头的2D位置。嫌麻烦我们也可以运用一个更简单的算法,基于角色和目标距离差异,来设定镜头的合适参数。
摇杆朝向
我们可以让摇杆朝向的前方始终会有一个扇形区域。这个扇形的圆心是角色所在坐标,角度由项目自行设置。在这个扇形内的目标,距离计算优先级更高。这样的话我们就可以比较好的做到玩家操控摇杆来决定自己攻击哪个方向上的敌人。那么如果玩家没有操控摇杆,那在角色前方产生扇形即可,或者索性没有这个扇形。
摇杆操控的镜头
因为摇杆始终朝向红箭头的怪物,所以在怪物差不多近时攻击该怪物
有非常近的怪时,摇杆也不好使
攻击范围
当我们已经运用了这么多规则优化当前目标后,我们依然还面临一个问题。那就是当目标都站的非常近时候,我们很难在这些目标中精准的选到某一个目标。这个嘛,说实话,鱼骨头觉得确实很难,所以一般而言,弱目标的设计普遍使得近战攻击是范围伤害,这样一来,目标扎堆你只负责砍就行了,因为具体砍到谁都是一样的,谁叫咱们是范围伤害呢。但是远程如果也是范围伤害,不管是表现还是游戏性上一般都不太好处理,这里会是远程的一个弱势的地方。当然也有游戏远程也能攻击一片的,这就看具体项目了。
加分项--距离补偿机制
在弱目标的镜头规则下,由于3D镜头透视的关系,玩家实际上无法非常准确的感受到距离这个概念。譬如角色小人挥舞自身的巨剑,肉眼可见的攻击距离应该是2米,算上特效也是2.5米,但是怪物站在3米的地方呢?从逻辑上而言,是攻击不到的,但是从视觉感受上来看,应该是能攻击到的。
gif图中的攻击并未攻击到立方体,3D常规视角下实际上很难准确判断攻击的距离
此时,玩家以为能攻击到,而结果是攻击不到,体验上而言无疑是令人沮丧的。这时候我们就需要用到距离补偿的机制,实际上也就类似强目标设计里的追击。
即目标距离攻击者如果在一定距离内,比如4米内,我们可以让主角发动攻击时,都可以有往前位移到合适的距离。这个规则并不是攻击位移,而是在攻击位移的基础上再叠加的一个位移,如下图。
攻击时有明显的距离补偿
此处再放两张攻击位移和距离补偿的对比图
因为玩家对距离的感受是模糊的,因而我们需要设计一些规则来抵消掉玩家模糊的感受。虽然是可以增加爽感,但是确实是牺牲了精准性。因而也在很多游戏里,并没有采用这样的设计,攻击不到便是攻击不到,不会给予更多的补偿。比如怪物猎人和鬼泣就不会做这种设计,但是在原神、战神4中又做了这种设计。是要更精准还是要更爽,设计者自行决定。
3.3 结合性设计--TPS
以上内容讲的两种技能类型,各有优劣。这个主要是是对应的摇杆类操控,手柄、摇杆、手机等都在这类范围内。如果是对应键鼠操控的话,还有一个优化方案,那边是TPS类的设计。TPS是第三人称射击游戏的简称,与之对应的是FPS。
比较有代表性的作品有《龙之谷》,《永劫无间》。这种设计是在弱目标的基础上增加了比较方便的选择目标的方式,而在《鬼泣V》中,虽然有锁定方式,但本身更依赖于系统自动锁敌规则以及相比鼠标没那么方便的目标切换功能。在《原神PC端》中则是连切换目标都没有了。
TPS的设计是不需要系统自动锁敌的,因为TPS本身是可以通过鼠标悬浮目标的方式来准确锁定目标的。这是利用了鼠标的优势,不过缺陷也是有的,一是不利于移植到其他平台;二是玩家需要更多的精力放在目标选取上,会分散一部分操作的精力。
为了增加鼠标悬浮目标的准确性,这种游戏普遍都是需要准心的。这种设计乍一听有些人会觉得维和。实际上如果设计得不是特别明显的话,玩家甚至感觉不到他的存在,但尤为有效。
龙之谷是一个不太明显的十字类准心
永劫无间是一个不太明显的实心点准心
TPS类的锁敌机制呢,简单总结就是优先攻击准心悬浮的目标,如无则对准心空放。有些游戏会在准心没悬浮目标时攻击离准心更近的目标,不过这么设计的也并不多见,可以理解成是《守望先锋》中士兵76开大招的那种效果。
TPS机制优势就是可以兼顾以上两种设计,鼠标悬浮有目标并且该目标满足射程时,则是强目标技能;其他情况均为弱目标技能。并且没有系统自动锁敌。
因为镜头语言设计的需要,角色往往不会站在屏幕的正中间,一般都是偏下一些。但是考虑到准心的存在,所以一般角色都位于镜头左下会感觉舒适一些,这样代入感也会更强。比较极端的就是《战神4》,已经很接近第一人称视角了。
因为这样的设计,镜头的朝向与角色的朝向其实是不一致的,但是准心又在镜头中央,即准心揭示的方向=镜头的方向≠角色的方向。鱼骨头在此简单聊一下其中的设计,见下图。镜头位置朝向镜头方向射出射线,碰撞的第一个有效实体目标即悬浮目标,再由角色位置计算到该位置的朝向即为攻击朝向。至于空放规则,对着准心射线终点施放技能即可。
结语
1.其实技能目标逻辑上是统一的,不管是强目标还是弱目标,还是TPS类的锁敌,无非就是确定一个技能施放时的目标坐标,再根据目标位置来判断距离是否足够以及其相关处理规则罢了。
之所以写这么多,主要是想描述不同类型的游戏对锁敌的设计是有差异的,这些差异主要源于游戏本身差异和游戏平台的差异。游戏本身的差异点主要在于设计者希望玩家花多少精力在精确选敌上或花多少精力在操控上。而游戏平台的差异主要是硬件差异以及相配套的软件的差异。
并且有些技能在具体实现时也可能是多种方案结合的。比如在《原神》中的弓箭手,射程内有目标时则是一个强目标技能,射程内没有目标时,则是弱目标技能的空放形式。在《龙之谷》PC版中,也是依据鼠标是否有悬浮目标来做类似的结合的。
2.再次强调一下,追击本身不属于技能流程中,这个规则实际上是由于技能施放不符合射程条件导致的。追击的过程本身是在技能施放之前,是系统为了满足射程这个条件则自动执行的一个行为。有些项目会把这个写成AI,有些项目只是写成了系统临时接管角色,不能完全称之为AI,这就不多细述了。
但是距离补偿机制却是技能流程中的一部分,属于技能施放过程中的逻辑,此时技能已经放出,是技能施放过程中执行的一个特殊的行为,在下一篇文章中会有所提及。并且做个小预告,技能镜头运动等机制也会在下一篇文章中有更多的介绍。
3.强弱目标方案整体上而言强目标更偏策略,可以更精准;弱目标操控感更强,但是牺牲了精准性。所以一个主要应用于MOBA而另一个主要应用于ACT类。
TPS类游戏可以说是两种方案的结合方案,结合了键鼠的优势,让精准性和操控性能得到有效的结合。但结合键鼠优势同样也是劣势,那便是移植不便,毕竟只有PC才有鼠标。
最后希望能够帮到大家,我是鱼骨头,一个兴(吃)趣(不)使(饱)然(饭)成为游戏策划的快乐风男,谢谢——
来源:腾讯GWB游戏无界
|