制作兵种:远程单位
远程单位不是在land_units_tables里填一个伤害数字就结束。它至少要经过“单位 → 远程武器 → 投射物”这条链;爆炸、破片、弹丸外观和切换弹药会继续向下连接。
本篇以震旦玉勇弩手wh3_main_cth_inf_jade_warrior_crossbowmen_0作为普通远程步兵模板,只讲 RPFM 中的数据配置,不制作模型、动画、弹丸模型或特效资产。
本例适合什么情况
玉勇弩手适合演示“普通步兵使用单一弩箭弹药”的基础链路。火枪、喷火、多弹丸、曲射、制导、投掷武器、骑射、战车乘员和火炮可能使用不同动作、射击方式、武器入口或附加表,不能把本例的弩箭参数当成通用远程模板。
制作自己的远程单位时,先在land_units_tables找到最接近的原版单位,沿Primary Missile Weapon跳到missile_weapons_tables,再沿Default Projectile跳到projectiles_tables。对比两到三个射击方式相同的单位,并对武器或投射物使用查找引用,确认记录是否共享以及是否存在额外弹药、爆炸、破片、穿透或显示分支。
远程攻击的数据链
land_units_tables.Primary Missile Weapon
↓
missile_weapons_tables.Default Projectile
↓
projectiles_tables
├─ Projectile Display → projectile_displays_tables
├─ Explosion Type → projectiles_explosions_tables
│ └─ Shrapnel → projectile_shrapnels_tables
├─ Scaling Damage → projectiles_scaling_damages_tables
└─ Projectile Penetration → projectile_penetration_junctions_tables
本例这种基础弓弩只需要前三层;没有爆炸、破片、制导或穿透时,不要创建对应记录。其他类型应以原版模板实际使用的分支为准。
本篇常用表单
| 表单 | 作用 |
|---|---|
land_units_tables |
保存远程武器 Key、弹药量、命中、装填和是否散兵等单位级数据。 |
missile_weapons_tables |
注册远程武器,并指向默认投射物。 |
projectiles_tables |
保存射程、弹速、伤害、散布、装填、弹丸数量和特殊效果引用。 |
missile_weapons_to_projectiles_tables |
为同一远程武器添加可切换的额外弹药。 |
projectile_displays_tables |
指定弹丸的可视模型和相关显示。 |
projectiles_explosions_tables |
配置爆炸范围、伤害、推力、特效、音效和友军伤害。 |
projectile_shrapnels_tables |
配置爆炸后产生的破片投射物。 |
projectiles_scaling_damages_tables |
让伤害随目标生命比例缩放。 |
projectile_penetration_junctions_tables |
配置弹丸穿透不同目标后的表现。 |
建立远程武器
本例的原版玉勇弩手在land_units_tables中使用:
Primary Missile Weapon = wh3_cth_crossbow_bolt
Primary Ammo = 22
Accuracy = 10
Can Skirmish = true
- 从
missile_weapons_tables导入wh3_cth_crossbow_bolt。 - 把
Key改成自己的远程武器 Key。 - 把
land_units_tables.Primary Missile Weapon改成新 Key。 - 根据定位设置
Primary Ammo、Accuracy和Can Skirmish。
这里的 Key 和数值只属于弩手案例。若参考单位的主要远程武器字段为空,应继续检查它是否通过战场引擎、乘员统计或额外武器连接开火,而不是强行填写一个Primary Missile Weapon。
missile_weapons_tables.Default Projectile决定默认弹药;Use Secondary Ammo Pool只有确实使用land_units_tables.Secondary Ammo时才勾选,误勾可能让单位看似有主弹药却无法正常射击。
建立投射物
从模板远程武器的Default Projectile继续找到projectiles_tables,复制该行并改成自己的 Key,再让新远程武器指向它。
重点列可以分为四组:
| 类别 | 常用列 |
|---|---|
| 射程与弹道 | Effective Range、Minimum Range、Muzzle Velocity、Gravity、Max Elevation、Expiry Range |
| 命中与散布 | Marksmanship Bonus、Spread、Calibration Distance、Calibration Area |
| 伤害与目标 | Damage、AP Damage、Bonus V Infantry、Bonus V Large、Can Damage Buildings、Can Damage Vehicle |
| 射击节奏 | Base Reload Time、Projectile Number、Burst Size、Burst Shot Delay、Shots Per Volley |
Projectile Number是同一时刻发出的弹丸数,Burst Size是一次射击中的连续发射,Shots Per Volley还会受武器和动画设计影响。数值能填进去,不代表现有射击动画能自然配合。
切换第二种弹药
需要像弩炮那样切换弹药时:
- 在
missile_weapons_to_projectiles_tables添加远程武器与第二投射物的连接。 - 为第二投射物在
projectiles_tables建立独立记录。 - 确认两种投射物使用的
Shot Type符合切换需求。 - 为射击类型补齐对应本地化和图标。
普通弓、弩、火枪没有切换弹药时,不需要这张连接表。
是否需要第二弹药不能只看单位“有两种攻击”。先搜索模板的远程武器 Key,确认missile_weapons_to_projectiles_tables确实存在额外连接,再复制对应结构。
爆炸、破片和穿透
- 投射物会爆炸:在
projectiles_tables.Explosion Type连接projectiles_explosions_tables。 - 爆炸会产生破片:在爆炸记录的
Shrapnel连接projectile_shrapnels_tables,破片本身再指向另一条projectiles_tables记录。 - 需要穿透:使用
Projectile Penetration及projectile_penetration_junctions_tables。 - 需要目标血量缩放:连接
projectiles_scaling_damages_tables。 - 需要自定义弹丸外观:连接
projectile_displays_tables,但显示资产本身仍需正确文件。
这些效果可以互相嵌套,错误也会成倍增加。第一次制作远程兵种时,先让普通投射物稳定命中并结算伤害,再逐项添加爆炸或破片。
游戏内检查
- 检查射程圈、弹药数量和面板伤害。
- 分别测试近距离、最大射程和不同高度目标。
- 观察弹道、散布、弹速和装填动作是否匹配。
- 测试对步兵、大型单位、建筑和载具的伤害。
- 有爆炸时同时测试友军伤害、推力和特效。
- 有第二弹药时反复切换,确认两种弹药都能耗弹和造成伤害。
RPFM 诊断无法证明发射挂点、动画事件、弹丸模型和特效在战场中正确;这些必须实战观察。

