游戏开发论坛

 找回密码
 立即注册
搜索
查看: 4643|回复: 0

干货:射击游戏中强烈的手感如何营造出来?

[复制链接]

4万

主题

4万

帖子

8万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
82751
发表于 2021-4-2 10:45:14 | 显示全部楼层 |阅读模式
官网文章头部gif640.gif

本文首发网易游戏学院APP,GameRes经授权发布。

一、当我们说起FPS的手感时,我们在说什么?

“手感”一词本来说的是手触摸物体的综合感受。那么说到射击游戏,就是对枪械和人物行为的综合感受,而其中更重要,且被更多人提到的,就是枪械手感。

那么枪械手感综合了哪些内容呢?依照我的理解,有如下结论:

枪械手感 = 准确的体验 + 爽快的感受

准确的体验指的是这把枪符合认知预期和它的定位;

爽快的感受指的是在使用该枪械时有清晰而正确的反馈,且该反馈可以稍加渲染以达到让人感觉爽快的目的。

那么怎么做才能达成以上目标呢?请继续往下看。

微信图片_20210402102507.JPG

二、手感是如何营造的?

一把枪,有可能因为没有后坐力被人说是激光枪,有可能因为细节太少被人吐槽不写实,也有可能因为音效太差被人叫做水枪。

由此看来,一把枪的手感是由多方面构成的。下面我将从枪械静态表现、动态表现、命中目标表现、我方受击表现四个方向来谈谈我的看法,其中必定有遗漏和会引发异议的地方,欢迎大家指正和讨论。

2.1 枪械静态表现

在分析射击游戏的枪械手感时,大部分情况,我们会认为枪和相机都是玩家的一部分,即玩家角色=avatar+camera+weapon。只有在制作高精度枪械模型的时候,才可以只考虑枪械本身。

那么为什么枪械模型会影响到手感呢?

2.1.1 模型

2.1.1.1 精度与模型真实度

微信图片_20210402102514.JPG

从左到右依次是:反恐精英1.6、反恐精英:起源、反恐精英:全球攻势和反恐精英:全球攻势的mod

由上图我们不难看出,随着技术的进步,游戏中的模型变得越来越精致。对于射击游戏,尤其是FPS来讲,枪械模型距离镜头是非常近的,这使得枪械上的每个细节都会被屏幕前的玩家观察到。枪械精度越高,玩家的代入感就越强,并且随着玩家对枪械认知的进化,这种需求只会越来越强烈。

我们用上图AWP的瞄准镜来举例。在实际中,瞄准镜是一种非常精密的光学/电子仪器,做工自然是非常精良的。如果现在出现一款游戏,如CS1.6一样,惊现多边形瞄准镜,那会有什么后果?反正被骂是肯定的。

微信图片_20210402102515.JPG

一个长适眼距瞄准镜及其主要调节部件

枪械模型要想符合认知,除了高精度以外,还要做到以现实枪械为基础。不管是写实风游戏还是科幻风游戏,在设计枪械时都不能背离常识。比如冲锋枪比步枪短,这就是常识。

那么这与手感又有什么关系呢?我们就用刚才说的枪械长短来说明。在FPS游戏中有一个不成文的规定:枪越长,就越准。其实这是很有实际依据的,因为发射药引爆之后,子弹在枪管中一直在受力,一直处在加速状态。假设其它条件都相同,更长的枪管将提供更长的加速距离,加速时间也更长,出膛速度也更快。所以在制作游戏中的枪械时,同种枪械类型,如果这把枪比较准(指散布较小),那么最好让它的枪管长一些。

微信图片_20210402102518.JPG

微信图片_20210402102520.JPG

2.1.1.2 瞄具

早期的FPS因为硬件机能限制,为了打造简单便捷的游戏体验和操作方式,并没有很好地区分现实中的腰射和肩射。在近年来的射击游戏中,使用瞄具的肩射是必不可少的组成部分。使用瞄具瞄准是非常符合现实中士兵行为的,同时它又可以将玩家的视线聚焦,所以游戏中瞄具的出现很大程度上强化了玩家的沉浸式体验。

