查看原文
其他

全景解构射击游戏枪械数值设计

Minke 腾讯游戏学堂 2022-11-17

文丨Minke
腾讯互动娱乐 游戏策划


| 前言


写作动机是在平时偶尔看到武器设计的相关内容,但很难看到比较全面或者系统化的设计框架呈现,所以想着自己来梳理一遍数值的内容,帮助更多的同学了解做枪是在做什么。


本文会涉及到枪械设计需要涵盖的大部分数值,包括武器数值和3C数值,会做一些简单的概念讲解和踩坑点的总结,主要还是帮助大家理解枪械的数值主要由哪些维度构成;但由于我做的是相对传统的拟真向PVP射击游戏,所以不会涉及英雄射击的技能数值、PVE游戏中的数值规划等。


希望文章对武器策划同行起到查漏补缺的作用,对刚刚接触射击游戏枪械设计的同学一点基础的数值框架引导,对新入行的同学们起到最基础的概念普及,以后拆解武器数值也方便些。


 核心名词解释 


TTK:Time To Kill

指枪械第一发子命中敌人后,子弹连续命中情况下,击杀敌人所需要的时间。


在人物血量为100的情况下,假设枪械伤害为25,射击间隔为0.07,不考虑部位倍率加成的情况下,这把枪的理论TTK为210ms;假设枪械爆头伤害为100,那论射把枪的理论极限TTK都是0ms。


TTK同时又会分为理论TTK和实际TTK两个概念,其中理论TTK只用考虑枪械一级数值,实际TTK则需要考虑枪械稳定性对玩家命中率的影响,可以这样理解:最短实际TTK = 理论TTK。


这几个名词都只是简单的概念,具体用哪一个去评估你的武器标准,取决于项目的需要和条。


TTK的大小会决定游戏的战斗体验,后续所有的数值设计都是服务于这个体验的,举两个没有那么精确的例子:


1、Valorant——主流步枪极限理论TTK为0,常规TTK200-240

2、COD16——主流步枪极限理论TTK133,常规TTK200-250


一些玩家整理的TTK表如下,更专业的团队会以各距离分段的形式来呈现:



 一级数值 


定义:与理论TTK直接挂钩的数值,决定枪械的数值强度。

(只是我习惯于将枪械数值分类为一级数值和二级数值,并不是什么行业共识)


武器的数值设计,用最简单的说法可以概括为,一级数值确定强度上限,二级数值构建手感差异。


1. 伤害


定义每一发子弹命中敌方目标时造成的伤害数额


常见做法:


分段:0-10M 伤害为33,11-25M伤害为26,25M以外伤害为20


固定:全距离统一伤害为33


衰减:从0-60M,伤害以线性的方式递减


同时伤害根据项目的需要还可以针对人物/怪物/机械目标/载具等不同的目标配置不同的伤害,需要注意的是伤害数字最好使用浮点数,给数值设计上留足精细化空间。


具体的数值设计需要根据项目战斗节奏来进行把控,以TTK的形式做评估。(为啥不用DPS做评估?当你的目标血量够大,需要长时间输出的时候可以这么算,但计算体系就不是这一套了,会增加诸如总伤害上限之类条件来评估。)


2. 伤害倍率


定义:命中目标的不同部位,在当前距离伤害的基础上乘以部位倍率,造成不同的伤害数值



以图示为例,同样的子弹在命中躯干、手臂和头部时会造成不同的伤害,图示中命中手臂为0.88倍,命中头部为1.6倍,奖励玩家的精准射击行为。


在倍率的设计上同样根据项目的战斗节奏来评估,可以尝试解答为什么CS: GO的AK一枪头,但是COD、PUBG的武器没有这样做。


3. 射速


定义:单位时间内能发射的子弹数,或是更简单的武器上一发子弹射击完成后,到下一发子弹允许射击的时间间隔,常见的单位有RPM/RPS或者单纯用毫秒.


射速的概念其实没有什么好讲的,比较容易被忽视的点是:射速对实际TTK会有较大的影响,射速越快,实际TTK与理论TTK越接近。


原理是当玩家出现空枪的时候,射速更快的枪能帮助玩家快速的跟上下一颗子弹,降低空枪惩罚。这也是我们最后总结出来的,慢射速的枪械理论TTK可以给短一点,高射速枪械的理论TTK则要相对偏长,从而获得一个强度相对接近的实际TTK效果


