制作兵种:基础单位
这次以原版震旦玉勇为模板,演示制作“精锐玉勇”的一种做法。完成后,它会作为一个独立单位出现在震旦自定义战斗中,但暂时复用玉勇的实体、武器、模型、兵牌和说明文字。
开始前应已完成制作第一个模组,知道如何新建 Pack、从
依赖项导入原版表和删除无关记录。操作时关闭游戏,并暂时停用其他会修改玉勇的 Mod。
本例适合什么情况
玉勇适合作为本例模板,是因为目标仍是震旦的普通持盾近战步兵,并且暂时复用玉勇的模型、动作、武器和兵牌。它只负责带读者走通“选择模板 → 复制记录 → 更换 Key → 连接新记录 → 加入自定义战斗”这条基础流程,不代表所有兵种都应该复制玉勇。
如果目标是远程步兵、骑兵、怪兽、飞行单位、战车或火炮,应选择同文化、同移动方式、同武器类型且模型结构接近的原版单位作为主要模板;必要时再用其他原版单位补充盾牌、投射物、坐骑或特殊机制。完全自制模型时仍可借用数据结构相近的模板,但Variant、动画和资产路径不能继续照抄。
自行找模板时,先按查找原版数据的方法搜索游戏中的兵种名称,从 Loc 得到单位 Key,再搜索land_units_tables。重点对比Class、Category、Man Entity、武器、Mount、Engine和动作表;不要只因为名称相近就选它。
这个系列怎么分
一张完整兵牌背后会连接许多表。为了不把所有内容挤进一篇文章,本系列分为八篇:
制作兵种:基础单位:建立新单位的基础骨架,并加入自定义战斗。制作兵种:战斗数据:处理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 重名的风险。
wh3_main_cth_inf_jade_warriors_0只属于本教程案例。制作自己的单位时,应把找到的原版模板 Key 代入下面的搜索步骤,并让新 Key 反映自己的派系、单位类型和用途。
新建 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 条本篇需要的震旦记录。其他表也只保留与模板单位完全对应的记录,不要把搜索结果附近的无关行一起导入。
如果不知道某张表是否还有同一模板的其他记录,可以对模板 Key 使用全局搜索,并在目标表中核对每条结果。只导入与当前目标有关的行;搜索到并不等于必须复制。
建立陆战单位
打开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。
要加入其他自定义战斗阵营,就搜索该阵营已有单位在units_custom_battle_permissions_tables中的记录,并使用相同的Faction。有的单位只应出现在战役、特殊战斗或脚本场景中,此时可以不添加普通自定义战斗权限。
添加中文名称
- 右键 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 使用、科技加成和盟友招募;这些由后续教程补齐。