瞄具的外观可以包括在模型精度与真实度中,这里把瞄具单独拿出来,是想聊聊瞄具内部的事情。

微信图片_20210402102521.JPG
部分真实瞄具的内部刻度

首先要说的是瞄具内部的刻度。由于现代枪械中,除机械瞄具外其他的瞄具都不绑定枪支,所以并没有说一把枪必须对应哪一种内部刻度。那么我们如何决定一把枪上瞄具的刻度呢?其实很简单,刻度都是跟着瞄具走的,什么样的瞄具就带什么样的刻度。

硬核一点的,强调枪械装配自由度的游戏,如《幽灵行动:荒野》,可以有很多瞄准镜供玩家挑选。

微信图片_20210402102522.JPG

这是很符合现实的做法,但是其仍然有一些限制,比如某一些枪只能用某一些瞄准镜。这是因为在选择瞄具时有两个关键标准,其一就是枪械的射程。

我们知道,瞄具内部的刻度主要是为了让士兵测量弹道的下坠和风力造成的偏向,那么在实际和游戏中,这都是与射击距离有关的。所以不难想象,为什么PUBG的冲锋枪不能装8倍镜了。

那么选择瞄具的另一个标准是什么呢?说出来你可能不信,是……个人喜好。

微信图片_20210402102523.gif
《逃离塔科夫》中的瞄准镜

2.1.2 重量

重量是可以在游戏中反应真实的一个因素,对手感的构筑有帮助。而且有一些基于重量的游戏内设计也是会考虑平衡性的,比如手持机枪的人一般跑得较慢。(然而实际上没什么人会抱着机枪到处跑的,大多是有载具运送机枪。)

重量在游戏中的表现一般为各类速度值的变化,对应关系自然是重量越大,速度越慢。

2.1.2.1 移动速度

移动速度会随枪械重量变化,这一点大家都能想到。在移动的过程中,还可以通过动作的吃力感来辅助表现枪械的重量。

2.1.2.2 开镜速度

开镜速度模拟的是把枪举起,枪托抵肩并瞄准的过程。所以越重的枪,该过程就会越慢。

开镜速度在需要短时间反应的射击游戏中作用很大,只要开镜速度的差值与人类的反应时间可以比拟,就可以对交火过程产生影响。

微信图片_20210402102524.gif
《彩虹六号:围攻》中Jackal的开镜速度

微信图片_20210402102525.gif
《彩虹六号:围攻》中Maestro的开镜速度

2.1.2.3 转身速度

越重的枪械转身速度越慢,这个大家都知道了。

这里要说明一下,重量会带来非开镜状态下的转身速度的变化,但是不一定与开镜后的转身速度成正比。一是从平衡角度考虑,本身不开镜转身就慢的枪,在开镜时理应获得较好的射击姿态,用以突出每把枪的特点;二是本身开镜后的转身速度就很缓慢,如果再在其上做出明显差别的话,会影响瞄准的手感。所以开镜后还是会再给一个新的参数。

2.1.2.4 换枪时的拿出速度

换枪时的拿出速度一般和枪的重量和长度有关,如果枪械有常用和备用的设定的话,一般备用枪械的换出时间要小于常用枪械的换弹时间。

这一点其实有些硬核,因为往往与“换弹时间>换枪时间”这个设定相关,这个设定要求玩家在打空弹匣且情况紧急时,掏出另一把枪对敌,这本身就是一个硬核操作。

2.2 动态表现

我将从射击动态和其他动作来聊射击游戏在动态表现上的手感表现,这一点也是最明显体现手感的内容。

2.2.1 射击动态

进行到这里,就是各种大家耳熟能详的影响手感的元素了。本节以讨论自动步枪的手感为主,给大家提供一些表现不同元素的方法,并且这些方法在其他枪族上也可使用。

2.2.1.1 后坐力

后坐力(是“坐”不是“座”!),是指枪械发射时产生的后退力量,其后退动量等于枪的质量乘以枪械后退的速度。

射手射击时,手和肩部给枪的力都是向前的推力,但是施力点都略低于枪管,这时枪械受到一个向上旋转的力矩,就会出现我们熟悉的“上跳”。在上跳的过程中拿不稳,就出现了左右跳。

