制作兵种:战车与火炮
战车和火炮是在普通单位基础上继续组合出来的载具系统。除了land_units_tables和main_units_tables,它们还会连接战场器械、载具实体、牵引坐骑、乘员和武器;只复制一张land_units_tables记录通常远远不够。
本篇用震旦巨炮wh3_main_cth_art_grand_cannon_0说明火炮,用基斯里夫轻装战争雪橇wh3_main_ksl_veh_light_war_sled_0说明多人战车。模型、动画、挂点和特效资产的制作不在 RPFM 范围内。
两个案例分别适合什么情况
震旦巨炮用来说明“炮身 + 牵引物 + 乘员 + 远程武器”,轻装战争雪橇用来说明“一个载具挂接多名乘员”。它们是两种结构示例,不是战车与火炮的统一模板。无牵引火炮、单体战争机器、怪兽载具、飞行载具和只由乘员开火的战车,都可能省略某些分支或从不同字段取得武器。
自行查找时,先搜索最接近的原版单位 Key,打开land_units_tables并检查Engine、Articulated Record、Mount和主要武器;再搜索该单位在land_units_to_battle_personalities_junctions_tables中的全部乘员。沿每个非空 Key 使用转到定义,并用查找引用判断器械、实体、坐骑和武器是否被其他单位共享。
原版记录从
依赖项 → 游戏文件查看,不从Assembly Kit 文件复制、导入或建立制作引用。本文截图展示的是Game-RO:只读模板;真正修改要在自己的 Pack 中进行。缓存若含其他 Mod,跳转后也要核对文件来源,不能只看到相同 Key 就认定是原版。
本篇接在《制作兵种:基础单位》之后:先按所选载具模板建立自己的main_units_tables、land_units_tables和基础连接,再处理下述分支。需要复制时,点击原版表的行号选中完整行,复制到自己 Pack 内同种、同版本的新建表单。整份导入时必须先将自己的data__改为独立文件名,例如twcn_vehicle,再删除不需要的行;不要把筛选隐藏当成删除。只复制需要独立修改的记录,不改的资产与行为可以继续引用原版。
载具的数据链
land_units_tables
├─ Engine → battlefield_engines_tables
│ ├─ Battle Entity → battle_entities_tables(器械)
│ ├─ Missile Weapon → missile_weapons_tables
│ └─ Model → warscape_animated_tables
│ └─ warscape_animated_lod_tables
├─ Articulated Record → land_unit_articulated_vehicles_tables
│ └─ Articulated Entity → battle_entities_tables
├─ Mount → mounts_tables(牵引物)
└─ Key → land_units_to_battle_personalities_junctions_tables(乘员)
不同模板会省略其中某些分支,也可能用额外连接表补充武器或乘员。复制与你目标最接近的原版战车或火炮,并沿引用逐层核对,比从空表手填可靠得多。
本篇常用表单
| 表单 | 作用 |
|---|---|
battlefield_engines_tables |
定义载具/火炮模型、动作、武器、实体、乘员行为和毁坏资产。 |
land_unit_articulated_vehicles_tables |
定义牵引物与器械的铰接关系和节点索引。 |
battle_entities_tables |
分别定义器械、铰接体、牵引物和乘员实体。 |
mounts_tables |
定义拉车的马、牛、熊等牵引物。 |
land_units_to_battle_personalities_junctions_tables |
把多个乘员放到各自挂点。 |
battle_personalities_tables |
定义乘员动作、外观和实体。 |
battle_entity_stats_tables |
为特定乘员配置独立武器。 |
warscape_animated_tables、warscape_animated_lod_tables |
连接旧式器械模型层级;是否使用取决于模板。 |
missile_weapons_tables、projectiles_tables |
配置火炮或战车远程攻击。 |
unit_missile_weapon_junctions_tables |
给单位附加额外远程武器或覆盖统计时使用。 |
effect_bonus_value_missile_weapon_junctions_tables |
通过效果启用替换武器时,连接该效果与武器。不是普通弹药切换表。 |
配置 Battlefield Engine
本例震旦巨炮的land_units.Engine指向wh3_main_cth_art_grand_cannon。对应battlefield_engines_tables包含:
| 列 | 作用 |
|---|---|
Engine Type |
器械及乘员布局类型。 |
Model |
器械模型记录。 |
Gun Animation Table |
开火等器械动作。 |
Missile Weapon |
火炮使用的远程武器。 |
Battle Entity |
器械自身的速度、质量、碰撞和生命数据。 |
Draught Attachment Point |
牵引物挂接位置。 |
Rider Attachment Point |
乘员挂点前缀或位置。 |
Tech Folder |
模板使用的技术/挂点数据目录。 |
Destroyed Model、Destruction Animation |
被摧毁后的模型和动画。 |
Riders Shoot Behaviour |
多乘员的射击行为。 |
筛选结果可能命中引用同一实体的其他器械。图中要取的是wh3_main_cth_art_grand_cannon这一行,而不是上方的wh3_cp1_cth_art_grand_cannon。同样叫巨炮、模型也相同,不代表武器一致。
继续查看同一行:本例Missile Weapon = wh3_main_cth_grand_cannon_ball,Model = cth_grand_cannon,Battle Entity = wh3_main_cth_art_grand_cannon。这里是实际炮身的远程武器入口。上方另一条器械记录使用带flame的武器,正好说明为什么不能只看模型或搜索结果第一行。
只想复用原版巨炮资产时,可以继续引用原版 Engine;要改火炮武器、实体或毁坏表现而不影响原版,就复制 Engine 并改成自己的 Key,再让land_units.Engine指向它。
例如把复制行的Key改为twcn_tutorial_cth_grand_cannon_engine,将其中Missile Weapon接到自己已完成的远程武器,再把新单位的Engine改为这个新器械 Key。模型、动作和毁坏资产若没有改动,保留原引用即可;不要把每个路径都机械改成新名字,否则会指向不存在的文件。
其他载具的Engine Type、模型连接和武器入口可能不同。应从目标模板自己的Engine跳转,不要把巨炮 Engine 用作所有火炮或战车的起点。
当前原版器械记录使用的Engine Type有Generic_2_Crew、Generic_3_Crew、Generic_No_Crew_Fixed、Generic_No_Crew_Rotate四种内部布局预设;本例巨炮为Generic_3_Crew。选择预设后仍要有匹配的动作、技术目录和实际乘员配置,改名字中的数字不会自动生成正确的乘员。保留巨炮结构时,以下值可以直接沿用:
| 字段 | 巨炮原版值 |
|---|---|
gun_animation_table |
wm_grand_cannon_01_cannon |
draught_attachment_point |
ap_draughtposition |
rider_attachment_point |
ap_crewposition |
tech_folder |
warmachines/engines/cth_grand_cannon/tech/ |
riders_shoot_behaviour |
all_riders_shooting |
scale |
1 |
riders_shoot_behaviour当前还有only_riders_supporting_shoot_moving,用于只让支持移动射击的乘员参与对应射击行为的预设。是否具备这种支持取决于乘员与动作,不能靠切换字符串给任何驾驶员增加射击能力。初次复用巨炮时保留all_riders_shooting。
配置铰接载具和牵引物
震旦巨炮使用:
Articulated Record = wh3_main_cth_art_grand_cannon_articulation
Mount = wh3_main_cth_mnt_oxen_draught_artillery
land_unit_articulated_vehicles_tables中的节点索引决定牵引物和器械如何连接;mounts_tables再连接牵引物动作、实体和外观。
这些索引和挂点来自实际资产。照抄不同结构的模板,即使诊断无报错,也可能出现车体折叠、牵引物错位或转向异常。
复用相同的牵引和车体资产时,可以保留这两条原版引用。要独立修改铰接实体或牵引物实体时,分别复制对应记录、改成自己的 Key,再把Articulated Record或Mount接回去;不要把battle_entities_tables里的实体 Key 直接填进期待mounts_tables记录的Mount列。
配置多人乘员
轻装战争雪橇在land_units_to_battle_personalities_junctions_tables中有 5 条乘员记录,分别使用:
ap_crewposition_0
ap_crewposition_1
ap_crewposition_2
ap_crewposition_3
ap_crewposition_4
每条记录都连接一个battle_personalities_tables乘员。需要独立武器的射手,再通过battle_personalities.Battle Entity Stats连接battle_entity_stats_tables。
把这五条完整记录复制到自己的连接表,将每条Land Unit改成新雪橇的陆战单位 Key。保留对应的Battle Personality、Attach和挂点组合;同一原版乘员可被多个新单位引用,不必为“复制兵种”而强行重做全部外观。若自己改变乘员布局,才按目标资产逐条重配。
沿五条Battle Personality查到battle_personalities_tables,本例rider_1使用驾驶动作,Battle Entity Stats为空;rider_2至rider_5都连接wh3_main_ksl_veh_war_sled_rider。因此“五名乘员”不等于“五把独立射击武器”。图中横向滚动到了实体与武器配置部分,左侧行号仍可对应这五条记录。
五条连接应逐项保持下面的配对,免去在表中来回寻找:
riders_attachment_point |
battle_personality |
角色 |
|---|---|---|
ap_crewposition_0 |
wh3_main_ksl_veh_war_sled_rider_1 |
驾驶员,独立武器统计为空。 |
ap_crewposition_1 |
wh3_main_ksl_veh_war_sled_rider_2 |
射手。 |
ap_crewposition_2 |
wh3_main_ksl_veh_war_sled_rider_3 |
射手。 |
ap_crewposition_3 |
wh3_main_ksl_veh_war_sled_rider_4 |
射手。 |
ap_crewposition_4 |
wh3_main_ksl_veh_war_sled_rider_5 |
射手。 |
五行的attach均为autonomous_rider,engine_articulation_index = -1、jettison_rider = true。复制后只给land_unit统一换成自己的新雪橇 Key;确实修改乘员时,再把相应行的battle_personality换成新定义。
图中:① Key供battle_personalities_tables.Battle Entity Stats引用;② Primary Melee Weapon是该乘员的近战武器;③ Primary Missile Weapon是该乘员自己的远程武器。空值表示这条记录没有从该字段获得武器,不代表整辆载具一定没有相应攻击。
本例四名射手共享wh3_main_ksl_sled_rifle。若只想改变新雪橇的射手武器,需要在自己的 Pack 中复制这条battle_entity_stats_tables记录并改名、接入新武器,再复制需要修改的四条乘员定义,让它们的Battle Entity Stats指向新统计,最后把新单位的四条乘员连接改为这些新定义。少接任何一层,都可能继续用原版武器;直接覆盖共享的原版统计又会影响其他引用者。
不要把五个乘员都填到同一个挂点,也不要因为某个模板有五名乘员,就假设另一个车体也有同样数量和位置。
挂点数量和名称来自实际载具资产。搜索目标模板单位 Key 能找到原版乘员记录,但只有在 AE 或游戏中观察模型,才能确认自定义资产是否仍提供相同挂点。
火炮和战车武器
- Engine 自己开火:通常看
battlefield_engines_tables.Missile Weapon。 - 单位主体或牵引物攻击:可能看
land_units_tables.Primary Melee Weapon或Primary Missile Weapon。 - 独立乘员开火:可能看
battle_entity_stats_tables。 - 由效果启用的升级武器:检查
unit_missile_weapon_junctions_tables及effect_bonus_value_missile_weapon_junctions_tables。
图中另选“黑狮车垒(战争车垒-地狱喷射连环炮)”的升级武器连接作为补充案例,不是巨炮或雪橇的必填分支:
| 字段 | 填写和检查要点 |
|---|---|
Id |
唯一主键,类型是 64 位整数。新连接需要未占用的数值,不能加文字前缀;Missile Weapon不是联合主键。 |
Missile Weapon |
要启用的替换武器 Key,连接missile_weapons_tables。 |
Unit |
接收武器的main_units_tables.Unit,不要误填仅存在于陆战单位表的新 Key。 |
Battle Entity Stats Override |
可选:只替换指定battle_entity_stats_tables配置所使用的远程武器,而不是单位内全部相关远程武器。这个原版案例为空,不要凭空填写。 |
还要沿替换武器 Key 查找effect_bonus_value_missile_weapon_junctions_tables中的启用效果,确认它怎样由科技、人物技能、特性或其他来源授予目标。只增加武器连接并不等于战斗中必然出现切换按钮。普通手动弹药切换使用的是上一章的missile_weapons_to_projectiles_tables等结构。
不要因为表名包含“单位远程武器”就把所有火炮武器都塞进这里;器械或乘员已经使用预期武器、也不需要效果驱动替换时,就不必新增这张表。
找到“哪个部件在攻击”后,再按《制作兵种:远程单位》把武器链接入当前单位;需要理解远程武器、投射物、爆炸、破片、穿透和多弹药的全部字段时,继续阅读《远程武器详解》。把新炮弹只填到land_units.Primary Missile Weapon,而实际开火的是 Engine,修改就不会生效。
模型连接的边界
旧式器械模板可能通过warscape_animated_tables和warscape_animated_lod_tables连接模型;较新的字段还可能直接引用.wsmodel、毁坏模型、.anim和.meta路径。RPFM 可以导入文件并修改路径,但不能自动制作这些资产,也不能保证新模型的骨架、节点和挂点与模板一致。
游戏内检查
- 器械、牵引物和每名乘员是否都出现且位置正确。
- 前进、倒车、转向和急停时铰接是否自然。
- 乘员是否在正确挂点播放待机、装填、射击、近战和死亡动作。
- 火炮开火时是否使用预期武器、弹药、枪口和特效。
- 载具被毁后,模型、动画、残骸和乘员状态是否正确。
- 弃炮、脱离战车或乘员死亡等特殊状态是否会卡住单位。
载具类最容易出现“表单无错、进游戏才错”的问题。每改一层就进行一次短战场测试,比全部做完后再排查更容易定位。

