【战地1】关于武器数据你所要知道的一切 / Sym.gg食用指南
本篇文章算是我对这个游戏原理的全部了解的缝合汇总了

很多人可能并不关心游戏的运行方式,只想了解什么枪好用、强,但这样就像用死背公式模板的方法来学理科,懂了,但只能懂一点点,碰到老师没说过的新题型就完全不会、只能等讲评看到答案才知道怎么做。
但如果你了解本文提到的内容,就能自己分析判断(战地中)一把武器是什么样的了。
另外up明年六月前大约是不会更什么花时间的视频了,因为得准备高考了……
这次写这篇东西也仅仅是在bf1打折的时候想给新玩家提供点引导(虽然早就有大佬写过类似的东西了↓,但这次我尽量做到一次性缝合完所有能缝的让你们能恰饱,嗯)。

没事也不要翻我以前发的东西,主要是因为不保证正确(
当然sym.gg的(包括我自己现在说的)内容也并不一定完全正确,最终还应以实际游戏为准。
在sym.gg的主页上有很多代战地(甚至有cod),此处仅说1的内容。
其他1之前的基本差不太多,5和2042散布规则改了,后座机制则是另一个让人头大的东西。


视野相关
其实这是一个所有第一人称游戏共通的部分,但由于战地系列特有明显的散布机制常常用到角度,我觉得可以在这里加点东西,知道的就不用看了。
游戏视角的来源是位于头部的虚拟“摄像机”,而屏幕上显示的则是它的“底片”。
可以认为这个“底片”是理想的小孔在平面上的成像(当然显示出来的是正像之后的)。

那么和屏幕中心方向成θ角的某个方向上的点在屏幕上离屏幕中心的物理显示距离就正比于tanθ。
而战地设定界面的视角fov为垂直视野vfov,假定为2α。
(注意,游戏设置括号里的hfov指的是4:3屏幕的hfov,不是16:9的)(我也不知道为什么)
那么上面这个点到屏幕中心显示的像素距离就是 (显示器垂直像素/2)/tanα*tanθ。

知道这些,你就能根据数据判断一把武器的散布、提前量等角度在屏幕上具体应该是个什么大小(而且由于小角近似,用θ直接算也是没什么问题的)。
另外,tanθ的导数随θ变大而变大,因此占相同视角的物体在边缘的显示长度会大于在中间时的显示长度;眼睛在屏幕中心法线方向时,屏幕在人眼中的fov越接近游戏设置fov,画面边缘看上去的拉伸程度就越小,因此通常大屏幕玩家用高fov感受到的屏幕边缘拉伸现象就没有小屏幕玩家严重。
另外计算需要的一些数值:角色躯干宽度可以按0.4m算,战地1士兵的跑步速度为6m/s。
由此可以得到的结论:武器的精准射程(瞄准躯干中心能保证命中的距离)≈11.46/θ
详细计算有大佬写过了:

而对于你横向跑动的目标的提前量角为 arctan( 6m/s / 子弹速度 ),但由于战地1开始新加入的子弹飞行阻力设定(然后2042又删掉了),距离越远提前量角越大、下坠越糟糕,因此200m+的远距离狙击的效果非常差(但这依然不妨碍一些小可爱喜欢趴在西奈的风蚀拱桥上面!@#$%^&*)。

General Information

后坐
每一次射击使垂直方向视野上抬 垂直后座(也就是上跳)。
每一次射击在水平视野上移动从 -左水平后座边界到 右水平后座边界 之间的均匀随机值,得到的随机值为正就代表顺时针(右偏)(也就是偏航(实在不知道该怎么翻译yaw了))。
战地系列还有首发后座系数(通常大于1),意味着第一发子弹的(各向)后座会比后续子弹更大,一定程度上降低了点射的效率。
横/纵向单根轴上的每逻辑帧的后坐回复计算方式如图。
/*此段我根据sym得到的的计算结果与实际测试数据不符合,
而且sym的算法会导致后座回复完之后随时间增加而增加的视角方向鬼畜,
所以这一段内容多半有问题。
我知道的仅仅是后座回复常数越大,后座回复越快,
并且不是等速回复,而是慢→快→慢,最终沿原路回到开火前的原点(如果不计枪口晃动)。*/
对半自动武器而言,由于后座回复的存在,打得越慢回复越多,压枪幅度越小,因此想舒服输出就低、要输出就得控枪;而后座回复速度慢于前几作,算是对半自动的一种削弱(这种削弱的极端例子可以看2042的DM7和SVK,用这两把枪的时候请权当它们没有后座/散布回复)。
另外,武器的垂直后座是固定的(不像前几作在最大值的90%到100%间随机取),而水平后座具有随机性:因此对半自动武器,水平后座会更大地影响控枪难度;对冲锋枪和机枪,水平后座还会影响连发精度——毕竟没有(家庭完整的)人的反应能快到抵消随机而高频的水平后座;通常没有人会在意狙击枪和霰弹枪的后座,除非你在用马提尼狙击手打300m外的头然后发现后坐力让你看不见弹道。

散布
如果散布>0,子弹会随机地偏离瞄准点(屏幕中心)。
用于随机选择子弹飞行方向的圆的半径=散布。
具体的子弹在散布圆内的取点方式如图。

需要说明的是,霰弹枪首先会按一般武器的取点方式 (a=0.5) 决定这一发霰弹的发射朝向,再由该霰弹发射朝向为中心按 a=1 决定单颗弹丸的发射朝向。英语中称前者为Spread(和其他武器的“散布”一样),后者为Dispersion(大概可以直译成“分布”)。

每一次射击会带来散布增加(霰弹枪的“分布”不会增加)。
战地1有首发散布系数,半自动(包括费德洛夫)、霰弹枪和狙击枪(没有人会在意的)为1,机枪为负整数,冲锋枪为大于1的正数。
武器准备可以发射下一发子弹(但没有发射)时即进入闲置状态,此时散布会开始随时间回复,散布回复的速度恒定,当然最终到最低散布就不会继续回复了。
半自动(包括费德洛夫)(首发散布系数=1)控速/不控速的散布:

很有趣的是,很多人觉得1916连射惩罚大,其实是因为1916射速慢,再加上本代战地宽容的的开火预输入(就是说,哪怕在武器实际能开火之前按左键,游戏也会记住你下一发想开枪,然后帮你最快地开出枪),很容易出现顶着射速上限开枪、没有机会让散布回复的情况,因此打着打着就飘了……
冲锋枪(首发散布系数>1)的散布:

可以看到,由于首发散布系数的存在,第一发子弹带来的散布增加幅度会非常大,因而导致散布回复时间的起点就较长,削弱了冲锋枪通过单点/短点射带来的中远距离输出能力。
另外,战地1的服务器运行速度为60Hz,最短的时间为1tick=1/60s,因此一把武器的实际射击间隔和理论值可能会有不同,在不满整数tick时向下取整。
举例来说,射速为830RPM(射击频率为830发每分钟,如果你真的不知道的话)的汤姆逊计算得到的射击间隔为约4.337tick,那么可以列出理论与实际射击时刻的表格:
理论:4.337 8.674 13.012 …
实际:4.000 8.000 13.000 …
这样的差别在前几代中会影响部分突击步枪精准短点射的节奏,而这一代的冲锋枪(由于首发散布系数的存在)大多以按住左键为主,因此统计上说射速的数据已经能很好地反映武器的输出能力了,利贝罗勒这种点射能力较强的则算是个例外。
机枪(首发散布系数为负整数,单发散布增加值为负数)的散布:

机枪类武器的第一发子弹会将散布加一个较大的值,之后武器虽然不会进入闲置状态,但每开一枪散布都会变小,因此说机枪是第一发准、第二发最不准、之后越打越准的武器。
没有人会在意狙击枪的散布回复的吧……
另外,不同的射击状态(如站定、移动等)有不同的最低散布,而战地1统一的开镜最高散布为1.2°。

外弹道
子弹以初速出膛后,会出现下坠和减速。
Sym给出的重力加速度 BDrop 为12ms^(-2),然而up主Reki-Manabu在他的专栏中给出的测试值(栓动)为8.4ms^(-2),因此认为该值存疑。
阻力加速度为 当前弹速^2 * 阻力系数(不同子弹不同) 。

切枪时间
这个没什么可说的(为什么sym这么喜欢写废话……也许是英文语境下难以理解吧hhh)。

身体不同部位的伤害乘数
很多人的狙击枪在致死距离一枪打不死人的原因找到了。
另:卡尔卡诺的伤害乘数与M.95等一致(为什么sym该写的没有写)。

Weapon Mechanics

其实这一页的大部分内容都在前文说过了(为什么sym这么喜欢写废话)。

压制状态的作用效果
战地1士兵的脑袋周围2.2m半径的球是压制的判定范围,弹道离头越近、对方玩家离自己越近,增加的压制程度越大(不过似乎没有讲具体的数值)。
压制程度低于54%的时候不会有任何影响,高于54%的时候作用效果随压制程度线性增长,直到压制程度到达100%为满作用效果。
补充对于半自动步枪的作用效果:SIPS*3.5,SDEC*2.23,hRec*2.5,vRec*1.5。
(为什么sym该写的又没有写)
另外脚架对机枪的影响是将散布恒定在最小值,后座方面未知(待补充)。
而脚架对利贝罗勒(大概还有Hellriegel 1915)和半自动的影响:SIPS*0.3125,SDEC*0.625,hRec*0.25,vRec*0.2。

Weapon Charts

我们从左到右看。

绿色的武器名、白色的武器图标、橙色的射速、白色的(包括闭膛待击武器的膛内一发)弹容量与弹种(相同弹种的武器伤害特性与弹道属性一样)(实际上没有人会去看)。

武器的伤害-距离曲线,不同距离上伤害不同(如果你真的不知道的话)。
霰弹枪在右侧会标注一发霰弹的弹丸数量,比如12g Automatic一发霰弹有12发弹丸,近距离每发7.7,总共92.4。

上方为弹头的初速和阻力系数,下方为切枪时间。
对于弹匣供弹的武器会有两个橙色的数值:

分别代表非空仓换弹和空仓换弹时间。

白色的垂直后座、左右水平后座边界,橙色的首发后座系数和绿色的后座回复常数(越大越快)。

立姿瞄准时的最低散布,绿色为站定,橙色为移动。
实际上的移动最低散布并不是这个橙色的值,之后会提到。
当然了,对于霰弹枪,这个仅代表霰弹弹丸散布中心的最低散布。
之后对于霰弹枪显示的是这个:

代表霰弹弹丸的“分布”。
如果你不太记得了就回去看一眼吧。
其他武器显示这个:

代表腰射移动最低散布。

不同状态下的最低散布,上面一块是不动的、下面一块是移动的,其中每个分三行表示站姿、蹲姿、趴姿,左边是开镜时 (ADS) 的,右边是腰射时 (HIP) 的。
(我也不知道为什么要把其中一部分放在前面,大概是更直观?)
需要额外说明的是移动最低散布。
实际的最大移动开镜最低散布(好绕,再看一眼)为给出的站定开镜最低散布和移动开镜最低散布的平均值;
腰射时则就是给出的移动最低散布。
大致是因为开镜最大移动速度是正常移动速度的一半,而开镜移动最低散布是按满移动速度给的,而战地1的移动精度惩罚和移动速度是相关的,因此其增加值就乘了0.5。
同样的,当你动起来了但没有完全动起来的时候,移动最低散布会比上述值低。
具体测试见 https://forum.sym.gg/t/bf1-moving-spread/184 ,放几张截图:



另外这篇帖子也测试了战地1武器的冲刺抬枪时间。

另外,另一篇sym的帖子 https://forum.sym.gg/t/thread-bayonet-effects-on-weapon-bf1/179/2给出了刺刀对武器的影响:冲刺抬枪时间*2.5。
现在回到Weapon Charts页面:

橙色:首发/每发射击的散布增加;
绿色:每秒扩散回复。
左右为开镜/腰射。
由此可以计算出12g Automatic的单发扩散回复时间=2tick=1/30s;
又知道12g作为射速257rpm的武器,射击间隔=14tick;
因此12g的精准射击间隔=16tick,精准射速=225rpm。
当然,这里用12g只是举个例子,计算的方式在其他武器上也是一样的。
精准射速是衡量半自动步枪理论输出最重要的属性之一。


冲锋枪的首发后座系数和首发散布系数通常非常大,使得点射的后座大、扩散回复时间长,削弱了其利用短点射进行远距离输出的能力。
这一点的例外便是利贝罗勒,其原厂型号首发后座系数低,瞄准镜型号首发散布系数低,都增强了其点射能力,使其在中距离的精度表现超过其他的冲锋枪不少,很能体现其“世界第一把突击步枪”的称号(然而其实战表现似乎并没有那么亮眼)(怎么会是因为我玩不来呢)。

而机枪的首发扩散系数为较大的负整数,之后每发射击的扩散增加为负数,导致其第一发准、第二发不准、之后散布逐步减少到最低散布。
当然由于水平后座随机性的存在,后续子弹的实际精度自然没法和第一发比,尤其对于0818和1417这样设计上靠水平后座强行降低立姿精度、不用脚架打不了远距离的大机枪(毕竟不这样设计的话,BAR之类的小弹容机枪就没什么优势了)。
另外,对于(轻量化)型号的机枪,由于其散布回复较快,也可以单点使用,尤其是邵沙轻量化:


Weapon Comparison

在上方的白框中选择你想对比的武器。
鼠标放在表格上即可显示对应距离上的精确伤害数值、击杀所需子弹数(对霰弹枪来说是弹丸数)、全弹命中考虑弹速的击杀所需时间 TTK(该项仅供参考,尤其对于喷子和低射速、低BTK武器)。
哦顺便,维拉-佩罗萨冲锋枪(冲锋枪哨兵的武器)是按有两发弹丸的喷子算的……嗯很合理
一般来说下面的东西更有用:

这里可以看到武器的各项数据表格,相信大部分大家都认识。
其中ShotPerBurst仅对短连射武器有用,对其他武器就当它不存在。
Bridge、Strip和Clip是弹夹(没有错字)的意思,可以用相关数据计算非弹匣供弹武器的具体装填时间。
剩下的一些我不知道,比如AltDeployTime之类的,也没有找到相关的说明。
搜索框大概所有人都知道怎么用,
勾选旁边的小框可以只显示不同的数据。

最后放一张sym没有给的bf1开镜时间表格,作者为up主Reki-Manabu,单位为毫秒

有发现任何问题请在评论区指出,感谢