微信图片_20210402102527.gif
手枪射击瞬间(图片:知乎)

(1)垂直后坐和水平后坐

微信图片_20210402102528.gif
《灵行动:荒野》中开镜后的后坐力表现

在上面的动图中,我们可以看到,一把枪在射击时,每射击一发子弹,准星都会进行跳跃。这种跳跃可以分解成在纵轴和横轴的位移,且给玩家的感受是以纵轴为主,很少有以横轴移动为主的。

抛开拟真的要素,这里面有两点原因,一是纵轴往往都是上跳,玩家对后坐的方向是有预期的,到了横轴就是左右跳,不好预判是左还是右;另一个原因是如果一把枪以横跳为主,那么玩家压枪的时候就要往相反的水平方向运动,此时瞄准的目标一般也是水平运动,这就会造成玩家很难跟枪。

那么如何模拟两个方向上的位移呢?我使用过且觉得还不错的方法是“分段+随机”。

-分段:将一个弹匣的子弹分成几段。比如30发的弹匣,我分成10,8,2,5,5这五段。

-随机:在每一段中,随机出段内每发子弹的垂直后坐和水平后坐。

这样的话,如不考虑子弹散布,则将几段着弹点连起来就是几条折线。

微信图片_20210402102529.gif
《和平精英》中M416开镜后的着弹轨迹,明显也是段落式的

分段+随机的方法比较灵活,除了折线外,它也能实现固定的平滑着弹轨迹(类似彩虹六号围攻):如果你想要一个二次函数一样的平滑曲线,此方法可以模拟,方法就是让垂直后坐越来越大,而水平后坐基本保持不变。也可以使用几段折线的方法来模拟,不过要注意的是,在较为明显的拐点处需要留2-3发子弹来过渡,否则枪口跳动的方向会有跳变。

这里要说明的是,如果想做出折线的效果,势必要有水平后坐的调整。我建议在调整水平后坐之前,先给这把枪定一个偏移方向,也就是向左还是向右偏,并设定水平后坐最大值。然后每次折线发生变化的时候,都使用相对水平后坐增量来处理,这是为了避免如果用绝对的水平后坐两次随机出的结果差别会太大。

另外,在设计后坐力数值时,必须要考虑射速带来的影响,因为后坐力的增加是与每发子弹绑定的,射速与之是一个乘法的关系,会起到比较明显的放大或者缩小的效果。

(2)后坐力的恢复

射手射击时肯定会尽量保持枪械的稳定,后坐力的恢复机制就是模拟这一过程。

后坐力恢复具体分两种类型:射击过程中的恢复和停止射击后的恢复。

射击过程中的恢复:随时间进行的恢复,并不与子弹挂钩。

停止射击后的恢复:不开枪一定时间后,准星会以一定速度恢复到原位置。这个可做可不做,如果做了,就是降低操作成本的一种设定。做这个机制的时候要注意,并不是将后坐力带来的位移完全反向走一遍,而是要考虑玩家在射击过程中的压枪,所以我们要记录玩家在射击时的相机位置,然后只要旋转回这个位置即可。否则就会出现当恢复完后坐力,玩家就望向地板的场景。

(3)镜头抖动、动作抖动、瞄具抖动

因为后坐和镜头抖动都是由于单发射击而产生的,所以就放在一起了。

镜头抖动主要模拟由于后坐力作用到肩膀,射手受力身体发生摇晃,从而观测点(眼睛)发生位置和旋转角变化的现象。

微信图片_20210402102532.gif
注意观察屏幕边缘,就可以明显看出镜头的抖动

镜头抖动的原则是,抖动频率与射击频率相同、准星不会因为镜头抖动而偏离、威力越大的枪抖动越厉害。

与此同时,在TPS游戏中,顶住枪托的肩膀需要有跟随射击频率的抖动,但是头部最好不要有大动作,否则会非常鬼畜。

在开镜射击时,瞄具的模型也要随着射击发生相对镜头的位移,玩家看上去通常为放大效果。通常瞄具的抖动会显得比较有弹性,以突出每发子弹的力道。不过瞄具的抖动还是挺有深度的一个问题,篇幅所限就不在这里进行讨论了。

