弹道算法原理

这几天研究射击游戏的武器子弹轨迹的算法。找了《战地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》可以设定武器的后坐力方向。这个只是将原本向上的后坐力更改了一个方向,以方便用户的压枪习惯,并不会对后坐力大小有影响。


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