欢迎光临散文网 会员登陆 & 注册

Hell Let Loose 人间地狱(U13):装甲弹道浅析

2023-01-16 11:40 作者:汐留楓Channel  | 我要投稿

近来闲得蛋疼,研究了一下HLL的弹道。起因实际上是经过诸位大佬(其实就是Veigar66啦)的测试,已经有了相当准确的炮弹下坠的标尺,但是这个标尺和很多人的印象不一样,各说各的,甚至能打起来。

本文旨在一劳永逸地解决此类争端。


〇. 坦克伤害表

不允许对除履带血量属性和反坦克枪打轻载外的内容有异议。数据已经相当地准确了。

官方要是没在U12更新日志里写明AT炮从600->350,就没这个新表了。

顺带一提:实际上载具百科里很多数据都是有问题的。


一. 弹道理论基础

众所周知,一般的游戏的炮弹最多也就到抛物线的地步,毕竟如果真的考虑空气阻力的话计算会过于复杂。既然是抛物线,那就比较好列出公式计算了。所谓抛物线,就是有一个初始的运动速度加上一个恒定的重力。对此不清楚的同学请先去高中学习物理。

本文会解决两个疑问,会使用两种运动的分解方法,所以在这个章节不会先出现公式。这个章节会预先准备一些之后会用到的结论。

首先是这个近似: %5Csin%7B%5Ctheta%7D%20%5Capprox%20%5Ctheta%20%5Capprox%20%5Ctan%7B%5Ctheta%7D%20(0%20%5Cleq%20%5Ctheta%20%5Cll%201) 

我们知道,我们使用炮镜的时候,里面的分划板通常刻都是以密位为单位的;密位为千分之一弧度(比如虎式中间的大三角是5个密位还是10个密位来着),在这个区间上,我们基本可以认为%5Csin%7B%5Ctheta%7D%3D%5Ctheta. 这个文章大多数时候要算数据的时候会使用计算器,得到准确的数值解;使用这个近似只是用来定性分析问题的。

然后,是本文取的一些数值。本文会取g=9.8m/s^2,虽然可能一般游戏会取g=10m/s^2,不过这是小的影响。本文会认为坦克炮的速度为800m/s,在实际游戏里可能更慢到500m/s(体感应该不至于),也可能更快到1000m/s,不过因为这几个速度都数值上远大于9.8,所以结果的属性不会改变。其实,根据放大倍率+密位+距离是可以算出速度的,但是前两个我不是很清楚所以懒得算了。


二. 高打低打脚,低打高打头?

先说结论:这游戏坦克不需要考虑高低差。平地怎么打,库尔斯克就怎么瞄。

我们假设需要打直线距离为1千米的目标。注意,是直线距离不是水平距离,因为车长ping标就是直线距离。所以:g=9.8m/s^2, v=800m/s, s=1000, δ为高低差,正数为低打高,负数为高打低。

我们不能直接在正常的笛卡尔坐标系里面分解这个运动,因为我们是拿准星瞄准的坦克,有抬高准星也是相对高低连线而言。所以,选取的轴为:直线连线为x轴,垂直为y轴。这样,如果没有重力,那么我们不需要考虑任何下坠就能命中目标,此状态下瞄准角度θ为0。那么,有如下关系:

%5Csin%7B%5Calpha%7D%3D%5Cdelta%2Fs......(1)%5C%5C%0Avt%5Ccos%7B%5Ctheta%7D-%5Cfrac%7B1%7D%7B2%7Dg%5Csin%7B(%5Calpha%2B%5Ctheta)%7Dt%5E2%20%20%3D%20s......(2)%5C%5C%0A2v%5Csin%7B%5Ctheta%7D%20%3D%20gt%20%5Ccos%7B(%5Calpha%2B%5Ctheta)%7D......(3)

(1)式说的是从地面系到我们坐标系的夹角,因为重力是竖直向下,所以影响运动的cos项会需要这个角度,体现在(3)式内。想写出这个式子的解析式是十分困难的,所以我们需要先解出二次方程(2)式的t,取小的那个根(大的那个相当于先过了目标后又被重力扯了回来,没有物理意义),然后带入(3)式,使用二分法求数值解。(注意:当α+θ=0的时候,方程会退化为一次方程,所以计算的时候需要额外注意)