除此之外,不同类型的枪也可以通过更为夸张的抖动而彰显枪械特点。

微信图片_20210402102533.gif
《叛逆连队2》中霰弹枪的镜头抖动

同样的,我们还可以依情况加入径向模糊的效果,可以增加开枪时的力量感。但是需要注意的是,镜头抖动和径向模糊都会造成玩家的眩晕,所以要谨慎使用,并经过很多测试才行。

2.2.1.2 子弹散布

同一支枪,在同一状态下射击若干子弹,每发子弹的飞行轨迹和着弹点都不完全一样,这种现象在游戏中叫做子弹散布。

游戏中的子弹散布模拟了实际中的三个因素:

每发子弹的射击初速度不相同

每发子弹的出射角不相同(会有误差)

环境因素,如风和下雨等

在大多数游戏中,开镜后的散布往往极小,此处暂不讨论。

非开镜状态下,子弹的着弹点会随机落在以准星中心为圆心的一个圆中,该圆的半径与以下因素有关:

(1)连射

子弹散布的规则是每发一枪,散布就增大一些(并不绝对,反例是全境封锁中的轻机枪,越打越准)。那么在这种设定下,随着子弹的连射,散布就会越来越大。

在多数游戏中,非开镜状态下散射如果较大,都是为了与开镜的手感区别开,让玩家对不同的情况有不同的取舍:我是该多花点时间开镜,还是用不那么准的腰射来应对当前的场面。

微信图片_20210402102534.gif
《幽灵行动:荒野》中不同持枪状态下的子弹散布情况

微信图片_20210402102535.gif
《幽灵行动:荒野》中不同持枪状态下的子弹散布情况

(2)玩家移动和跳跃

我们姑且把不开枪时的散布值叫做初始散布。当玩家移动和跳跃时,初始散布会增大。这种设计也是出于模拟真实的目的,同时还有平衡游戏性的作用。

也有一些游戏会在人物下蹲时减小子弹散布,当年我们玩CS用AK时,都是跳出来接蹲下,然后点三枪,自己觉得特别准,其实就是上述原因造成的。

2.2.1.3 射速

射速对枪械手感的影响很大,不过我们只能调整一个参数,影响比较有限,所以还是需要跟其他因素(如后坐、散布)一起考虑,来进行数值调整。

我建议写实风格的游戏中,每一把枪都按照其原型的数值来进行射速的设定。因为射击游戏的玩家的枪械知识越来越丰富,所以游戏中的一把枪的数据是否和真实枪械相同也是玩家评价一款游戏的标准。

2.2.1.4 枪口火光、弹道和抛壳

这三个要素大家可能平时不太会意识到,但是枪械的手感就是从这种细节之处表现的。

枪口火光比较简单,就是开枪时枪口位置的一个发光特效。如果想做的考究一些,就要根据这把枪装的是什么枪口而出什么样的枪口火光。在枪口暴露的位置,火光才能出来。

微信图片_20210402102536.JPG

弹道牵扯到两种射击的实现方法,一是射线判定,即没有子弹飞行时间;另一个是有子弹飞行轨迹的。不管用的这两种中的哪一种,都可以做一个较短的发光线段用来表示飞行中的子弹。该线段不宜过长,否则会比较假。对于燧发枪,还要有比较漂亮的烟雾拖尾效果来辅助表现。

另外着弹点可以有小型的光效来表现子弹与目标摩擦产生的火光。

微信图片_20210402102537.gif

《Remannt:from the ashes》中的枪口火光和弹道表现

抛弹壳经常被忽略,但是其实从视觉表现上来说,它也仅仅是为了真实性,不过将弹壳抛在地上的音效对于枪械质感的营造可是非常有用的。在制作枪械抛壳窗的时候要注意,一般的抛壳窗会开在枪械右边,否则……就打脸了。

微信图片_20210402102538.JPG

2.2.1.5 声音

声音在枪械手感营造上可谓功不可没。也许有人会说音效确实很重要,但是它并没有改变枪械的手感啊?其实不是的,我在开篇写到“枪械手感 = 准确的体验 + 爽快的感受”,音效对这两方面都起了非常重要的作用。

