'戰艦世界:當前散佈機制的參數整理,以及一種假設模型'

"

作者: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],如圖
"

作者: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
"

作者: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和縱向係數影響下的散步集中程度

  • 四種不同的縱向散佈
"

作者: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和縱向係數影響下的散步集中程度

  • 四種不同的縱向散佈
戰艦世界:當前散佈機制的參數整理,以及一種假設模型


  • sigma1.7與2.0的區別
"

作者: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和縱向係數影響下的散步集中程度

  • 四種不同的縱向散佈
戰艦世界:當前散佈機制的參數整理,以及一種假設模型


  • sigma1.7與2.0的區別
戰艦世界:當前散佈機制的參數整理,以及一種假設模型


  • 大拿與大和的豎直界面與水平截面散佈(落彈角數據採用泥潭Tirpitz_1939的窩窩屎本地船隻數據查詢器中數據)
"

作者: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和縱向係數影響下的散步集中程度

  • 四種不同的縱向散佈
戰艦世界:當前散佈機制的參數整理,以及一種假設模型


  • sigma1.7與2.0的區別
戰艦世界:當前散佈機制的參數整理,以及一種假設模型


  • 大拿與大和的豎直界面與水平截面散佈(落彈角數據採用泥潭Tirpitz_1939的窩窩屎本地船隻數據查詢器中數據)
戰艦世界:當前散佈機制的參數整理,以及一種假設模型


  • 繞不過的斯大林2.65與巡洋散佈2.05對比
"

作者: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和縱向係數影響下的散步集中程度

  • 四種不同的縱向散佈
戰艦世界:當前散佈機制的參數整理,以及一種假設模型


  • sigma1.7與2.0的區別
戰艦世界:當前散佈機制的參數整理,以及一種假設模型


  • 大拿與大和的豎直界面與水平截面散佈(落彈角數據採用泥潭Tirpitz_1939的窩窩屎本地船隻數據查詢器中數據)
戰艦世界:當前散佈機制的參數整理,以及一種假設模型


  • 繞不過的斯大林2.65與巡洋散佈2.05對比
戰艦世界:當前散佈機制的參數整理,以及一種假設模型


關於我這個理論的驗證方法,其實很簡單,就是記錄落點,與以上的圖例進行比對,但是一般而言一組落點樣本至少要有五百個吧,所以也很難得弄就是了(這也是你遊散佈一直沒人研究的最大原因:規模足夠的實驗太難做了)

"

作者: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和縱向係數影響下的散步集中程度

  • 四種不同的縱向散佈
戰艦世界:當前散佈機制的參數整理,以及一種假設模型


  • sigma1.7與2.0的區別
戰艦世界:當前散佈機制的參數整理,以及一種假設模型


  • 大拿與大和的豎直界面與水平截面散佈(落彈角數據採用泥潭Tirpitz_1939的窩窩屎本地船隻數據查詢器中數據)
戰艦世界:當前散佈機制的參數整理,以及一種假設模型


  • 繞不過的斯大林2.65與巡洋散佈2.05對比
戰艦世界:當前散佈機制的參數整理,以及一種假設模型


關於我這個理論的驗證方法,其實很簡單,就是記錄落點,與以上的圖例進行比對,但是一般而言一組落點樣本至少要有五百個吧,所以也很難得弄就是了(這也是你遊散佈一直沒人研究的最大原因:規模足夠的實驗太難做了)

戰艦世界:當前散佈機制的參數整理,以及一種假設模型

"

相關推薦

推薦中...