作者:y1600108
關于目前wows的炮擊散布,已知的一共有以下幾個參數:
- 1.最大散布(記為max):表征散布圈的大小,是射擊距離的一次函數,有許多種公式
- − 目前常見的各種散布公式 ...
- R代表射擊距離,單位km,最大散布的單位為m
- 日戰散布:7.2R 84(wiki上7.3有誤)
- 美戰散布:10R 60(包括一般美戰英戰、喀琅施塔得)
- 歐戰散布:9.8R 66(包括一般德戰法戰、羅馬)
- 毛戰散布:11.9R 33(不包括光榮與十月革命)
- 光榮散布:5R 105
- 斯佩散布:8.4R 48(包括斯大林、阿拉斯加、斯佩伯爵、佐治亞)
- 巡洋散布:6.9R 33
- 驅逐散布:7.5R 15(也包括203銀币日巡)
- 2.sigma(記為s):表征炮彈的集中程度,s值越大炮彈越密集,一般認為與正态分布的σ有關(但不是一個東西,σ值越小才代表越密集,接下來會有對此的假設)
- 3.縱向散布參量:“r on zero” , “r on delim” , “r on max” , “delim”
- 知道這四個的人可能就比較少了,它們的來源也是拆包,隻拆出了這四個代号和對應的值,并沒有解釋
- 目前的船一共有4種模式
- 日戰 :0.2 0.6 0.8 0.5
- 毛戰 :0.25 0.4 0.75 0.6
- 光榮 :0.1 0.25 0.4 0.3
- 其他所有船 :0.2 0.5 0.6 0.5
- 相信大家對于這四種分類肯定有所感受,毛戰暫且不提,日戰的縱向散布向來為人所诟病,而看過光榮超測直播的人也會對那個平直彈道下的一字斬印象深刻,再結合這些數據,就給人一種“這四個數越小縱向就越好”的感覺。這也是接下來的一個重點假設之處——這四個參數到底控制什麼
- 4.落彈角:這是影響水平落彈結果的,這方面大家的體感共識是“落彈角越大,投影系數越小,縱向散布就越好”
以上是對已有參數的總結,接下來提出我的猜想:
一發炮彈軌迹的生成,從開始到結束的過程如下:
- 1.确定瞄準點:未鎖定時在山上或海面上,鎖定時在鎖定船的某個判定點處(此時應該可以高于或低于海面,參考鎖定斜向敵人或鎖一打一時有時會出現的奇怪跨射軌迹)
- 2.确定炮口位置,計算射擊距離,從而得到最大散布max值
- 3.确立一個垂直于海面的豎直面,這個面同時垂直于炮口朝向的水平分量(這裡的描述隻是保證其垂直于海面)
- 4.在這個面上,以瞄準點為原點,max為半徑[0]作一個圓,在圓内按正态概率分布随機取一個點(可以理解為按正态分布在全平面取點,如果在圓外就舍去重來,當然其實有更好的做法[1]),這個正态分布的σ值與這門炮的sigma值的關系為
- σ=max/sigma[2]
- 5.保持這個點的橫向坐标x不變,對縱向坐标y乘以一個系數ratio得到y'=y*ratio,這個系數與該點和原點的距離r(r^2=x^2 y^2)有關,也與縱向4參數有關[3],如圖
- 以0.2 0.5 0.6 0.5為例,縱向系數大小如圖,橫坐标即為r/max
- 6.以炮口位置為起點,過新獲得的散布點(x,y')計算一條彈道,一直延伸至落水且水中彈引信時間結束[4]
- 7.炮彈沿彈道飛行,一路上判斷是否撞山,是否命中,直至打水後消失
一些說明:
- [0].為什麼max是半徑:實際上遊戲内各種長度與時間單位都是放縮過的,如果以顯示的距離為标準單位,那麼船的大小應是現實的兩倍(200m的船遊戲内大概是400m長),這一點cqc的時候會體會的很深(明明距離2km為什麼這個船看起來那麼大),相比之下,以max作為半徑時,進行散布計算就不需要額外的放大系數了,從編程的角度而言可以減少一些過程,事實上,之後猜想的的以矢徑r為目标的随機生成方式,以及由r來計算縱向系數,“感覺這麼做程序更好寫”是一個重要的原因
- [1].關于限制在一個半徑為max的圓内、标準差為σ的二維正态分布,可以直接用如下的随機方法:
- 在 [exp(-0.5*max^2/σ^2),1] 這個區間均勻取随機數a (注意到max/σ=sigma值,這裡的下限可以直接由sigma值計算,為exp(-0.5*sigma^2))
- 然後就可以得到該點的矢徑 r=σ*sqrt(-2*ln a)
- 再在[0°,360°)範圍内取極角θ,就可以獲得極坐标下的随機點(r,θ),其對應的xy坐标為(r*cosθ,r*sinθ)
- [2].為什麼sigma與σ的關系是這樣,隻能說這也是一個合理猜想,畢竟WG已經承認了這是一個正态分布,而正态分布的關鍵參數與遊戲提供的參數正好有個相反的變化趨勢
- [3].關于縱向四參數代号的含義,我的猜想是:r->ratio比率,delim->delimitation分界,zero和max就不用說了。那麼這時就會有一種自然的想法,這四個參數确定了一個分段函數,由已知的某個随散布點從0到最大值的變化來控制縱向散布的壓縮系數(0到最大,又感覺是對矢徑r為中心的體系的暗示)
- 再考慮到遊戲内體感,一般而言一次齊射中集中的幾發總是特别集中,而散的一兩發總是很偏(sigma大,散布圈也大的炮會更明顯),有一種“偏差小的補正大,偏差大的補正小”的感覺,且按着z觀察時炮彈豎直界面上的散布圈一直像個扁橢圓,結合上述參數的值,故建立了上文中的猜想
- [4].可能的一種減少計算量建立彈道的方式:根據瞄準點處的落彈角數據把豎直面散布點投影到與炮口等高的水平面上(反正散布圈内落彈角變化不會很大),然後再由這個投影點與炮口的距離就可以直接調出彈道。這種方法的缺點是最終的彈道可能不會正好過豎直面生成的散布點(畢竟不是直線),但是一般而言不會差太多,而且隻需要二維計算,十分節省計算資源(當然,瞄準高山或近的時候這一條可能會失效,說到底這也隻是個猜想而已)
- [另1].為什麼不是由炮口角度來産生随機:其實這或許可行,但是在我看來難以直接建立每個距離之下散布圈與炮口角度随機範圍的關系,而且一個散布内炮口角度一般變化不大,作為随機變量總是在小數點後操作,看起來很不爽(
- [另2]上述讨論中的縱向散布存在着兩種理解,一種是指豎直面上的散布分布,一種是指最終落到水面時的水平面上散布分布,前者完全不受落彈角影響(也就是說,按照我的猜想,同一種縱向散布參數下,隻要sigma和最大散布相同,其豎直面上的散布就是完全相同的),後者才受到落彈角的影響;與此相關的還有一個“對大側面目标的命中效率”,如果豎直面散布相似,那麼對于一個豎直的靶子而言,平直彈道和高抛彈道的命中效率是相同的,然而遊戲中我們還是覺得高抛彈道似乎更容易命中大側面,當然,實際上這并不矛盾,因為船是有一定寬度的,并不是一個平面靶,對于這樣一個立體目标,高抛彈道還是存在投影優勢的
精美 圖例
由于測量落點太過麻煩(錄屏後找出每次落點水花的圓心,沒有太多技術含量但是機械重複次數太多),感覺我個人沒法抽時間完成大量的實驗工作,故上述理論還隻是停留在猜想的階段,隻能由上述理論來畫一些圖例,看起來跟我個人體感還挺符合的(
以下的散布展示中,每一圈代表10%的概率,大概能表現不同sigma和縱向系數影響下的散步集中程度
- 大拿與大和的豎直界面與水平截面散布(落彈角數據采用泥潭Tirpitz_1939的窩窩屎本地船隻數據查詢器中數據)
關于我這個理論的驗證方法,其實很簡單,就是記錄落點,與以上的圖例進行比對,但是一般而言一組落點樣本至少要有五百個吧,所以也很難得弄就是了(這也是你遊散布一直沒人研究的最大原因:規模足夠的實驗太難做了)
, 更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!