制作兵种:骑乘单位
骑兵并不是“步兵人数改少、速度改快”。一个骑乘单位至少包含陆战单位、坐骑、坐骑实体、骑手战斗配置和骑手挂点;骑手与坐骑还可能使用不同的模型、动画和实体数据。数据库中的Battle Personality是这套骑手战斗配置所使用的技术标识,不应直译成游戏术语。
本篇以震旦玉勇枪骑兵wh3_main_cth_cav_jade_lancers_0为模板,只处理 RPFM 数据。制作或修改模型、骨架和动画仍需 AE 等资产工具。
本例适合什么情况
玉勇枪骑兵适合演示“一名常规骑手挂接到一匹马”的结构。怪兽骑兵、飞行坐骑、英雄坐骑、多骑手单位、骑射单位、战车和火炮乘员可能使用不同挂点、多个battle_personalities_tables记录、独立武器或载具器械,不能直接照抄本例的坐骑和骑手配置。
自行查找时,先从目标原版单位的land_units_tables.Mount跳到mounts_tables,再追踪坐骑的Entity和Variant;同时用单位 Key 搜索land_units_to_battle_personalities_junctions_tables,查看骑手数量、Attach方式和每个挂点。对比同类坐骑单位,确认哪些记录来自坐骑,哪些来自骑手或单位主体。
从
依赖项 → 游戏文件的原版记录取模板,不从Assembly Kit 文件复制、导入或建立制作引用。截图的Game-RO:是只读原版检查,修改在自己的 Pack 内进行。需要复制时,点击行号选中完整行,再复制到自己新建的同种、同版本表单;整份导入则先把自己的data__改成独立文件名,再删除无关记录。其他 Mod 也可能出现在依赖缓存中,使用跳转功能后仍要核对来源。
先按《制作兵种:基础单位》建立以玉勇枪骑兵为模板的新主单位、陆战单位及基础连接。本篇从这个已建立的新骑兵继续,不是把上一章步兵的所有字段原样保留、只加一匹马。本文示例前缀twcn_tutorial_可换成自己的前缀,但每条引用必须与对应的新 Key 完全一致。
骑乘单位的数据链
land_units_tables
├─ Mount → mounts_tables
│ ├─ Entity → battle_entities_tables(坐骑)
│ └─ Variant → variants_tables(坐骑外观)
├─ Man Entity → battle_entities_tables(骑手)
└─ Key → land_units_to_battle_personalities_junctions_tables
└─ Battle Personality → battle_personalities_tables(骑手)
当前《战锤 III》的玉勇枪骑兵模板使用land_units_to_battle_personalities_junctions_tables连接骑手,而不是旧教程中常见的land_units_officers_tables流程。其他单位仍应以实际原版记录为准。
本篇常用表单
| 表单 | 作用 |
|---|---|
land_units_tables |
保存坐骑 Key、坐骑数量、骑手实体、单位动作和战斗数据。 |
mounts_tables |
保存坐骑动作、实体、外观和语音。 |
battle_entities_tables |
分别定义骑手和坐骑的速度、质量、尺寸、生命值与碰撞。 |
land_units_to_battle_personalities_junctions_tables |
把骑手放到单位中,并指定挂点和连接方式。 |
battle_personalities_tables |
保存骑手动作、外观、实体和可选武器配置。 |
battle_entity_stats_tables |
骑手或乘员需要独立近战/远程武器时使用。 |
variants_tables |
分别连接骑手和坐骑的模型变体。 |
culture_to_battle_animation_tables_tables |
跨文化使用动作时,允许目标文化使用对应动作表。 |
配置陆战单位的坐骑
本例的原版玉勇枪骑兵使用:
Num Mounts = 60
Mount = wh3_main_cth_mnt_horse_heavy
Num Mounts配置单位的坐骑数量基数,实际显示还受游戏的部队规模设置影响,不是所有画质设置下固定出现 60 匹。单纯把Num Men改成 60,却让Num Mounts保持 0,不会得到正确骑兵。
不同单位可能一头坐骑承载多人,或把乘员、牵引物和器械分别统计。遇到数量关系不同的模板时,应查看相似原版单位,而不是强行让所有数字相等。
玉勇枪骑兵的基础分类组合为land_units.category = war_beast、class = cav_shk,main_units.caste = melee_cavalry。war_beast在这里是原版骑乘结构使用的内部值,不表示要把骑兵当成没有骑手的野兽。初次制作保留这一组合及num_mounts = 60,再把需要独立修改的骑手、坐骑和武器逐项接回新记录。
建立 Mount 记录
要独立修改坐骑时,将原版mounts_tables中的wh3_main_cth_mnt_horse_heavy完整行复制到自己的表单,改成twcn_tutorial_cth_horse_heavy,再让新单位的land_units_tables.Mount引用这个新 Key。若坐骑动作、外观和实体全部不变,可以直接保留原版 Mount 引用,不必新增记录。主要列是:
| 列 | 作用 |
|---|---|
Animation |
坐骑动作表。 |
Entity |
指向坐骑自己的battle_entities_tables记录。 |
Variant |
指向坐骑模型变体。 |
Audio Armour Type |
坐骑护甲相关音效。 |
Voiceover |
坐骑声音类型。 |
本例Animation = hr1_warhorse,Entity = wh_main_cavalry_slow_blood,Variant = wh3_main_cth_mnt_horse_heavy。这三个值分别属于动作表、战斗实体、模型变体,不能因为都是英文 Key 就填到同一列。
速度通常来自坐骑实体,而不是骑手实体。要独立修改骑兵速度和坐骑质量,应复制mounts_tables.Entity指向的battle_entities_tables记录,再让新 Mount 指向新实体。
例如复制这条坐骑实体,改名twcn_tutorial_cth_horse_entity并修改所需速度,再将新 Mount 的Entity改成这个值。最后确认“新单位 → 新 Mount → 新实体”三处连接已经接通。只创建新实体却没有接回去,游戏仍会使用原版实体;直接覆盖原版实体,则会影响其他共享它的坐骑。
连接骑手战斗配置
玉勇枪骑兵通过land_units_to_battle_personalities_junctions_tables连接:
Battle Personality = wh3_main_cth_cav_jade_lancer_rider
Attach = autonomous_rider
Riders Attachment Point = ap_riderposition_0
复制该行,把Land Unit改为新骑兵 Key。需要独立骑手外观或动作时,再复制battle_personalities_tables记录并修改连接。
这里的Land Unit指向陆战单位表的 Key,不是显示名称,也不要想当然填主单位 Key。图中虽然只有一行连接,却不表示整队只有一名骑手;它描述的是此类骑乘实体使用哪个骑手及挂点,队伍数量还由单位数量字段决定。
挂点必须存在于坐骑或载具资产中。RPFM 能保存任意字符串,但不存在的挂点会导致骑手错位、漂浮或不显示。
当前原版这张连接表实际使用两种attach:autonomous_rider用于本例这种自主骑手或相应乘员,officer用于军官连接路线。它不是“是否是英雄”的开关。玉勇枪骑兵这一行还使用engine_articulation_index = -1、jettison_rider = true;复用相同马匹和骑手结构时保留它们,不把-1改成行号。每个挂点单独一行,ap_riderposition_0中末尾的0属于资产挂点名称,不能随意换成自己的数字 ID。
Battle Personality 的关键列
| 列 | 作用 |
|---|---|
Man Animations Table |
骑手动作表。 |
Variant |
骑手模型变体。 |
Battle Entity |
骑手自身的实体数据。 |
Battle Entity Stats |
骑手需要独立武器时的统计记录。 |
Autonomous Rider Hero |
特定自主骑手英雄模板使用;普通骑兵不要随意勾选。 |
Autonomous Rider Can Shoot In Melee |
骑手是否能在近战中射击。 |
图中Man Animations Table = hu1e_hr1_warhorse_lance_and_shield、Variant = wh3_main_cth_cav_jade_lancers。改变骑手外观时,复制这条定义并给出新 Key,修改Variant,再让自己单位的骑手连接引用新定义。不要只更换land_units_tables里某个外观字段,就忽略真正显示在马背上的这条骑手定义。
本例Battle Entity = wh_main_cavalry_rider_standard_blood、Battle Entity Stats为空;这种普通近战骑手沿用陆战单位的主要武器,不必为了“把表填全”补上独立武器记录。骑射手、战车射手或其他需要独立武器的乘员,才按其原版结构通过battle_entity_stats_tables连接Primary Melee Weapon和Primary Missile Weapon,不要把本例的空值套到所有骑手上。
选择修改层时按目标操作:换马的外观改mounts_tables.variant;换骑手外观改battle_personalities_tables.variant;改马的移动和质量追mounts_tables.entity;改这名普通骑手的近战武器追陆战表的primary_melee_weapon = wh3_main_cth_jade_lancer_lance。同为“换模型”或“换武器”,落点也取决于是哪一个部件;未改的模型和动作 Key 可以继续复用。
跨文化动作
把其他文化的骑手或坐骑动作直接填过来,可能出现不播放动作的问题。需要跨文化使用时,在culture_to_battle_animation_tables_tables中参考原版记录,让目标文化能使用该动作表。
是否需要这张表,应通过搜索目标动作表 Key 和同类跨文化原版单位判断。相同文化、相同动作体系下通常不必额外创建许可记录。
这一步只负责动作表许可,不会修复骨架不匹配、挂点错误或缺失动画。资产兼容仍需在 AE 和游戏中检查。
游戏内检查
- 在相同部队规模设置下,检查骑手与坐骑数量是否符合所选结构。本例是一人一马;其他结构按对应模板核对,不强求所有数量字段相等。
- 骑手是否坐在正确挂点,没有漂浮、陷入或方向错误。
- 步行、奔跑、冲锋、转身、受击和死亡动作是否完整。
- 战场速度、质量和碰撞是否来自预期的坐骑实体。
- 骑射单位能否瞄准、射击、耗弹,并在近战时遵守设置。
RPFM 中引用全部有效,仍不能证明模型骨架和动作完全匹配;骑乘单位必须在战场中动态检查。