4. 弹速与下坠


定义:子弹在空中的飞行速度,及飞行过程中受重力影响导致的子弹下落。


这是网上一聊武器设计,大家就都会写的东西,写完感觉自己文章的专业性一下子大幅提升。


不用去理解实现方式,可以将hitscan视为弹速无限大从而射出了一条全距离的直线,而projectile则是由于弹速慢受重力影响会下坠的抛物线即可。目前行业内的游戏一般都会同时具备这两种子弹实现方式,包括《守望先锋》(根据英雄不同区分)COD(根据模式、枪械不同区分)等等。


关于弹速:


理论TTK计算层面,hitscan可以直接计算TTK,而peojectile在计算TTK时,需要考虑到弹速,如下图所示:



实际TTK计算层面,不考虑单发致死武器,弹速带来的飞行时间会极大程度上影响中远距离目标的瞄准,拉大理论TTK与实际TTK的差距,这里就需要策划根据枪械定位来做评估,例如是否补偿近距离作战能力,或是加快射速减少空枪惩罚等等。


关于子弹下坠:


下坠的量取决于弹速和配置的重力值,这个值建议开放出来分开配置,因为做着做着很可能发现,如果角色的下落速度和子弹下落速度一致,要么是人落得太快,要么子弹下坠不明显。


整体来看,projectile相对于hitscan要相对麻烦一些,无论是性能耗费,还是各种CS校验的处理:特殊处理允许停火后造成伤害、放宽射击间隔与子弹数量变化等,都是开发过程中容易遇到的问题,但多一个数值维度,设计空间会大很多,尤其是有助于把控中远距离武器强度。


5. 穿透力


定义:子弹在命中可穿透材质后方的目标时,造成伤害的衰减幅度。


一般来说,武器的穿透力并不仅仅是由武器决定的,同样受命中材质的影响。


假设做一个最简单的公式: 


穿透材质后的伤害=命中材质时的子弹伤害*子弹穿透系数*材质伤害衰减*命中部位倍率


假设做一个最暴力的表:



如果觉得这个表不过瘾,还可以针对每种类型的子弹来做是否支持穿射的配置


在射击游戏关卡设计中,掩体的摆放、掩体是否支持穿射是关卡战斗体验搭建的重点,在此基础上,武器兄弟们做好对武器的穿射分类,针对部分武器构建穿射特色,能够共同营造更富有深度的战斗体验。武器与关卡的合作,重在双向奔赴(1/1)。


6. 弹匣容量与换弹时间


定义:弹匣里能够装载的子弹数量与完成换弹需要的时间。


在绝大多数射击游戏当中,弹量与换弹时间并不能算作一级属性,因为对单个目标的TTK没有决定性的影响(当然如果换个角度说影响玩家一打多,那视作一级属性也没问题)。但部分游戏(例如Apex)通过投放机动能力,增加护甲等手段大幅提升了玩家的TTD(Time to death),对单个目标的击杀需要更换子弹,此时就需要考虑弹匣容量和换弹时间的因素。


具体的子弹数量和换弹时间设计还是取决于项目的TTK标准,Apex的血量和机动力下硬去套CS: GO的弹量标准肯定是不可取的,换弹时间方面通俗理解为小弹匣换弹快,大弹匣换弹慢即可


关于弹匣容量:


我们在做多人对抗模式的时候,弹匣容量或者说是弹药控制是限制玩家一打多的重要手段,有助于控制武器的上限,我们可以看到CS: GO或者Valorant都会尽量把子弹控制在30发以内,当然图个爽的COD系列就没有严格的弹量控制概念(我双持80发马卡洛夫今天就是要踏平这个装卸货场),这里的评估标准是你希望玩家一个弹匣极限情况能造成多少击杀。


关于换弹时间:


我习惯于把换弹时间拆分成两部分,动画换弹时间和逻辑换弹时间(也有人称之为换弹时间和后摇时间)。



在弹匣插上的瞬间(这个GIF感觉动作时间没对齐),子弹数量已经变成30,此时可以单击通过奔跑、双切等手段提前打断换弹,部分游戏支持开火打断换弹动作,从而获得一点点优势。


