后坐力
大约 3 分钟
后坐力
本页介绍纵向/横向后坐力曲线和趴下后坐力倍率的配置。
后坐力曲线
后坐力通过关键帧曲线定义,每个关键帧包含一个时间点和对应的随机范围。
纵向后坐力 recoil.pitch
可选,数组类型。定义每发子弹产生的纵向(上下)后坐力曲线。
"recoil": {
"pitch": [
{"time": 0, "value": [0.66, 0.66]},
{"time": 0.1, "value": [0.66, 0.66]},
{"time": 0.45, "value": [-0.175, -0.175]},
{"time": 0.6, "value": [0, 0]}
]
}横向后坐力 recoil.yaw
可选,数组类型。定义每发子弹产生的横向(左右)后坐力曲线。
"recoil": {
"yaw": [
{"time": 0, "value": [-0.23, 0.18]},
{"time": 0.35, "value": [0, 0]}
]
}关键帧参数
| 键 | 类型 | 说明 |
|---|---|---|
time | 数值 | 相对于射击时刻的时间(秒) |
value | 数组 | 随机范围 [最小值, 最大值],游戏在此范围内随机取值 |
以上 pitch 和 yaw 示例均来自默认枪包 ak47_data.json。
- 系统在相邻关键帧之间做平滑插值。
- 正值表示枪口上跳(pitch)或偏右(yaw),负值表示回正或偏左。
- 曲线通常以
[0, 0]结束,表示枪口复位。 - 全自动射击时,每发子弹的后坐力曲线以当前准星位置为起点重新计算,而非与前一发叠加。
趴下后坐力倍率 crawl_recoil_multiplier
可选,数值类型。趴下(匍匐)时后坐力曲线的缩放倍率,默认 1。
"crawl_recoil_multiplier": 0.5趴下时 pitch 和 yaw 的值均乘以 0.5,后坐力减半。
射击反推力 recoil_push(内测版功能)
可选,对象类型。定义开火时对射手施加的后坐力反推效果。不同于 recoil 影响的是准星上跳曲线,recoil_push 直接影响射手的移动——每次开火会按开火时射手视角的反方向推动一段距离,可用于制作一些特殊的表现效果。
"recoil_push": {
"ground_strength": 0.25,
"air_strength": 0.25,
"sneak_strength": 0.1,
"crawl_strength": 0.0,
"per_projectile": false,
"projectile_multiplier": 0.35
}参数说明
| 键 | 类型 | 说明 |
|---|---|---|
ground_strength | 数值 | 站立/移动射击时的反推强度 |
air_strength | 数值 | 空中(跳跃/飞行)射击时的反推强度 |
sneak_strength | 数值 | 潜行(蹲下)射击时的反推强度 |
crawl_strength | 数值 | 趴下(匍匐)射击时的反推强度。设为 0 时趴下射击不受反推影响 |
per_projectile | 布尔值 | 默认 false。设为 true 时,每次开火对每个弹丸分别计算反推,用于霰弹等多弹丸枪械 |
projectile_multiplier | 数值 | 仅在 per_projectile: true 时有意义,每个弹丸的推力倍率 |
- 反推强度值越大,射击时射手被向后推的距离越大。
- 潜行和趴下的反推强度通常设得比站立更低,体现低姿态射击的稳定性。
per_projectile+projectile_multiplier的组合使霰弹枪的每颗弹丸都能产生反推,开火时射手受到的反推 =弹丸数 × projectile_multiplier × 当前姿态强度。
提示
recoil_push 也可以在配件中使用(如枪口、弹药改造),配件的 recoil_push 字段通过加数方式调整枪械已有的对应姿态反推强度。