t%3D%5Cfrac%7Bv%5Ccos%7B%5Ctheta%7D-%5Csqrt%7Bv%5E2%5Ccos%7B%5Ctheta%7D%5E2-2g%5Csin%7B(%5Calpha%2B%5Ctheta)s%7D%7D%7D%7Bg%5Csin%7B(%5Calpha%2B%5Ctheta)%7D%7D

使用Python求值,可以使用generator的编程范式:

打表,δ从-300取到300,我们可以看出,θ在不同δ下受到的影响微乎其微(300米高低差也只影响5%),甚至无论打高还是打低,都需要打脚。也就是说,我们完全不需要考虑高低的问题。(1km刻度为18,差5%相当于16刻度的下沿,大致这个量级;1km刻度约为90个像素以内(1920*1080),也就相差约5个像素)

人间地狱的高低差并不会那么明显,但是在局部的确有可能出现完全仰射的情况。假设200m的距离,敌方目标在-100m~100m的高度:

看起来13%的影响已经很大,但是注意:200m的标尺本身不需要考虑什么下坠(标尺本身就大概差十几个像素),约等于不需要额外修正。

接下来,我们考虑我们不是坦克对炮,而是用筒子的时候;替换v=100m/s,s=300m;然后再试试s=100m:


(300米筒子标尺至少不超过1/2屏幕,以1920*1080为例)s=300m,打60m差的目标,1.8% * 270 ≈ 5 有5个像素的偏差(大致为T34左边相邻标尺的距离的一半多一些)。打30m差的目标,则是4‰ * 270 ≈ 1 个像素的偏差。想在300m的范围上有60m的高低差是很困难的事;接下来是100米打高低差在±60m的目标。100米距离但是高低差60米,已经完全是仰射了,有20%的差距并不稀奇,但是在减到20米则到2%、10米则到5‰的偏差。因为100米筒子大致为100多个像素(屏息状态),有2%的偏差可以忽略不计。


三. 炮镜里是二次方弹道下坠?

很多人有个感觉,那就是既然是个抛物线,那么在炮镜里,下坠一定是个二次函数吧?实则不然。为了简化问题,这一次我们考虑是平地的射击(因为有高低起伏的影响真的不大,第二点已经证明了)。

列出式子:

vt%5Ccos%7B%5Ctheta%7D%3Ds......(1)%20%5C%5C%0A2v%5Csin%7B%5Ctheta%7D%3Dgt......(2)

(1)式乘以(2)式:

v%5E2sin(2%5Ctheta)%3Dsg%20%5CLeftrightarrow%20%5Ctheta%20%3D%20%5Cfrac%7B1%7D%7B2%7D%5Carcsin%7B%5Cfrac%7Bsg%7D%7Bv%5E2%7D%7D

首先需要注意,

定性分析,我们可以发现,θ是和s成正比的!(使用 sinθ≈θ <=> θ≈arcsinθ 并且sg<<v^2)

当s=10000m(注意,是1万不是1千), v=800m/s, 这个近似依旧非常不错,sg/v^2=0.153125, arcsin(xx)=0.153730,相差百分之一以内。也就是说炮镜里是真的按线性来就行。

哪怕我们使用的是筒子,取s=500m, v=100m/s,sg/v^2=0.490,arcsin(xx)=0.512,影响为4%,有影响,但不大。当然,如果到了s=1000m,那就不是差一点半点了,毕竟1000m早就差不多到筒子能打到的极限了。

根据此部分得出的结论,我们可以自己制作炮镜尺,而不需要实际去游戏里一个距离一个距离测(虽然已经被做过了)。当然,因为我们没有速度的准确值,同时涉及fov、炮镜放大倍率,所以需要且仅需要一个参考。下面放出目前的一些结论:

  1. 所有高爆、中坦重坦的穿甲下坠完全一样

  2. 轻坦侦查车的穿甲下坠完全一样,下坠量为高爆的两倍多一点。

有的人可能会疑惑,虎式的三角形那么大,四号的三角形那么小,怎么可能一样?那是因为,虎式准星的零点比四号偏上,虎式三角形的底边和四号实际上是重叠的。下面的图中,借助T34横向的密位为基准,线性等比例放大然后复制粘贴,制作炮镜标尺,然后叠在其他坦克的标尺上,验证正确性。(红色为高爆中重穿甲,黄色为轻载穿甲)

注:不同图片中,所有红线和黄线只有横向位移,没有纵向移动。

(找Veigar佬的视频借了两张图,不想自己进游戏截了)

Hell Let Loose 人间地狱(U13):装甲弹道浅析的评论 (共 条)

分享到微博请遵守国家法律