从玩家开始换弹,到子弹数量变化为30的时间,我把他叫做为逻辑换弹时间;玩家开始换弹,到整个换弹动画播放完毕,进入idle的时间,叫做动画换弹时间。


这是目前业内的常规设计方式,最大的好处相对于完整播放换弹动画,使用插入弹匣的节点上报换弹成功,会使玩家对于武器是否完成换弹有更为清楚的认知(音效、视觉都会更直观),同时也不影响美术同学对于动作美学的追求,自由自在的去做最后抵肩、枪械摇晃这些收尾动作。


多提一嘴,在行业逐渐内卷的今天,根据弹量不同输出不同的换弹动画,例如战术换弹和空仓换弹动作已经是标配了,要继续卷的话只能根据枪械配件的不同来输出不同的动画,例如MW的98K换弹动画,我记得有四套还是五套


 二级数值 


定义:并不与TTK直接挂钩,但数值差异会带来手感差异,进一步影响命中率、续航、TTD等要素,从而影响实际TTK的数值。


稳定性数值


1. 后坐力


含义:开火过程中,射击每一发子弹带来的镜头向不同方向的偏移,通常分为垂直后坐力与水平后坐力两部分,水平后坐力和垂直后坐力共同构成一个向量方向,后坐力单位一般是角度。


又是一个大家都在写的部分,我这里没写全的网上啥都有。


我们一般使用两个值来控制后坐力的大小:每一发子弹发射后的后坐力大小 以及 当前枪械的极限后坐力大小。


常见的设计手段一般是分段后坐力,例如:



此时我们可以粗浅的认为,这把枪的后坐力骨架是1-3发均匀向上,4-7发向上逐渐加大,8-10发向左上方45度均匀偏移,11发开始达到最大的垂直后坐力,只吃水平后坐力影响,弹道向右偏移,17发达到最大的水平后坐力,子弹开始只吃子弹散布,那么这样的后坐力骨架(不考虑子弹散布)怎么实现呢?


一张简陋版的分段后坐力配置图:


[ 相信这东西怎么配你看表就已经明白了 ]


为了更好的实现单发子弹后坐力可控这个因素,除了传统的分段后坐力叠加子弹散布,还可以采用分段范围采用随机后坐力区间的形式,纯后坐力配置来实现相对可控随机弹道,在等会子弹散布的部分会做进一步阐述。


数值设计层面,需要注意到的是水平后坐力对于玩家手感的影响远大于垂直后坐力,同时向左的水平后坐力对手感影响大于向右的水平后坐力。垂直后坐力仅有一个方向,无论是平滑的亦或是突变的,玩家只用控制下压的幅度,而水平后坐力需要玩家判断子弹偏向的同时输入相反的拉枪幅度,对技巧的考验程度更高,向左的水平后坐力还会在一定程度上导致枪焰/枪口遮挡玩家目标,进一步影响瞄准。


2. 后坐力回复


定义:开火过程中向枪口初始位置方向的持续回复力,常见单位是角度/秒



后坐力回复实际上是在帮助玩家抵抗后坐力,协助玩家压枪,设计上有两个注意要点:


1. 1. 后坐力回复的生效时间相对于开火时间需要有一定的延迟,不然很有可能出现枪口抬不起来的情况,也能更好模拟先受到枪械后坐力上抬,再主动下压的过程。


2. 2. 对于玩家主动压枪行为的处理,如果只记录视角的偏移值来直接做减法,那玩家一旦压枪,就会出现停止射击后准心偏下的情况,解决这个问题只需要同时记录一下玩家操作的变化,做个减法就行了;跟枪的处理就更复杂一些,建议在做减法的基础上,如果玩家的操作偏移值大于后坐力回复值,停火后关闭后坐力回复。


3. 子弹散布


