Hell Let Loose 人間地獄(U13):裝甲彈道淺析

近來閑得蛋疼,研究了一下HLL的彈道。起因?qū)嶋H上是經(jīng)過諸位大佬(其實就是Veigar66啦)的測試,已經(jīng)有了相當準確的炮彈下墜的標尺,但是這個標尺和很多人的印象不一樣,各說各的,甚至能打起來。
本文旨在一勞永逸地解決此類爭端。
〇. 坦克傷害表

不允許對除履帶血量屬性和反坦克槍打輕載外的內(nèi)容有異議。數(shù)據(jù)已經(jīng)相當?shù)販蚀_了。
官方要是沒在U12更新日志里寫明AT炮從600->350,就沒這個新表了。
順帶一提:實際上載具百科里很多數(shù)據(jù)都是有問題的。
一. 彈道理論基礎(chǔ)
眾所周知,一般的游戲的炮彈最多也就到拋物線的地步,畢竟如果真的考慮空氣阻力的話計算會過于復雜。既然是拋物線,那就比較好列出公式計算了。所謂拋物線,就是有一個初始的運動速度加上一個恒定的重力。對此不清楚的同學請先去高中學習物理。
本文會解決兩個疑問,會使用兩種運動的分解方法,所以在這個章節(jié)不會先出現(xiàn)公式。這個章節(jié)會預先準備一些之后會用到的結(jié)論。
首先是這個近似:??
我們知道,我們使用炮鏡的時候,里面的分劃板通??潭际且悦芪粸閱挝坏?;密位為千分之一弧度(比如虎式中間的大三角是5個密位還是10個密位來著),在這個區(qū)間上,我們基本可以認為. 這個文章大多數(shù)時候要算數(shù)據(jù)的時候會使用計算器,得到準確的數(shù)值解;使用這個近似只是用來定性分析問題的。
然后,是本文取的一些數(shù)值。本文會取g=9.8m/s^2,雖然可能一般游戲會取g=10m/s^2,不過這是小的影響。本文會認為坦克炮的速度為800m/s,在實際游戲里可能更慢到500m/s(體感應(yīng)該不至于),也可能更快到1000m/s,不過因為這幾個速度都數(shù)值上遠大于9.8,所以結(jié)果的屬性不會改變。其實,根據(jù)放大倍率+密位+距離是可以算出速度的,但是前兩個我不是很清楚所以懶得算了。
二. 高打低打腳,低打高打頭?
先說結(jié)論:這游戲坦克不需要考慮高低差。平地怎么打,庫爾斯克就怎么瞄。
我們假設(shè)需要打直線距離為1千米的目標。注意,是直線距離不是水平距離,因為車長ping標就是直線距離。所以:g=9.8m/s^2, v=800m/s, s=1000, δ為高低差,正數(shù)為低打高,負數(shù)為高打低。
我們不能直接在正常的笛卡爾坐標系里面分解這個運動,因為我們是拿準星瞄準的坦克,有抬高準星也是相對高低連線而言。所以,選取的軸為:直線連線為x軸,垂直為y軸。這樣,如果沒有重力,那么我們不需要考慮任何下墜就能命中目標,此狀態(tài)下瞄準角度θ為0。那么,有如下關(guān)系:
(1)式說的是從地面系到我們坐標系的夾角,因為重力是豎直向下,所以影響運動的cos項會需要這個角度,體現(xiàn)在(3)式內(nèi)。想寫出這個式子的解析式是十分困難的,所以我們需要先解出二次方程(2)式的t,取小的那個根(大的那個相當于先過了目標后又被重力扯了回來,沒有物理意義),然后帶入(3)式,使用二分法求數(shù)值解。(注意:當α+θ=0的時候,方程會退化為一次方程,所以計算的時候需要額外注意)
使用Python求值,可以使用generator的編程范式:
打表,δ從-300取到300,我們可以看出,θ在不同δ下受到的影響微乎其微(300米高低差也只影響5%),甚至無論打高還是打低,都需要打腳。也就是說,我們完全不需要考慮高低的問題。(1km刻度為18,差5%相當于16刻度的下沿,大致這個量級;1km刻度約為90個像素以內(nèi)(1920*1080),也就相差約5個像素)

人間地獄的高低差并不會那么明顯,但是在局部的確有可能出現(xiàn)完全仰射的情況。假設(shè)200m的距離,敵方目標在-100m~100m的高度:

看起來13%的影響已經(jīng)很大,但是注意: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米,已經(jīng)完全是仰射了,有20%的差距并不稀奇,但是在減到20米則到2%、10米則到5‰的偏差。因為100米筒子大致為100多個像素(屏息狀態(tài)),有2%的偏差可以忽略不計。
三. 炮鏡里是二次方彈道下墜?
很多人有個感覺,那就是既然是個拋物線,那么在炮鏡里,下墜一定是個二次函數(shù)吧?實則不然。為了簡化問題,這一次我們考慮是平地的射擊(因為有高低起伏的影響真的不大,第二點已經(jīng)證明了)。
列出式子:
(1)式乘以(2)式:
首先需要注意,
定性分析,我們可以發(fā)現(xiàn),θ是和s成正比的?。ㄊ褂?sinθ≈θ <=> θ≈arcsinθ 并且sg<<v^2)
當s=10000m(注意,是1萬不是1千), v=800m/s, 這個近似依舊非常不錯,sg/v^2=0.153125, arcsin(xx)=0.153730,相差百分之一以內(nèi)。也就是說炮鏡里是真的按線性來就行。
哪怕我們使用的是筒子,取s=500m, v=100m/s,sg/v^2=0.490,arcsin(xx)=0.512,影響為4%,有影響,但不大。當然,如果到了s=1000m,那就不是差一點半點了,畢竟1000m早就差不多到筒子能打到的極限了。
根據(jù)此部分得出的結(jié)論,我們可以自己制作炮鏡尺,而不需要實際去游戲里一個距離一個距離測(雖然已經(jīng)被做過了)。當然,因為我們沒有速度的準確值,同時涉及fov、炮鏡放大倍率,所以需要且僅需要一個參考。下面放出目前的一些結(jié)論:
所有高爆、中坦重坦的穿甲下墜完全一樣
輕坦偵查車的穿甲下墜完全一樣,下墜量為高爆的兩倍多一點。
有的人可能會疑惑,虎式的三角形那么大,四號的三角形那么小,怎么可能一樣?那是因為,虎式準星的零點比四號偏上,虎式三角形的底邊和四號實際上是重疊的。下面的圖中,借助T34橫向的密位為基準,線性等比例放大然后復制粘貼,制作炮鏡標尺,然后疊在其他坦克的標尺上,驗證正確性。(紅色為高爆中重穿甲,黃色為輕載穿甲)
注:不同圖片中,所有紅線和黃線只有橫向位移,沒有縱向移動。









(找Veigar佬的視頻借了兩張圖,不想自己進游戲截了)