彈道算法原理

這幾天研究射擊遊戲的武器子彈軌跡的算法。找了《戰地1》來參考。下面以《戰地1》來說明。

 

 

看圖:《戰地1》武器的全屬性

 

M1918突擊步槍

 

 

兩幅圖連接着看。

 

 

武器屬性分爲4個部分:

General (一般)

Reload (填彈)

Recoil (後坐力)

Spread (散佈)

 

 

各部分屬性詳解

General

Damage points

23
20.84
20
17.37
16.67
14.89
14.29
13.5

傷害曲線圖上面點

Dropoff points

6.0
11.0
12.0
21.0
22.0
29.0
30.0
37.0

下墜曲線圖上面的點

Firerate

900 RPM

每分鐘射速

Firerate (Burst)

900 RPM

每分鐘射速(點射)

Num. of pellets

1

彈丸數

Muzzle velocity

380 m/s

槍口速度

Bullet drop

12 m/s²

子彈下墜

Drag coeff

0.0025

阻力系數

Mag size

25

彈匣容量

Projectile

9x19mm_Gilsenti

子彈模型

Deploy time*

0.65 s

切換武器後的準備時間

Hor. dispersion*

0

水平分佈(霰彈槍)

Ver. dispersion*

0

垂直分佈(霰彈槍)

 

 

 

 

 

Reload

Reload (Empty)

2.8s

填彈時間(無剩餘)

Reload (Left)

2.1s

填彈時間(有剩餘)

Reload threshold

0.83x

填彈域時間 (超過此時間而中斷,再次填彈時不用從新開始填彈 )

Pre-reload delay

N/As

填彈前延時

Post-reload delay

N/As

填彈後延時

Single-bullet reload

N/As

單發填彈

Bridge delay *

N/As

第一次單發填彈的延時

Strip clip size

N/A

彈夾容量

Strip clip reload

N/A

彈夾填彈

 

 

 

 

 

Recoil

Recoil Up

0.42

向上後坐力

Recoil Left

0.4

向左後坐力

Recoil Right

0.4

向右後坐力

Recoil decrease

16

後坐力回覆速度

1st shot multiplier

2

第一發子彈後坐力因子

 

 

 

 

Spread (散佈)

Spread increase *

0.045

散佈增量

1st shot mul (ADS)

6

第一發子彈因子(瞄準)

1st shot mul (HIP)

6

第一發子彈因子(腰射)

Spread decrease

4.05

散佈減少(瞄準)

Spread decrease

4.05

散佈減少(腰射)

ADS - Not moving

0.3

瞄準不移動

ADS - Moving

0.5

瞄準移動

HIP, Standing, Not moving

1

腰射,戰立,不移動

HIP, Crouching, Not moving

1

腰射,蹲伏,不移動

HIP, Prone, Not moving

1

腰射,俯臥,不移動

HIP, Standing, Moving

1.5

腰射,站立,移動

HIP, Crouching, Moving

1

腰射,蹲伏,移動

HIP, Prone, Moving

1

腰射,俯臥,移動

 

 

下面解釋一下後坐力和散佈值對彈道的影響。

 

後坐力:影響武器的朝向角度。每次射擊都會施加影響。停止射擊回覆。主意武器左右方向的後坐力相同,則子彈分佈於靠近中軸線。而武器沒有向下的後坐力,只有向上的後坐力,所以就有壓槍的說法。壓槍可以減少後坐力帶來的影響。

 

散佈:影響射擊準確度。子彈從槍口飛出,會隨機分佈在散佈值的角度內。並不會筆直命中槍口朝向的目標點。

 

 

注意:子彈的散佈值,在角色各種姿態下,數值不同。因此有些武器適合腰射,有些適合瞄準,等等。

注意:第一發子彈,有些武器的後坐力和散佈值,有懲罰倍率。因此不適合點射。

注意:《戰地1》可以設定武器的後坐力方向。這個只是將原本向上的後坐力更改了一個方向,以方便用戶的壓槍習慣,並不會對後坐力大小有影響。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章