定义:子弹最终落点与后坐力骨架固定点之间的最大偏移值,实际距离为(0~最大范围】的随机数



结合上文我们可以知道,大多数射击游戏当中采用的固定+叠加后坐力的实现方式,后坐力骨架是固定,增加子弹散布是为了增添弹道的随机性,如上图所示,每一次M4A1-S开火之后的子弹落点都是不一致的。


我们通常为了能够模拟枪械随着不断开火越发不稳定的表现,在子弹散布的设计上会有单发子弹最小子弹散布、子弹散布叠加值、最大子弹散布的设计,从而实现散布由小变大(这种配法其实也可以做散布先大后小)。


子弹散布变化:


子弹散布在人物各个姿态下,配置值往往是不同,一般来说:跑动>站立>蹲下>趴下。


这样的设计是为了避免玩家在跑射的过程中拥有较高的射击精度,还原现实中武器操作的体验但是跑动状态下的散布到底比静止状态下大多少,这个是根据项目需要决定的。


[ CF与CSGO横移状态下子弹散布对比 ]


在CS: GO/Valorant之类的强调战术性,追求道具配合和地图控制的游戏当中,往往会把移动过程中的子弹散布配置的偏大,不鼓励玩家干拉。以跑打为特色的游戏,无论是CF还是COD等,出于降低门槛和打的爽快的考虑,并不会大幅加大移动过程中的散发。


腰射准心:


准心只是子弹散布在游戏界面的具象表现,常见来说我们将开火准心的大小,配置到和子弹散布范围对齐,清晰的告知玩家当前的子弹散布范围,玩家观察到了起步到跑动之间的准心大小变化,就是人物再不同姿态变化时的子弹散布变化


但子弹散布这个数值有一个比较明显的缺点,纯随机数会导致整体的弹道不可控,尤其是在子弹散布偏大的情况下,取一个较为极端的例子,假设散布配置较大,整个黄圈内都是散布的随机值



当子弹最终落到D点时,玩家会认为这是一个均匀的右上后坐力;落到C点时,玩家会感受到一个可控的后坐力突变;落到B点时,玩家则会感觉到整个后坐力框架发生了变化,射击体验很不可控。


把子弹散布的值配小一些可以解决这个问题,但又使得骨架相对固定,策划的控制维度不是很充足。


建议两个解决方案,最终效果都是类似于加一个限定向量角度的随机值,实现有效、可控随机:


1. 刚刚在后坐力层面上提到的后坐力范围随机的解决方案,我们将后坐力骨架的大致向量方向确定,通过限定范围随机使得具体值有所变化,玩家能够感受到的依旧是向同一方向的后坐力,子弹不会随机乱飘,后坐力变化更像是下图


[ MW的后坐力骨架可能采用了范围随机的手段 ]


MW的后坐力目前有两种说法,有说是读取开火过程中武器模型的偏移量来叠加在后坐力骨架上从而实现随机弹道的效果,也有说是确定了后坐力+散发的子弹落点之后,再来做的武器模型偏移,但毕竟大家都不是IW,谁也不知道哪一条是对的,谁先做个1:1复刻谁赢


2. 我们对散发也增加向量控制,限制散发落点由一个正圆,变成后坐力向量方向的一定范围内。例如限定在当前后坐力方向上,子弹散布的落点范围只有图中黄色位置,也就是只有C点是满足条件的落点。



总而言之,无论武器弹道系统怎么实现,核心目的都是为了构建一个更便捷、更可控的弹道配置方式。


4. 呼吸抖动


定义:保持开镜状态时,为了模拟真实呼吸情况增加的镜头偏移



在常见的端游当中,往往会给到一个屏息键来实现呼吸抖动的对冲,手游平台上,出于控制按键数量的考虑,也有部分游戏采用的时候开镜后一段时间后才叠加呼吸抖动


设计上需要开放的参数主要有:是否开启呼吸抖动、屏息时间/呼吸抖动生效时间、呼吸抖动移动的方向与偏移速度、呼吸抖动范围;这个值建议往小了做,给一点呼吸抖动有个意思就够了,数值过大会倒逼玩家去打瞬狙,会大幅提高狙击枪的上手门槛


5. 命中减速/子弹冲力


定义:命中敌方目标时对敌方施加的减速效果,一般和子弹/枪械类型挂钩.


命中减速效果比较明显的是Valorant和CS: GO,命中敌方后的明显减速有利于玩家的跟枪,对武器的下限提升有一定帮助,对于受击方而言会有明显的迟滞感,常见于各类打僵尸的游戏。


数值设计上取决于项目的状态,假设是一个跑打为主的项目,这反而是一个限制跑打和身法的手段,会一定程度上破坏游戏特色,理论上不应该添加这个数值,但如果头部玩家和大众玩家之间由于身法已经造成了巨大的技巧鸿沟,则又可以增加这个数值做反制;实现上,命中的时候给一个不可叠加的减速BUFF即可。


6. 受击上抬


定义:在开镜状态下被子弹命中,模拟受击效果做的小幅镜头偏移,常见单位是角度/发,同样受后坐力回复影响。


一般来说我们在被命中时只需要给一个向上的镜头偏移即可,如果细化一点可以做到根据子弹来向做偏移,子弹类型做幅度大小,体验可能会更细致,也可以做成COD:MW的震屏动画。


在开火过程中被子弹命中时,受击上抬会叠加在垂直后坐力上,后坐力骨架会有较大的向垂直方向上的变化,所以垂直后坐力的武器受击上抬要谨慎配置。


整体而言,受击上抬需要根据不同枪型(主要受举镜FOV和开火垂直后坐力大小影响)、人物的不同姿态来做设计,还可以开放到武器配件当中供玩家选择(例如脚架之类的东西)。


在实际使用的过程中还会发现一个问题,由于受击上抬是在开镜之后才会触发,开镜过程中的受击并不会影响到开镜后的准心位置,所以对于狙击枪而言,瞬狙的性价比会进一步提升,这也是如果要使用这个参数需要注意的问题,有需要的情况下可以将判断区间提前至开镜过程中


机动性数值


1. 移动速度


定义:玩家在不同姿态下手持武器,朝向各个方向的移动速度,单位为M/S。


这里有三个关键词,一个是不同姿态,二是手持武器,三是不同方向。


手持不同的武器,需要有不同的移动速度,已经是行业共识了,我们不浪费时间讲这个,聊一些有趣的更靠近3C层面的东西。


1.1不同方向的移动速度


这里不考虑端游键盘,WASD带来的纯正八方向处理起来会简单很多,我们聊更复杂的摇杆


[ 向前速度为1,左右后为0.7 ]


不同方向的数值:


一般来说,我们会把向前奔跑速度和其他三个方向的速度做出区分,往前跑会更快,而左右平移和退后会更慢。


这么做有两个好处:


1.感观层面上,同样的速度下人物往前移动和左右移动,会明显的认为向前速度更慢,左右移动速度更快。这个我很难专业的给出解答,但我猜测是由于FOV的导致场景物件缩放的缘故导致的,现实生活中也是如此,侧过来坐自行车/过山车可以感受下。同时由于日常生活中横移速度和退后速度都更慢,所以也更符合玩家习惯。


2.局内战斗层面上,横移速度过快会导致玩家难以跟枪瞄准,对战斗体验也有很大的影响。


不同方向的判定:


玩家控制摇杆的时候,受制于手指粗/不灵活的影响,往往会导致推动摇杆时,摇杆并不刚好处于左右45度范围内,所以需要进一步扩大前进方向的判定,如图中红色箭头位置所示。类似的设计思路我们统称为操作补偿,除了奔跑判定以外,在常见的翻越、攀爬、过门过窗的实现中也会有类似的设计


1.2站蹲趴速度


站立移动、下蹲移动和匍匐前进三种状态的移动速度不同,常见用系数来直接控制,以站立move的速度为1,蹲下和趴下分别乘上相应的数值


需要额外提一嘴的是各个状态过渡阶段的速度处理,不仅是站蹲趴,所有过渡动画播放时角色速度都需要插值


1.除了站蹲趴三种状态本身的移动速度以外,每个状态之间的速度变化需要插值处理,如果过渡时采取瞬切,取任意状态的速度都会出现迟滞或者突然加速的感观问题,状态间的平滑过渡真的很关键



2.原地站立、蹲下、趴下三种状态之间的转换,需要给到充足的过渡时间。多人对战游戏需要进行频繁的网络同步和3P模拟,如果过渡时间偏短,玩家可以利用半身掩体持续蹲起,对方客户端可能上一个包才收到站立,下一个包立刻又蹲下了,如果再出现丢包的情况下,则根本不会模拟站立表现。


1.3奔跑/冲刺/静步


部分游戏在常规行走的基础上,赋予了类似于奔跑/冲刺/静步等特殊的移动形式,这类行为的移动速度依然取决于枪械的基础移速,乘上响应系数即可。


一些设计要点:


1.奔跑/冲刺的加速度(启动速度):在CS: GO和PUBG当中,人物的奔跑是有一个加速度过程的,同时减速也有减速过程,而在COD当中是瞬间达到最高速度;使用加速度会使整体表现更拟真,直接达到瞬时速度则会使手感更干脆,具体的选择需要看项目的特性。


2.奔跑/冲刺的持续时间(体力条):在我看来,是否增加冲刺体力条取决于冲刺行为的设计意图,如果是提供爆发性加速鼓励玩家迅速到点或者是离开战区,可以给予体力条限制能力不滥用;如果是单纯地图太大而持枪跑步太慢,那么体力条意义就不是很大。


3.奔跑/冲刺/静步的触发方式:战地和COD之前都是shift冲刺,在Vanguard上线后可以发现COD改成了跑步默认冲刺,这也符合COD的冲刺能力定位:快速到达或离开战区;在手游平台上,为了省一个按键,可以大多数游戏都是给了一个摇杆阈值,高于这个阈值就自动触发奔跑/冲刺(PUBGM/CODM),或者低于这个阈值就触发静步(CFM)。


4.奔跑/冲刺的平衡:常见的设计会给到跑射延迟,后续会聊到。


1.4 跳跃速度


定义:这没什么好定义的。


跳跃的关键数值:



参数实现之后,跳跃的手感就成了玄学了,依赖策划的手艺,当然也取决于CE的反馈。


如果对跳跃有更高的追求:https://youtu.be/hG9SzQxaCm8。


一些设计要点:


1.连跳限制:玩家在短时间内连续触发跳跃时,需要下调玩家每次跳跃的速度和高度,一定程度上限制连跳行为。


2.空中转向:玩家跳跃在空中时是否支持空中转向,人物落地位置是否受转向角度影响、落地位置最大偏移量等也需要玄学调试。


1.5翻越速度



翻越这里数值能说的不多,制作的难点还是在表现侧怎么梳理翻越逻辑、怎么判断障碍物高度厚度、怎么拆分翻越动作,关于翻越的数值:


1.不同高度障碍物的翻越速度规划:


不同高度的障碍物需要播放不同的攀爬/翻越动作,同时也需要匹配不同的攀爬/翻越速度,甚至还可以针对起跳高度、障碍物宽度再来输出更细致的动作,例如上面美末2视频的翻越表现。


不同高度障碍物翻越速度需要在前期跟美术定好标准,确定好帧数之后再开工,后期反复沟通帧数加加减减很麻烦。


2.翻越落地后的速度补偿


大多数游戏没有做这玩意,但我认为快节奏战斗、鼓励玩家拉扯的射击游戏可以增加这一部分数值,毕竟玩家翻越障碍物时,相对于平地奔跑,既有被命中无法还击的风险,平均速度也有所下降,那么在翻越完成后可以适当做加速度补偿,同时还能避免翻越落地再加速的迟滞感。


多说两句关于翻越表现的:


1.翻越的状态设计要规划好。


翻越前:多高的障碍物、多远距离、多大角度触发判定、距离或角度过远是否有吸附补偿,下落过程中是否能触发判定


翻越中:不同高度的翻越动作是否兼容其他动作,例如中低高度单手翻越是否支持腰射开火,翻越过程中是否支持回拉摇杆取消翻越,翻越过程中是否支持转向


2.1P/3P翻越的矛盾要处理好。


越来越多的游戏支持第一人称和第三人称的视角切换,但是两个视角下对于动作速度的感知是有区别的,同样速度的翻越,在3P看来可能迅捷流畅,在1P只有镜头和手臂表现的情况下可能就会觉得拖沓,这一部分到底是保1P的表现还是3P的表现,也需要提前想清楚


1.6下落速度


上文在讲子弹下坠的时候提过建议将人物下落速度与子弹下落速度区分开,这也是为下落的表现做让步。


下落速度的设计通常来说有下落加速度值和最大下落速度值。表现层面上,当玩家下落超过一定时间或者一段距离时,会播放特殊的下落动作和落地表现,参考PUBG就行。


1.7滑铲速度



滑铲的速度由加速、保持和下降三个阶段组成。


数值上简单点的做法有加速度、加速时间、最大速度、保持时间、衰减速度、衰减、连续滑铲惩罚时间、连续滑铲衰减速度8个参数组成,共同营造一个瞬时爆发加速的效果


更复杂的一些的做法可以将滑铲的速度与奔跑速度挂钩,实现不同武器拥有不同的滑铲速度与距离。


坡上持续滑铲(例如Apex),则需要增加实时坡度判断,大于一定坡度的情况下保持固定速度持续移动即可。


表现上相对会复杂一些,涉及到人物动作、镜头偏移、镜头特效、人物转向之类的。


1.8举镜/开火移速


武器的使用状态也会影响移动速度,枪械在举镜状态下的移动速度需要做单独的处理,基本思路和持枪奔跑速度一致,仍然是跟武器类型挂钩。


通常情况下:奔跑速度>步行速度>步行举镜速度≈蹲走速度。


虽然大多数游戏都没有做开火减速,因为举镜移速已经相对偏慢了,但我还是觉得拟真向游戏可以在开火过程中叠加一个小幅移速衰减,强化开火过程中的武器表现。


2. 跑射延迟


定义:玩家从跑动过程中点击开火,到枪械触发腰射开火或举镜的时间,在动作表现上是将武器从奔跑时的持枪位置回正到idle状态所需要的时间。



这就是我们上文提到的针对于奔跑/冲刺动作的补偿,在COD系列中尤为明显,战术冲刺状态下点击开火触发的跑射延迟会明显大于常规奔跑状态。


数值设计上100~200ms是相对干脆的跑射时长,数值再往上就是针对例如狙击、机枪等枪型高伤害或者大弹容的跑射惩罚,例如图示加兰德的300/450ms


3. 切/收枪时间


定义:武器更换过程中,拿出和放回武器的时间:在我们从武器A切到武器B的过程中,需要先经历收起武器A,再拿出武器B的过程,总时长=武器A收枪时间+武器B切枪时间


切枪是大家都喜闻乐见能够接受的东西,我们最喜欢的蝴蝶刀和M9切刀也是在切枪过程中实现的


但收枪时间并不是大多数国内玩家能够接受的,体感上会认为不够干脆,这里见仁见智,从个人出发,非拟真向的项目确实可以缩短时长或是直接去掉,强化切枪动作就行,业内的其他游戏收枪时间存在感也越来越低


收枪动作很难做出花来,即便是搞一个原地消失的特效,玩家也会觉得拖沓,不如把时间拿去给蝴蝶刀多转几圈,换出来的枪多拉几下栓


切收枪时间越快,武器在应急状态下的应变能力也会相对更强


4.举镜时间

在开镜时间的设计上,遵循机动性高的SMG、AR等开镜时间短,机动性低的SR、LMG等开镜时间长的特点

开镜在设计上有两个需要注意的点:


1.数值层面上,开镜过程武器精度的变化,一般的做法是在开镜过程中由腰射精度插值到开镜精度,更进一步的可以控制开镜过程中精准度(子弹散布)的变化曲线,可以有效控制这把武器瞬狙玩法的强度


2.表现层面上,举镜动作先慢后快,关镜动作先快后慢,保证举镜过程中FOV平滑变化


 其他数值 


辅助瞄准


辅助瞄准是主机、手机平台的武器手感核心数值,都属于各项目组看家本领,此处不谈。


被强行数值化的表现数值


有的游戏为了增加数值维度,将准心瞄准敌人时显示名称的距离数值化,故意做大枪口火焰从而将枪口火焰抑制的数值权重加大,同样类别的比较特殊的数值还有枪械卡壳率等。


数值篇就到此位置了,絮絮叨叨一万字,还穿插了一些关于3C的东西。文很少提到具体的数值应该怎么分配,哪些数值是完全对立的,怎么做枪械梯度的整体平衡,这些东西需要具体情况具体分析,我就不在这里瞎指导了。


这样一遍梳理下来,对于我自己而言也是再次强化对枪械数值维度的认知,希望对大家有所帮助,至少了解游戏设计里做枪到底是在做个啥。


学习有奖!

我们将会在2022年2月23日17:00前抽出5名幸运同学,分别送出鹅厂定制新年礼盒。参与方式如下:

①点击文末右下角的“在看”
②留言评论学习心得
③发送关键词“打卡”至公众号后台完成资格验证

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存