制作兵种:基础单位
这次以原版震旦玉勇为模板,制作“精锐玉勇”。完成后,它会作为一个独立单位出现在震旦自定义战斗中,但暂时复用玉勇的实体、武器、模型、兵牌和说明文字。
开始前应已完成制作第一个模组,知道如何新建 Pack、从
依赖项导入原版表和删除无关记录。操作时关闭游戏,并暂时停用其他会修改玉勇的 Mod。
这个系列怎么分
一张完整兵牌背后会连接许多表。为了不把所有内容挤进一篇文章,本系列分为七篇:
制作兵种:基础单位:建立新单位的基础骨架,并加入自定义战斗。制作兵种:战斗数据:处理battle_entities_tables、武器、护甲、盾牌、属性和能力。制作兵种:兵牌与说明:添加独立兵牌、名称、长短说明、标签和派系配色。制作兵种:战役接入:处理招募建筑、势力权限、AI、盟友招募和 Unit Set。制作兵种:远程单位:讲解远程武器和投射物链。制作兵种:骑乘单位:讲解坐骑、骑手和各自的实体数据。制作兵种:战车与火炮:讲解战场引擎、牵引物、乘员和铰接载具。
第一篇先完成最小但真实的新单位。后续文章都在同一个twcn_tutorial_unit.pack上继续制作。
本篇需要哪些表单
| 表单或文件 | 作用 | 本篇怎么处理 |
|---|---|---|
land_units_tables |
战场中的陆战单位记录,保存动作、实体、武器、护甲和基础战斗数值等。 | 复制玉勇并建立新的陆战单位 Key。 |
main_units_tables |
主单位记录,连接陆战单位,并保存人数、费用、等级和战力估值等。 | 建立新的主单位 Key,并指向新的陆战单位。 |
unit_variants_tables |
连接单位、模型变体、兵牌和用于查找名称的 Key。 | 使用新单位 Key,暂时复用玉勇模型和兵牌。 |
units_custom_battle_permissions_tables |
决定单位是否出现在某个阵营的自定义战斗列表中。 | 把新兵种加入震旦自定义战斗。 |
| Loc 文件 | 保存游戏界面实际显示的文字。 | 添加“精锐玉勇”这个中文名称。 |
这五部分只能建立单位骨架和自定义战斗入口。它们不能代替battle_entities_tables,也不能让单位自动进入战役招募;这些内容会在后面的对应教程中完成。
确定模板和 Key
模板单位:
wh3_main_cth_inf_jade_warriors_0
新单位统一使用:
twcn_tutorial_cth_inf_elite_jade_warriors
Key 是各张表互相连接时使用的唯一标识,不是显示给玩家看的名称。正式制作时应把twcn_tutorial换成自己的作者前缀或 Mod 缩写,降低与其他 Mod 重名的风险。
新建 Pack 并导入原版记录
- 打开
PackFile → 新建 PackFile,保存为twcn_tutorial_unit.pack。 - 确认 PackFile 类型是
Mod。 - 在
依赖项中搜索land_units_tables,展开原版表并打开data__。 - 在表内搜索
wh3_main_cth_inf_jade_warriors_0,选中这一整行。 - 右键所选行,使用导入所选记录的功能把它加入当前 Pack。
- 对
main_units_tables、unit_variants_tables和units_custom_battle_permissions_tables重复操作。
也可以先把整张原版data__导入 Pack,再把它重命名为自己的表文件名,然后只保留需要的玉勇记录。两种方法结果相同;从依赖项直接导入所选记录更省删除步骤。
如果导入了整张原版表,必须立即把表内的
data__重命名,例如改成twcn_tutorial_unit。保留db/表名/data__会覆盖原版同名表,而不是只追加你的记录,可能导致大量原版数据消失和严重兼容问题。不要改表文件夹名称,只改里面的表文件名。
玉勇在units_custom_battle_permissions_tables中只有 1 条本篇需要的震旦记录。其他表也只保留与模板单位完全对应的记录,不要把搜索结果附近的无关行一起导入。
建立陆战单位
打开land_units_tables中的自制表,修改以下列,其他列暂时保持模板原值:
| 列 | 原版玉勇 | 精锐玉勇 | 作用 |
|---|---|---|---|
Key |
wh3_main_cth_inf_jade_warriors_0 |
twcn_tutorial_cth_inf_elite_jade_warriors |
新陆战单位的唯一标识。 |
Charge Bonus |
12 |
18 |
冲锋接战后的短时加成。 |
Melee Attack |
24 |
32 |
基础近战攻击。 |
Melee Defence |
34 |
42 |
基础近战防御。 |
Morale |
64 |
72 |
基础领导力。 |
Bonus Hit Points |
61 |
70 |
加在单兵实体生命值上的额外生命值。 |
此时Man Entity仍是wh3_main_cth_infantry_heavy_blood_dismembers,Primary Melee Weapon仍是wh3_main_cth_jade_warrior_sword。因此这两个引用继续与原版单位共用,不能通过修改原版记录来只强化精锐玉勇。下一篇会为它们建立独立记录。
建立主单位
打开main_units_tables中的自制表,修改:
| 列 | 填写内容 | 作用 |
|---|---|---|
Unit |
twcn_tutorial_cth_inf_elite_jade_warriors |
主单位自己的唯一 Key。 |
Land Unit |
twcn_tutorial_cth_inf_elite_jade_warriors |
指向刚建立的land_units_tables记录。 |
Num Men |
120 |
单位规模为“超大”时的基础人数。 |
Multiplayer Cost |
750 |
自定义战斗费用。 |
Recruitment Cost |
800 |
战役招募费用,后续接入战役后生效。 |
Upkeep Cost |
200 |
战役维持费。 |
Tier |
3 |
单位等级分类,不等于招募建筑等级。 |
Melee CP |
800 |
游戏和 AI 使用的近战战力估值之一。 |
Unit和Land Unit在本例中填写相同内容,但作用不同。只改Unit而漏改Land Unit,新主单位仍会指向原版玉勇的陆战记录。
连接模型和兵牌
打开unit_variants_tables中的自制表,修改:
| 列 | 填写内容 |
|---|---|
Name |
twcn_tutorial_cth_inf_elite_jade_warriors |
Faction |
保持空白 |
Unit |
twcn_tutorial_cth_inf_elite_jade_warriors |
Variant |
暂时保留wh3_main_cth_inf_jade_warriors_0 |
Unit Card |
暂时保留wh3_main_cth_inf_jade_warriors_0 |
Variant指向variants_tables中的模型变体,Unit Card填写兵牌图片的文件名,不带路径和.png扩展名。本篇继续复用原版值;自定义兵牌和独立说明会在制作兵种:兵牌与说明中完成。
加入震旦自定义战斗
打开units_custom_battle_permissions_tables中的自制表,修改:
| 列 | 填写内容 |
|---|---|
Unit |
twcn_tutorial_cth_inf_elite_jade_warriors |
Faction |
wh3_main_cth_cathay_mp |
General Unit |
不勾选 |
Siege Unit Attacker |
勾选 |
Siege Unit Defender |
勾选 |
Campaign Exclusive |
不勾选 |
这里的Faction是自定义战斗阵营记录,不是震旦某个具体战役派系。普通部队不要勾选General Unit。
添加中文名称
- 右键 Pack 根节点,点击
创建 → 创建 Loc 文件。 - 文件名填写
twcn_tutorial_unit。 - 添加下面这一行:
Key |
Text |
Tooltip |
|---|---|---|
land_units_onscreen_name_twcn_tutorial_cth_inf_elite_jade_warriors |
精锐玉勇 |
不勾选 |
Loc Key 的固定前缀是land_units_onscreen_name_,后面接unit_variants_tables中的Name。任意字符不一致,游戏都会找不到这条文本。
保存、诊断和测试
- 按
Ctrl+S保存 Pack。 - 打开
视图 → 切换诊断窗口,重新检查整个 Pack。 - 处理所有与本次新记录有关的 Error;不要只因为 Warning 可以隐藏就盲目删除记录。
- 在启动器中只启用这个测试 Mod,进入震旦自定义战斗。
- 确认“精锐玉勇”出现,费用为
750,模型、兵牌和战斗动作能正常加载。
RPFM 诊断只能发现一部分结构和引用问题。能在自定义战斗列表中看到单位,也不等于已经完成战役招募、AI 使用、科技加成和盟友招募;这些由后续教程补齐。