除此之外,换弹匣的音效、抛弹壳的音效、拉栓的音效,枪械金属碰撞的音效,都有助于提升枪械质感,清脆的金属碰撞的声音也会使玩家觉得对应的动作更为爽快。

另外还可以制作击中音效,这个击中的音效指的不是受击时因疼痛而产生的吼叫,而且子弹命中敌人时“噗”的一声。这种机制在有子弹飞行轨迹的远距离射击中比较有效,虽然隔着很远,玩家本不应该听到这种声音,但是它会给玩家极好的命中反馈,利大于弊。

2.2.2 其他动作

这一部分动作虽然与枪械动态无关,但是如果做得出色则会让玩家觉得角色不僵硬,进而提升整体的手感。我个人建议这些动作尽量使用动作捕捉,因为某些动作很难用传统的动作制作方法做得出色。

2.2.2.1 持枪动作

每种枪械基本都有自己固定的持枪动作,大部分都是为了保障待机时的安全性和出现突发状况时的应急性。

微信图片_20210402102539.JPG

2.2.2.2 射击动作

射击动作大家经常在游戏中见到,也是比较需要动作捕捉来制作的一类动作了。在制作过程中要注意动作的专业性,比如手枪拿的比较远,且需要侧身。

微信图片_20210402102540.JPG

说到动作的专业性,这里要提醒大家两点。一是瞄具绝对不能贴眼,尤其是大后坐力的枪械,否则……

微信图片_20210402102541.JPG

二是在我们之前传统方法制作射击动作的时候,人物的眼睛根本就没有看向瞄具,使得瞄准体验很僵。最好是要让目光贯穿瞄具中心,并与准星射线平行。如果从模型的角度很难做到这一点(比如有难以解决的穿插),则需要至少让角色的目光射向瞄具方向,尽力确保动作的专业和真实。

2.2.2.3 换弹动作与拉栓动作

这两种动作比持枪动作更为专业,因为不同的枪换弹的方式很可能不一样,枪栓的位置也是各异,所以我们需要针对每一把枪制作其换弹动作。不要嫌麻烦,这是真实性的保证,如果有错误玩家是可以看得出来的。

2.3 命中目标表现

这一部分主要是与“爽快的感受”有关,也就是目标的反馈要做出哪些内容,才可以使玩家体会到爽快的手感。

2.3.1 准星变化

这里指的不是散布引起的准星变化,而是准星和目标的交互结果。

2.3.1.1 瞄中

微信图片_20210402102542.JPG
《Remannt:from the ashes》中瞄中目标的提示

瞄中目标,准星变红,这是一个增强手感的可选项。在大部分情况下,玩家判定一把枪好不好用还有一个因素:打不打的中。如果我们在射击之前就让玩家知道他是否能打中,确实会对营造手感有正面作用。

需要说明的是,场景偏暗的游戏或者是需要暗杀的场景中,瞄中后的准星颜色变化往往会更加有效。

2.3.1.2 命中

命中的准星效果就不是选做题了,这几乎已经成为射击游戏的标配。

微信图片_20210402102543.gif
《Remant:from the ashes》中命中目标的提示

具体的制作方法是当子弹命中目标时(不是射击时),准星中间会出现一个类似“X”的图案。这个图案有可能是动态外扩,也有可能是动态内收,甚至还有可能不是一个“X”,这些都无所谓,重要的是我们需要告诉玩家,你打到了目标。

2.3.1.3 爆头和击杀

爆头和击杀的准星反馈也属于“选做题”。很多游戏都会在其他地方显示这两类信息。

微信图片_20210402102544.JPG
很多时候这两种信息都是显示在这里的

但是如果你不想圈出一块地给UI显示这些信息,那么放在准星上也是可以的。爆头的效果可以在命中的基础上修改,做的更狠一些,而击杀的效果可以做出“搞定”的感觉,比如准星虚像外扩。

2.3.2 目标反馈

刚刚说的是准星,也就是射手方的反馈。同样的,目标方也需要有受击的效果。被击中了,不掉点血怎么行呢~?

2.3.2.1 飙血

