相关文章:
战斗篇
本文的重点针对3D第三人称视角下的游戏,讨论的内容主要为操纵角色进行移动和战斗中释放技能时的操作手感。本文分上下两篇内容,上篇主要是角色的基础移动部分,下篇主要则是与战斗相关的部分。
注:本篇文章中有一部分内容可能与打击感有重叠部分,它们既影响手感也影响打击感。归根到底打击感本身也是手感的一部分,只不过重点聚焦于攻击和受击,很多关于打击感的分享中都包含了攻击判定以及动作节奏的相关部分,但作者将其归到这篇内容中。
上篇回顾链接:论如何做好动作游戏的基础操作手感(上)
一、综述
做一个动作向游戏,其核心除了操作和玩法上的策略博弈循环外,玩家最直观能感受到的就是操作反馈是否及时,表现出的动画是否流畅丝滑,上篇中讨论了基础移动相关的内容,但其实无论是基础移动还是技能动作的衔接都应有较好的表现效果。
动作游戏中涉及到各式各样类型的技能,其玩法中为了方便玩家操作又衍生了相关其他功能(例如辅助选择目标及转向等),不同的过程中对于角色的实际动作表现也都有着不同影响。究其本质,动作向游戏的核心就是“动作”本身,动作在UE中以动画序列呈现,游戏中的动作与电影和动画是一个道理,利用人眼的视觉暂留将静止的画面快速播放使其在人眼的观察下可以形成一个连贯的视觉效果。
如上图所示,不同的帧率有不同的效果,很多游戏的动作都是以每秒30帧为标准制作的,但是如果追求更好的效果可以使用更高的规格制作动作(比如每秒60帧),虽然帧数翻一倍,但是如果用动捕技术的话整体的工作量就还好,不会因此完全翻倍。
上图为UE中的动画序列的时间轴。动作的时间轴是动作向游戏最为重要的根基:角色可以在哪一帧或一段时间内完成什么事儿都要依据时间轴赋予(比如转身,衔接其他基础动作或技能,完成位移等等)。
不同项目完成时间轴配置的方式也有所不同,几年前的有些游戏项目中是用Excel表格来完成时间轴的配置的,虽然对照动作有些不方便但是也可以制作出表现不错的效果。后来随着商业引擎的发展,Unity的TimeLine以及UE中的蒙太奇逐渐成熟后,与时间轴相关的配置找到了很好的可视化编辑方式,但原生的工具仍会有一些不符合有些项目具体要求的地方,所以有的开发者也会自己开发时间轴工具进行配置使用。
二、技能的时间轴构成
常见技能的基础动作时间轴如下图所示:
1. 前摇段(时间轴中白色序号1)
有些时候我们把技能释放生效那一刻之前的动作称之为动作的前摇段,虽然这样很容易理解但思考再三后感觉有点不太好展开来说,故决定将前摇在常规定义上往前缩短一点,即:本文中前摇段为从起手到蓄势准备出手攻击前的动作过程。
为方便讲解,这里直接先把这一段攻击拆成三段作为示意,如下所示:
技能的起手不必要严格以Idle动作为起始帧,因为动作游戏中,各种情况下你都会使用普攻或技能,也就意味着它们肯定是要通过融合混入处理的,因此只要首帧动作与可能衔接此技能的动作相差不大,再配合上合适的融合时间即可满足表现上的要求。
起手后的蓄势准备出手阶段需根据攻击时的重量感、力度综合考量来决定其动作长短是否合理。比如大剑和锤等重武器的蓄势准备阶段就应当考虑在不拖手感的情况下稍微慢一些;而单手剑或双刀这种快节奏武器这个过程就会很快,甚至两三帧之后直接进入挥砍(攻击动作爆发段)。
2. 攻击动作爆发段及动作打点(时间轴中白色序号2)
攻击动作爆发段为去掉所有前后多余的动作后,中间最为干净利落表达攻击的一段动作(这个命名可能有点中二 =。=,原谅我的起名无能,如果为了叫起来方便,有人在沟通中称这段动作为攻击执行段)。它是直接表达角色攻击行为的一小段动作,伤害或其他效果的判定点通常也在这段动作中施加给目标。
对于攻击动作爆发段而言,无论是轻武器和重武器,都应在对应动作的整体节奏中处于较快的水平,这样可以更好的体现攻击出去的力道,动作之中快慢结合才更好地提升整体的表现水平。
比如同样是转圈多段攻击,匀速转圈和有节奏的转,这二者的观赏度和动作力度感完全不同,贴对比图感受一下:
LOL不是动作表现类的游戏,表现效果自然差,这里不多说,我们仔细观察战神5中誓言守卫的这个旋风斩,其实就是在多次重复起手、蓄势、爆发释放的过程来完成整个技能的,过程非常有力度感和节奏感。
如果从技能设计上不希望按固定频率基于周围敌人伤害,并不强调每一次斩击都清晰可见,那么过程中可以使用匀速的转动,但在起手和结束时可以适当加入节奏的变化,可参考原神中常规大剑武器角色的重击技能。
技能判定点需要在某一帧施加给目标,动作上对应的Pose本文称之为动作打点,逻辑和表现在时间轴上要严格吻合才能符合玩家的直觉,来保证手感。(当然并不是所有的方案中都需要在动作中固定的一帧打出伤害,这里不过多讨论,下文会说明)
那么如何确认合适的动作打点呢?可以假想正前方有一个敌人,当攻击释放的动作打到这个敌人的瞬间作为判定点会比较合适。对于攻击挥砍类的技能大部分用上述方法来选定动作打点即可。
但如果是非攻击类技能,比如是给自己上一个增益buff,则可以直接使用动作Pose最强的一点作为判定点,比如抬手握拳或是打响指的那一帧。另外,一些特殊的攻击动作,比如拿锤子砸地触发伤害,可以找砸地的那一帧作为动作打点。
3. 后摇段(时间轴中白色序号3)
攻击动作爆发段结束后,对于地面释放的技能,角色接下来需要回到站立Pose,这个动作过程我们称之为后摇段,它是美术表现力外显的关键环节,重点就体现一个字“飒”,我总结了以下几个要点:
- 攻击动作爆发段结束的Pose可以在后摇时定几帧
- 收回的时候尽量把动作做慢
- 想把细节体现得更好就花更多工作量把后摇收招的动作以各种符合角色性格的形式丰富起来
我们可以对比一下时间长度,尼尔的后摇段时长远远长于前摇和攻击动作爆发段的时间,因为动作的后摇可以被各种行为取消,我们不用担心它会拖慢战斗节奏,完全可以让角色唱跳Rap篮球之后再回到站立(前提是动作同学没意见)。动作的后摇往往能更好的表现前面攻击力度感的回收,快慢结合且张弛有序,同时也可以更好地体现角色性格和设定。
例如尼尔中的攻击动作及后摇都结合了一部分芭蕾舞的动作元素,让人印象深刻。
常见技能的基础逻辑时间轴由下图中4,5,6所示:
UE中的动画蒙太奇是一个非常常用的功能,它可以把不同的动画序列拼接在一起,与其名称相同,有点像电影的剪辑手段。
与电影的蒙太奇不同的是,在UE的动画蒙太奇内部可以自定义各种动画通知来触发事件,例如在某一帧转向或者对哪些敌人造成伤害;还可以自定义动画状态通知使角色在某一段时间内监听或触发事件,例如在某段时间内接受到什么按键操作可以释放什么技能等等。
当然,条条大路通罗马,从实现角度上来说并不必须依赖蒙太奇来处理技能纷繁错杂的逻辑,虽然提供了可视化的时间轴和便利的基础功能,但有些地方还是有坑的,具体可根据项目情况而定。
接下来我们看一下技能逻辑时间轴中几个比较基础常见的事件:
1. 辅助选择目标及转向(时间轴中白色序号4)
通常选目标的时序会在播放蒙太奇前释放技能时选取完毕,但此处一并标记在时间轴中。这两个功能搭配使用主要用于帮助玩家智能地选择想要攻击的目标(技能按下时选取目标),并自动转向(通常在技能动作的第一帧完成转身)对其发动攻击,具体的功能说明详见第四章功能实例说明。
2. 攻击判定及产生效果(时间轴中白色序号5)
攻击判定的方式并不固定,例如可以是武器射线或者碰撞盒检测重叠,或者是通过判定盒子先筛选目标之后对这些目标附加伤害或技能效果。这里主要说的是第二种方案,因为第一种方案局限性比较大,在强调联网的游戏中很少使用。
同时,除了上文提到的时间点严格吻合外,对应逻辑判定的盒子范围也应贴合实际的动作及特效表现。这样可以避免看似打中了但没打中,看似没打中但打中了的不科学表现,从而更符合玩家视觉的直觉。
如上图所示,从视觉效果(黄色特效)来说打击的边沿与逻辑攻击范围(绿色网格)一致,但整体的逻辑判定范围应该为一个圆柱体较为合适,图中的是一个球体,此时如果有其他单位处于角色上方或下方就会莫名其妙地受到伤害。
3. 可取消段(时间轴中白色序号6)
划重点!一个游戏的技能释放手感好与不好,衔接是否流畅,基本都来源于这部分功能的体验。战斗中存在大量技能的衔接处理,角色可以在哪一段时间内可以衔接哪些技能全都是这个模块的逻辑功能配置出来的。一个技能,角色,职业的平衡和手感都和这里有着密不可分的关系,一个技能的可派生取消时间点反复打磨几十遍也不为过。
- 高优先级取消
高优先级取消段通常应用于游戏中的特殊定位的技能,例如你希望角色的大招可以在其他技能释放的过程中的任意时间点都可以最高优先级释放出来,或者你希望游戏中的冲刺或翻滚可以在其他攻击技能过程中更灵活地调整走位,那他们的可取消时间点都应在其他技能时间轴中比较靠前甚至第一帧的位置。
对于有CD或消耗的技能,根据具体情况可以考虑让技能效果完成后高优先级取消才能生效,或者是如果技能前摇可以被高优先级取消,但可以返还一定的CD和消耗。
- 连招或派生取消
通常应用于相对确定的连招(普攻连段或其他派生技能)表现中,此类技能的特点是其在出招过程中的一小段窗口期内(从动作表现上来说就是与衔接技能首帧动作一致或相近的几帧内),可以通过按键触发下一段攻击。
除了普攻和基础的连招外,鬼泣猎天使魔女中常见的可连打类技能,或AA·A停顿节奏的连招都可以尝试用这种取消的方式为基础再附加少量的逻辑来制作实现。
TIPS:连招的节奏主要由动作本身的设计决定,但可通过调整此处的取消时间点来进行手感微调。在一套连段中节奏最好有鲜明的变化,通常第一段较快,最后一段较慢,中间若有多段节奏变化就比较多样了,没有明确的最好的连招节奏标准,需结合动作评判。
可以在制作动作初期将完整的一套连招节奏确认,之后再进行动作拆分,配置时按照完整的连招衔接点来确认取消的时间点,之后再以实装到游戏中的效果前后微调几帧找到最好的连招节奏。
- 其他技能取消
对于游戏中的非固定连招间的衔接,为保证动作表现及手感顺畅,通常取消时间点在攻击Pose帧附近。之前提到过动作的节奏,攻击动作爆发段往往会较快不拖沓,如果其他技能取消的时间点较早,则会让整体衔接感觉过于急促,还未完全发力完成就进入了其他技能攻击;但若取消时间点较晚,则会让玩家觉得卡手感。
其实无论对于普攻的连段,普攻和技能或是技能与技能之间的取消,对于一次攻击来说最具标志的动作应该是其挥砍完成时的Pose,一定要结合这个Pose给取消的时间点。即便是动作的节奏非常快的游戏中,其出招过程也许快到难以看清,但在释放技能时最具表现张力的关键Pose也要做到可以清晰分辨。这个Pose也是美术同学在制作过程中最精心打磨的,必须要很好地展示出来才行。和打篮球一个道理,进不进球无所谓,只要出手姿势够帅就能带来极大的观赏度。
- 重置连击取消
这类取消段通常只在有连段的技能中使用(例如普攻),当本次攻击动作的时间轴已经过了连招或派生取消的窗口期,比如普攻第一段未及时进行第二段普攻,则在后摇一定时间之后到动作结束就只能通过普攻输入再次出发第一段普攻。
TIPS:对于普攻这类的多段连击,调整重置连击取消时间点时除了需要注意手感及动作表现流畅以外,还需要特别考虑伤害配置的数值平衡问题,需要避免反复触发第一段攻击反而DPS更高的情况出现,这样一定是设计者不希望出现的情况。
- 可移动取消
可移动取消通常是时间轴中最靠后的一段(也经常会被叫做自由取消段),这可以使技能从一定时间开始可以自由地被移动跳跃等任意行为取消。你也可以理解为从这个时间点之后,技能的逻辑已经完全结束,状态机回到了Idle,只是剩余的后摇动画还在播放,仅此而已。
可移动取消的Pose时间点的选取主要考虑两点:首先,取消的时间点在保证一定停顿节奏的前提下不能拖,如果攻击后迟迟不能移动手感会较差;其次,是需要考虑在一定融合时间内能很好的过渡到奔跑就可以了,这也是玩家最大概率释放技能后进行的低优先级操作。
- 未命中取消
未命中取消是由特殊需求产生的特殊取消段,作者也并没有在项目中实际使用过,但有某些情况下可能会有应用场景:
场景一,当项目使用了顿帧但未使用抽帧或加速方案弥补顿帧时间,为了保证打击到目标触发顿帧与未打击到目标的情况下取消时间一致,对未命中目标的情况在正常取消时间的情况下延迟取消。
场景二,若想要的游戏体验比较硬核,角色出招未命中时需要一定惩罚,短时间的被动罚站用以奖励对方一定出招时间。
其实目前的游戏理念大多是尽量减少玩家在操作上的负面反馈,那么玩家已经因攻击打空已经获得一定负反馈了,不应该获得额外惩罚,所以在绝大多数项目中用不到这类取消。
4. 融合时间的使用
在技能取消技能或者移动取消技能的情况下,为保证其衔接表现过渡丝滑,融合时间是一个很重要的参数,在不同情况下参数调整的方式也不同。
例如当普攻第二段衔接第一段时,融合时间为0表现最好,因为二者动作本身就是严丝合缝的,并不需要融合。如果是衔接奔跑动作则需观察可移动取消段的整体动作与奔跑起步动作Pose的差距,来决定混出时间。
通常融合时间为0.2秒左右时效果较好,以此为基础结合Pose差距适当调整。若融合时间过短会导致动作切换过快角色闪动,若融合时间过长则会导致动作变形严重,效果较差。同时可以尝试使用不同的融合曲线来达到更好的效果,常用的通用融合曲线有线性、立方、埃尔米特立方等。
三、输入与手感
1. 输入检测
无论是键鼠、移动端还是手柄,按键本身的基础状态只有按下和抬起两个状态,所有以按键形式触发的技能都由按下抬起两个基础状态判定来实现的。例如:常规的技能是由按键的按下输入触发释放;蓄力类技能是由按下输入触发蓄力阶段,并由抬起输入结束蓄力,若未检测到抬起输入则在一定时间后自动释放或自动取消;引导类技能是按下输入触发进入特殊状态并持续一段时间后自动结束,若检测到抬起输入提前结束引导状态。
上述都是非常基础的技能释放与操作输入的关联。但在一些特殊情况下,我们需要同一个按键承担不同的技能效果,例如在短按的情况下释放普通招式,长按按键触发重击或连招中的其他派生技能等。虽然听起来也没什么处理难度,但在实际制作过程中为了保证这类技能的释放手感,还是需要有一定的处理技巧。
可以从输入方式和表现两个方面综合考虑:
在不存在长按短按的问题时,所有技能的输入检测都可以使用按下输入触发。但若需要区分长按与短按时,为区分二者,短按可以以抬起输入作为判定,长按则以按下一定时间进行判定。
但是,短按对应的技能不能是检测到抬起才开始进行释放(这样会导致操作反馈不及时,手感不畅),应当检测到按下立即开始释放,而为了使动作表现流畅,这里有两种常见的处理方式,同时结合自身特性,对应的输入方案也可以有所不同。
方案一:共用前摇
短按和长按的两个技能如果在前面一段时间的动作表现一致,就充分的留出了检测玩家输入的时间窗口,当玩家按下按键时可以直接开始释放长按的技能,若在共同的表现帧内检测到按键抬起则在动作即将不同的那一帧切换到短按技能;当然反着来也可以,即按下即释放短按技能,在动作即将不同的那一帧检测长按输入是否生效,来判断是否切到长按技能。
在鬼泣中经典的短按上挑,长按升龙上挑也是使用了共用前摇的方式。
方案二:短按技能接长按技能
共用前摇的方案其实非常完美,但使用该方案的条件比较苛刻,比如当短按技能的前摇很短或短按与长按技能的前摇由于技能设计无法共用一段动作时就不能使用了。此时便可以考虑方案二,短按技能放出之后再接长按技能。这样处理起来会比较简单,相当于在短按的技能基础上增加了长按派生。二者动作可以使用融合过渡,对动作制作要求会相对低一些。
这里对于输入的细节处理上个人体感原神比尼尔要好,尼尔在普攻的过程中开始长按一定会出下一段攻击,之后才能再接长按技能,在体验上会有一定的迟滞感。而原神在普攻的前摇过程中开始长按后会直接进入长按技能,反馈更加即时。
如果大家有兴趣可以到游戏中体验一下,看看哪种方式更舒服一些。
2. 输入缓存(预输入)
预输入指的是在一个动作将要结束前(例如一个技能释放过程中,或者受控制状态不能操作时),允许提前输入下一个动作指令的机制。
预输入成功的话,则动作间无缝衔接,可以最快速做出下一个行动,在搓招操作复杂或者网络延迟不稳定的情况下,这一机制对于战斗表现和手感尤为重要。偏动作表现的游戏中,如果希望有顺畅的操作和丝滑的动作衔接,肯定绕不过这个功能。以派生技能A2取消A1为例,简单图示如下:
预输入的大前提是:预输入阶段输入再多指令,最终只有一个指令对应的动作生效。
设置预输入的规则时需要考虑以下几点:
- 哪些操作在预输入的记录范围内
移动的轴向输入通常是不计入到预输入中的,对于游戏中其他各种行为,例如跳跃,吃药,抓扔物品,使用技能等等需根据实际情况加入到预输入的缓冲存储中。
同理,某些在技能释放过程中与整个战斗系统无关的逻辑操作可以列为预输入的黑名单中,不予加入序列。例如↑+A会触发升龙,若Ctrl在游戏中为下蹲,且在技能中并没有和蹲相关的逻辑,假设预输入的过程中存储的输入序列最后三个为↑+Ctrl+A,可以视下蹲为无效操作,直接触发升龙。
- 普通按下与长按的区分处理
与上一段落输入检测中所谈及的问题类似,预输入中也需要区分短按和长按的操作。此处对应不同操作可以设置不同的预输入时长。
- 预输入的时间
根据游戏操作的需要对不同的行为灵活设置不同的预输入检测窗口时间,比如任天堂全明星大乱斗中的普通技能预输入窗口期为9帧,长按的预输入窗口期为3帧,之前制作项目的过程中普通按键的预输入时间也是9帧,经验而论,0.2-0.3s左右都有不错的手感。
预输入时间太短预输入体验不明显,太长则会产生操作上的迟滞感,建议根据项目情况反复测试确认。
同样的操作没有特殊情况最好采用统一的时长,这样可以降低玩家的学习成本,很容易感受和掌握衔接技能的时机。对于个别的特殊技能比如从博弈方面或时机把握上不希望玩家可以很简单的衔接,需要掌握一定技巧,此时再考虑缩短预输入时间或禁用预输入。
- 不同操作是否要分优先度
同优先级的以时序处理,后输入的指令覆盖前面的指令,不同优先级的以优先级为准。任天堂全明星大乱斗中对于角色处于不同的状态时,就分别设定了不同的输入优先级处理规则,且都较为复杂。
除了逻辑预设上的优先级,从时序上入手也是比较有效的解决方案,例如我们想要让玩家拼命点普攻和技能时优先释放技能,假设二者的预输入时间一致,只需要把技能的取消时间点设定到普攻的取消时间点之前也可以达到目的。
- 组合键的处理
游戏中很多技能或行为动作并非单一指令触发的,例如A+B可触发其他技能,从逻辑上来说这两个指令组合到一起打包成了一个新的映射,这就需要在预输入中特殊处理这种情况。
综上,我个人的观点是,大多数项目并非硬核格斗类型,预输入仅作为提升玩家游戏手感的技术手段就够了,不需要太多机制上的补丁处理,没必要再让玩家花额外的成本去学习过多预输入阶段的覆盖逻辑来更顺手地操作角色。由于玩家最直接感受到的就是自己按键的先后顺序,所以如果预输入机制带来了很多强硬的非明文给出的规则反而会产生负面作用。因此最好根据项目的情况定制自己的预输入方案,切忌生搬硬套,做到符合玩家在该游戏战斗体系中的输入习惯即可,规则越简单越符合直觉越好。
四、操作手感相关的功能实例说明
1. 辅助选择目标
如果所有技能都是只能往角色面朝向方向释放,那么从操作难度上来说直接拉满,会非常影响手感,所以通常游戏中会采用辅助目标选择或者锁定的方式来解决这个问题。
对于辅助选择目标来说,需求的核心出发点在于帮玩家选择一个他此时此刻最有可能想攻击的目标。需要从以下几个关键参数考虑:
- 技能选取目标的距离范围
- 优先选取的角度范围
- 角色面朝向
- 摇杆(方向键)输入方向
举个例子,当前技能选取目标的距离范围内,有ABC三个敌人,假设灰色的扇形区域为优先选取的角度范围,如下图所示:
在此情况下,假如优先选取角度范围,则虽然C离我们更近,但是由于角度的原因我们优先将A和B作为更想攻击的对象。之后可以再根据距离判定,B离角色的距离小于A,这样最终角色将会转向B对其进行攻击。
但在这种情况下玩家想攻击C,由于基础移动操作的习惯,会把摇杆(方向键)输入到接近C的方向,如下图所示:
此时我们需要根据摇杆(方向键)输入的情况将优先选取的角度范围做偏转,即可成功选中C作为目标,并转向其进行攻击。
以上只是提供一个最简单的筛选目标的思路,还需要进行许多特殊情况的思考之后才能将方案完善,随便举两个例子:
- 优先角度内无目标时以何优先级选择目标
- 某些情况距离相差很小,此时是否应把一定距离内的目标划为同一距离优先级再以角度做更精细的判定
但无论智能选目标的方案怎么完善,可能都并不能满足所有玩家的操作习惯,故建议开放配置项可以让玩家自己选择自己想要的方式,例如:
- 仅距离优先
- 仅朝向优先
- 朝向及摇杆方向优先
- 摄像机朝向优先(带准心的远程武器使用这种选目标方式会更合理)
最后,可以同时再提供给玩家一个怎么也不会打错目标的模式,这也是在复杂的战斗场景中比较有保障的方案,即锁定模式。
2. 锁定模式
首先这个功能并非必需,因为它会带来一定的使用操作成本,需要根据项目情况权衡是否增加此功能。锁定模式的应用可以更好的观察具体某一个敌人的行为,同时使技能释放的目标确定下来,由于这是一个在动作向游戏中很常见的功能,在这里只说几个需要注意的点:
- 锁定模式与其他逻辑的互斥
锁定模式从逻辑层上与其他和选择目标相关的功能互斥(或者说优先级更高),由于已经锁定了唯一的当前目标,锁定之后就不需要再跑其他选目标的逻辑了,例如上文提到的辅助选目标功能。
- 锁定模式的切换目标方式
根据不同的操作模式,需要提供较快捷的方式让玩家锁定到自己想攻击的目标上,例如在手机上可以是在锁定目标的情况下点击屏幕左侧空白区域则优先切换到距离当前选中目标左边最近的怪物。
- 锁定模式下角色的移动方式
常见的处理方式主要有以下两种:
方式一:角色始终朝向目标,采取八方向移动的方式进行移动
方式二:不改变角色的基础移动形式
如果项目中大多数情景都是针对较少敌对目标的情况,且整体动作节奏偏慢,对于敌人的动作关注度要求较高,则可以使用方式一。但如果是偏快节奏的战斗且经常会出现被一波怪包围的情况,则可以使用方式二。
- 锁定模式下的摄像机变化
在锁定模式下,原有的以角色为中心的摄像机视角和操控模式也会发生相应改变。
首先,在非锁定模式下,摄像机通常是看向角色身上的某个点的,但是在锁定模式下的核心诉求应为更好地关注被锁定目标,故摄像机需要调整看向的位置。
其次,玩家手动操纵调整摄像机视角理论上和锁定模式冲突,应被禁止。但如果觉得取消锁定玩家交互比较麻烦(例如移动端锁定按钮如果采用长按的方式取消锁定),则玩家滑动屏幕可手动取消锁定状态,接管摄像机的控制,鬼泣手游中是用这种方式处理的。或者参考幻塔中的处理方式,允许玩家在锁定目标时直接接管摄像机,但锁定的目标依旧处于标记状态,之后若玩家再次释放技能,则将摄像机平滑插值变换到锁定视角的参数。
- 其他特殊情况
需要考虑一些锁定目标时的特殊情况,比如当锁定目标死亡时的处理,是退出锁定状态还是继续自动锁定距离死亡目标最近的敌人。或者当怪物快速横向位移或跳跃至玩家身后可能会导致摄像机运动幅度过大,处理不好会导致玩家晕眩。另外当怪物使用钻地,隐身或其他特殊技能时是否需要自动脱离锁定状态。
最后,锁定状态是为了服务玩家更好的进行战斗,如果频繁出现上述类似的怪物技能设计反而会使玩家的战斗非常糟心,所以最好在一开始设计构想时就代入整个真实的战斗环境中,这样可以在初期避免一些坑。
3. 转向
基础移动中的转向是为了朝某个方向移动,而战斗中的转向就是为了朝某个方向攻击来更好地命中目标,从转向的时机来划分主要分为瞬间的转向以及可持续的转向。
- 瞬间转向
这种转向方式常见于技能释放的动作最开始几帧。首先,通常技能的过程中角色是不可以随意进行转向的,但你一定不希望你的连招是只能往前一条路走到黑的,因此在攻击的过程中,每一段都要有根据摇杆或当前目标方向修正个攻击方向的机会。
如上图所示,在没有攻击目标时,每一段普攻在释放时都会在最开始根据你的摇杆输入方向瞬间转过去,如果有目标的情况下可以根据辅助选择目标的方式对当前最优先的目标进行转向。
有些蓄力时间较长的技能,可以在蓄力后的攻击前再增加一段转向避免目标移动偏出了技能开始释放时的朝向的问题(当然也可以使用持续转向的方式,下一段会说)。但这种情况下一定要确保攻击时的脚步动作尽量大,比如蓄力横砍,回身横砍时转向目标要比直接横砍转向目标看起来更舒服。
虽然说是瞬间转向,但实践证明只要攻击动作不是完全下盘不动的情况,不需要担心转向过程过快造成表现不合理的问题。
- 可持续转向
这里的转向可以是一直朝向目标的转向,也可以是玩家输入的朝向。例如,冲锋既可以是朝目标冲锋,时刻根据目标的方向来修正自己的位移方向;也可以是根据玩家手动操控角色往哪个方向进行冲锋。具体使用哪种可视技能设计而定。
可持续的转向方式如果想表现好的话对动作有一定的要求,因为在一个过程中如果可以随意转向让动作看起来舒适的话原地站着不动肯定是会疯狂滑步。刚才提到的冲锋就是一种很好的动作处理方式,因为角色在向前跑的过程中只要限制一定的转向速度,其表现是非常自然的。
同理,一些可以移动释放的蓄力或引导类技能,只要下半身有脚步动作,给予合理的转向速度限制,表现都说得过去,王者荣耀中蒙犽的移动射击也是一样的处理。
但是对于非移动中释放的技能处理起来可能会比较棘手,例如一个原地蓄力的技能,由于蓄力期间的Pose是偏静止的,脚步也不会有什么动作,此时处理起来可以有两种方案:
第一种,不好解决的问题就藏一藏,可以利用摄像机的视角变化把腿部挡起来,这样在随意转向的过程中就不会觉得动作表现太奇怪了。
第二种,可以在转向时加入下半身动作,从动作上配合角色的转向行为。
不过这种处理方式如果不限制角色的转向速度表现依然会比较奇怪,但是在一定转向速度限制下,一定是更优秀的处理方案。
当然你也可以选择不处理,因为相比技能本身的特性,这里的处理是个优先级比较低的锦上添花的部分,感觉玩家对这方面的感知也比较弱,很少有人抓着这一点喷。比如原神中的坎蒂斯的E技能也没做处理可以原地疯狂滑步转向的(可能因为是四星=0=)。
其实转向是要配合动作表现才能手感顺畅且动作表现较好,找到动作合理的转向时间点或时间过程是非常重要的,因此在设计技能时应在开始就对技能的转向心里有数,有规划,并将要求告知动作同学,这样才能使配合更加高效。另外,要结合技能性能及表现去综合取舍转向的方式,知道在自己的项目中哪种更重要,如何做取舍和折中。
4. 追身吸附攻击
为了减小操作难度,对于攻击范围较小的近战武器,为避免角色走到怪物较近距离时攻击但怪物却刚好在伤害范围之外的尴尬情况出现,可以在攻击时(通常为普攻第一段)自动追加一个迈步冲向目标,对其进行追身吸附攻击。这里列举两个不同的实现方案。
第一种方案适合追身吸附距离不远的情形使用,只用一个攻击动作就可以实现功能,但要求动作自带跨步,原神中单手剑角色的普攻就是按这种方式处理的,当一定距离内没有找到目标或目标距离较近时则只用动作自带的rootmotion向前进行挥砍,但若有目标且距离较远则会向前位移至目标身前一定距离完成攻击。
第二种方案适合追身吸附距离较远的情形使用,由于位移距离较远无法使用统一的动作兼容。与第一种方案一致也是通过距离判定,当一定距离内没找到目标或目标距离较近时使用原地向前的挥砍动作,但若有目标且距离较远则使用向前冲刺攻击的动作进行攻击。由于也是不定长位移且位移距离区间较大,冲刺的过程要尽量快,且为了表现顺滑最好和挥砍动作尽量融为一体,即冲的过程中就进行一定的攻击前摇动作,到位后片刻进入到动作打点。
我们可以看到幻塔的近战普攻第一下给了非常非常远的吸附距离,这样的处理下近战的操作命中目标的难度会降得非常低,当游戏内存在近战远程PVP平衡的情况下,这样的处理会有效减少近战被风筝的情况出现,变相减小了近战远程的射程差,一定程度上解决了近战与远程的收益在复杂的PVP情景中并不好量化的问题。
5. 惯性倒步攻击
原神在持续更新的过程中有一个对于弓类武器移动中进行攻击的表现处理迭代,较早的版本使用的方案是移动中攻击时下半身立即停住脚步进行射击,如图所示:
较新的版本中则优化了处理方式,使其在上半身射击的同时下半身往前惯性地倒步后停止,如图所示:
对于优化后的方案我认为有优点也有缺点,首先从表现上来说更合理了,虽然记得这个优化刚上线的时候由于融合时间没调整好,表现有点怪且不流畅,但后续的更新中修正了。然而,虽然从逻辑的出手时间上二者并无区别,但对于弓的普攻动作来说上半身动作并不大,同时加入了下半身的移动使得对于角色的关注点会被吸引到下半身。同时对于远程来说其实更希望与目标保持一定距离,这往前倒步的一米左右的距离在战斗中很可能会起到负面作用。
总的来说作者认为这个处理方式对于操作手感来说并不是一个正向优化,当然只是个人观点,大家有不同看法可以留言讨论。
再说一句题外话,如果项目中决定弓箭的普攻为有节奏的连击(而非准心瞄准,八方向移动射击的形式),建议使用原神这种一边射一边向后退的动作表现,一是可以体现射击的力度和节奏,把射击动作多样化,二是可以避免站桩输入的形式,提升动作的表现力从而间接提升普攻的射击手感。
6. 蓄力类技能
蓄力技能通常通过长按的操作来实现,之所以提出来一条放在最后单独进行说明是因为长按作为持续输入的特殊操作,可以从其他方面进行辅助让玩家在长按时更好的感受到蓄势,提升输入与所控制角色之间的关联,间接提升操作上的快感,让玩家觉得释放蓄力技能很爽。我们可以从动作,特效,和音效等方面入手来辅助增强长按手感。
- 动作
蓄力过程中为体现整个招式的力量感,出手时更要注意做到上面提到的攻击爆发节奏,从蓄力Pose的偏静止状态衔接到打出攻击的释放动作,才可以更好的体现由静到动的变化。
另外,蓄力过程中最特殊的时间点是刚好蓄满的那一瞬间,玩家在此时接受到足够强的提示后释放技能才会有更好的反馈感,这一点动作上可以配合做出提示,例如轻微幅度的抖肩或抖手腕。
- 特效
由于在蓄力过程中的动作通常是偏静止的,此时可以用特效来表示蓄力的过程,与玩家的长按操作呼应。
与动作的处理思路一致,在蓄力满时特效也可以做加强提示处理(实际上大多数游戏中对蓄满时的处理使用特效的方式更为常见)
- 音效
音效实际上是制作游戏中最容易忽视的一环,因为恐怕只有3A团队能花大量的时间和成本去细致打磨这一部分了。在蓄力过程中通常可以用逐渐频率升高的音效代表蓄力过程中的力量或能量逐渐变强,来反馈玩家的长按操作。
以龙珠中的龟派气功举例,在手中生成气功波时会有一个出现的音效,之后会有一个频率逐渐升高的能量聚集音效,最后释放时,除了大喊的最后一声“ha”之外会有一个非常爽快的释放龟派气功的音效,整个效果真的非常非常带感,yydsdddd。不过这个例子可能对龙珠不熟悉的不太好体会,可以体验一下守望中禅雅塔的蓄力攻击中的音效处理。
- 摄像机效果
蓄力时也可以使用摄像机推进或拉远,并在蓄满时有一定晃动感来表示完成蓄力,再释放时配合攻击爆发段快速将摄像机拉回到原有距离,可以更突出动作本身的力量感。同时在这个过程中加入屏幕效果会使表演效果更加出色。
- UI效果
有些游戏中蓄力时会有一个蓄力条的存在,蓄满时UI本身会有特效效果,但其实蓄力条本身我认为是与动作游戏的本质冲突的,它更适合作为一种动作特效等直觉本身无法很好传达的情况下的一种候补方案,可能会比较出戏。
- 手柄震动效果
如果你的项目是可以使用手柄操作的,在蓄力时给予马达由小到大的震动,在蓄满时给予一个短暂且更强的震动,只要别用力过猛,这绝对是一个非常好地提升蓄力技能释放手感的方式,因为这可以给到玩家在键鼠或移动端操作模式下无法体验的触觉反馈。
毋庸置疑的是无论什么技能,其动作特效音效等制作精良,都能玩家的整体感受加分,但和可能与手感关系不大,但在长按操作下有特殊的联动,所以会间接影响技能的释放操作手感。
五、结语
之前一篇天美J3工作室的分享文章中提到,操作手感作为射击游戏和动作游戏的基石,但在游戏者开发大会和国外的会议中却鲜有分享,恰恰因为这部分内容就是其最核心的竞争力。该篇分享中提到COD中一个细腻的开镜效果,Apex中左手打药,右手射击可相互分离等等优秀的操作体验已经遥遥领先国内的制作水平。一个极佳的操作手感甚至需要几十人几年的工作量才能完成打磨。
我觉得操作手感之所以难做,其根源在于它和游戏的其他模块不同,你只是去玩儿的话仅仅能从表层感受到体验的好坏,但是却不容易发现它内在的奥秘,因为好的手感就是让你感觉自然地融入到了游戏之中,它并不是一个学习规则和玩法的过程,而是最符合直觉的潜移默化的体验。所以研究这门课题,一定要抽茧剥丝,刨根问底儿。
关于如何做好角色的基础操作手感的分享内容,虽然上下两篇共两万余字,但还是有很多细节无法很具体地传达清楚,只能点到为止,实践是检验真理的唯一标准,有很多内容作者也在持续地学习和摸索当中,中国游戏行业在持续发展,学无止境,各位同学共勉!
至此,基础操作手感相关的内容全部完结,感谢大家的阅读与支持!