這幾天研究射擊遊戲的武器子彈軌跡的算法。找了《戰地1》來參考。下面以《戰地1》來說明。
看圖:《戰地1》武器的全屬性
M1918突擊步槍
兩幅圖連接着看。
武器屬性分爲4個部分:
General (一般)
Reload (填彈)
Recoil (後坐力)
Spread (散佈)
各部分屬性詳解
General
Damage points | 23 | 傷害曲線圖上面點 |
Dropoff points | 6.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》可以設定武器的後坐力方向。這個只是將原本向上的後坐力更改了一個方向,以方便用戶的壓槍習慣,並不會對後坐力大小有影響。