飙血特效一定要有,如果命中目标后,一点血都看不见,玩家是无法接受的。

微信图片_20210402102545.gif

飙血特效难度不大,有一个经验供大家参考:不要用很多较大的贴图,这样会显得比较有实体感,说的具体一点就是血液太黏稠了。

这里要说一下远距离射击的飙血特效的处理,因为比较特殊。一般来讲特效的大小是固定的,那么目标距离观察者越远,目标身上的特效就显得越小。但是如果我们想让受击效果较为明显的话,可以单独为观察者处理一下,使其能够看到放大后的飙血特效。这样的话,远距离命中敌人的玩家就会得到更强的反馈。

2.3.2.2 地面、墙面血迹

CS1.6时代我们就曾记得,如果被爆头了,身后的墙会出现好多血迹。这个表现沿用至今,也是能够增强射击反馈的一个因素。

微信图片_20210402102546.gif
《彩虹六号:围攻》中的血迹效果

这里多说一句,除了给射击以反馈以外,血迹在战术层面还发挥着作用。在以获取信息为主的对抗游戏中,通过血迹可以使有经验的玩家在脑海中重现交战的情景,从而判断对方的位置。

2.3.2.3 受击动作

这一点与动作游戏类似,受击的一方的重心要向受力方向的相反方向倾斜。但是射击游戏又有所不同,动作游戏的受身判定在射击游戏中几乎不会出现,因为如果每次受击都会使玩家进入受身状态的话,那么高频率的射击必定会打乱玩家的射击节奏,甚至会“控到死”。所以一般的做法是该玩家的受击动作只在客机上播,也就是说,我不会因为被击中而打断自己的行动,但是别人观察的时候,会看出我因为受击而播了某个动作。

但是某些游戏中还是会对高额伤害做出主机段受击的效果,我们会在“2.4 我方受击表现”中讨论这个设计。

2.3.3 弹孔特效

子弹打在不同位置的特效,会加强玩家对子弹力度的感受,会让人觉得这把枪有力量。试想你手握一把很重的AWP,精确瞄准后朝着木板开出一枪,你被后坐力猛地一顶,结果木板一点碎屑都没飞出来……太假了,这木板简直就是无敌的,堪比GTA中的树啊!

微信图片_20210402102547.gif
《幽灵行动:荒野》中射击土砖墙面的效果

2.4 我方受击表现

有的同学可能会感到疑惑,我被击中的表现怎么还会让我觉得枪的手感好呢?其实我们可以把这理解成为在语文课中学到的“侧面描写”,通过自己的感受来反映对手的枪的力度,同样会加深玩家对枪械力道的认知。

我放的受击表现一般由边缘特效、镜头摇晃和动作构成。

被击中时屏幕边缘有红色特效提示是很多端游中常见的做法,常常搭配镜头摇晃和镜头模糊一起使用。在大多数游戏中,该特效的主要功能是提示玩家子弹飞来的方向。

微信图片_20210402102548.gif
《幽灵行动:荒野》中受击的效果

被击中时的镜头摇晃与后坐里带来的镜头摇晃不同,这里的镜头摇晃是沿着子弹来的方向使镜头发生旋转,然后再迅速恢复的过程。

我们可以看到角色在受击的时候有一个头迅速摆动的动作,这就是之前提到的,有些游戏会把受击动作做出来。在《幽灵行动:荒野》中,制作者让这个动作播放速率极快,并且只在玩家不射击的时候播放,这样就不会干扰到玩家的操作了。

另外一个例子是《The Last of Us》中乔尔的受击表现:

微信图片_20210402102549.gif

我们可以看到,乔尔的受击是会影响到他开枪的,但是由于《The Last of Us》是线性的流程,玩家同时面对的敌人往往只有一个,而且该游戏中的武器多以单发为主,并不存在在连射的过程中被打断的问题,所以这样的设计不但并无问题,而且非常符合《The Last of Us》的游戏氛围。

文/DaLi
来源:网易游戏学院
原文:https://mp.weixin.qq.com/s/_u-trLS7-Co8SevftV3MjA

网易游戏学院文章末尾引导图(以此为准).jpg
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2024-3-28 20:17

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表