全面战争模组中文站全面战争模组中文站
搜索/

搜索教程

输入标题,直接打开已发布教程。

输入教程标题开始搜索。

教程目录

制作兵种:基础单位

创建时间:2026年9月3日最后更新:2026年9月6日

这次以原版震旦玉勇为模板,演示制作“精锐玉勇”的一种做法。完成后,它会作为一个独立单位出现在震旦自定义战斗中,但暂时复用玉勇的实体、武器、模型、兵牌和说明文字。

开始前应已完成制作第一个模组,知道如何新建 Pack、从依赖项导入原版表和删除无关记录。操作时关闭游戏,并暂时停用其他会修改玉勇的 Mod。

本例适合什么情况

玉勇适合作为本例模板,是因为目标仍是震旦的普通持盾近战步兵,并且暂时复用玉勇的模型、动作、武器和兵牌。它只负责带读者走通“选择模板 → 复制记录 → 更换 Key → 连接新记录 → 加入自定义战斗”这条基础流程,不代表所有兵种都应该复制玉勇。

如果目标是远程步兵、骑兵、怪兽、飞行单位、战车或火炮,应选择同文化、同移动方式、同武器类型且模型结构接近的原版单位作为主要模板;必要时再用其他原版单位补充盾牌、投射物、坐骑或特殊机制。完全自制模型时仍可借用数据结构相近的模板,但Variant、动画和资产路径不能继续照抄。

自行找模板时,先按《查找原版数据》的方法搜索游戏中的兵种名称,从 Loc 得到单位 Key,再搜索land_units_tables。重点对比Class、Category、Man Entity、武器、Mount、Engine和动作表;不要只因为名称相近就选它。

震旦常见制作目标可以直接从这组原版记录开始。下表前三种分类分别来自land_units_tables.category、land_units_tables.class和main_units_tables.caste,不要交叉填入:

目标与模板 原版单位 Key category / class / caste
持盾近战步兵:玉勇 wh3_main_cth_inf_jade_warriors_0 inf_melee / inf_mel / melee_infantry
弩手:玉勇弩手 wh3_main_cth_inf_jade_warrior_crossbowmen_0 inf_ranged / inf_mis / missile_infantry
冲击骑兵:玉勇枪骑兵 wh3_main_cth_cav_jade_lancers_0 war_beast / cav_shk / melee_cavalry
单体构装体:俑士禁卫 wh3_main_cth_mon_terracotta_sentinel_0 inf_melee / inf_mel / monster
直射火炮:巨炮 wh3_main_cth_art_grand_cannon_0 artillery / art_fld / warmachine
火箭炮:炎霖火箭炮 wh3_main_cth_art_fire_rain_rocket_battery_0 artillery / art_fld / warmachine

玉勇枪骑兵的category实际是war_beast,俑士禁卫实际是inf_melee。这些内部分类不能按兵种中文名称逐词推导,也不能仅改分类就把步兵变成骑兵。先使用对应整条模板链,再进入本系列的远程、骑乘或载具分支。其他分类的完整对照见陆战单位详解。

这个系列怎么分

一张完整兵牌背后会连接许多表。为了不把所有内容挤进一篇文章,本系列分为八篇:

  1. 制作兵种:基础单位:建立新单位的基础骨架,并加入自定义战斗。
  2. 制作兵种:战斗数据:处理battle_entities_tables、武器、护甲、盾牌、属性和部队技能。
  3. 制作兵种:兵牌与说明:添加独立兵牌、名称、长短说明、标签和派系配色。
  4. 制作兵种:战役接入:处理招募建筑、势力权限、AI、盟友招募和 Unit Set。
  5. 制作兵种:远程单位:讲解远程武器和投射物链。
  6. 制作兵种:骑乘单位:讲解坐骑、骑手和各自的实体数据。
  7. 制作兵种:战车与火炮:讲解战场引擎、牵引物、乘员和铰接载具。
  8. 制作兵种:添加技能:讲解查找、复用和独立复制部队技能。

第一篇先完成最小但真实的新单位。后续文章都在同一个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 并导入原版记录

  1. 打开PackFile → 新建 PackFile。左侧出现空 Pack 后按Ctrl+S,在保存窗口中进入游戏的data文件夹,保存为twcn_tutorial_unit.pack;不要覆盖已有文件。
  2. 确认 PackFile 类型是Mod。
  3. 在依赖项中搜索land_units_tables,只展开游戏文件 → db → land_units_tables,打开原版data__。页签应以Game-RO:开头,不要使用Assembly Kit 文件中的结果。
  4. 先单击左上角自己的 Pack 根节点,确定导入目标;再在依赖项树中右键这份原版data__,点击导入,把表文件导入自己的 Pack。
  5. 在左侧Pack 内容中立即把刚导入的data__重命名为twcn_tutorial_unit,再打开这份可编辑副本。
  6. 筛选wh3_main_cth_inf_jade_warriors_0并选中需要保留的整行,清除筛选后反选,再删除其他行。删除前确认选中的是不需要的条目;完成后应只剩模板所需记录。
  7. 对main_units_tables、unit_variants_tables和units_custom_battle_permissions_tables重复操作,每份导入表都要重命名并清理无关行。

另一种做法是在自己的 Pack 中创建相同类型、相同版本的空 DB 表,再从Game-RO:原版页复制所需整行,粘贴进自建表。两种方法最终都只保留需要的记录;初学者可以先使用上面的整表导入流程,避免漏列或贴错表。具体的新建、导入和反选位置见《制作第一个模组》。

如果导入了整张原版表,必须立即把表内的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 加在单兵实体生命值上的额外生命值。

表中的新数值只是为了让案例容易观察,不是“精锐步兵标准数值”。正式制作时要同时比较定位、人数、费用、武器、实体生命值和两到三个强度相近的原版单位,再决定数值。

为新陆战单位设置 Key 和基础战斗数值

此时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 使用的近战战力估值之一。

设置主单位的 Key、人数、费用和等级

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。

常见自定义战斗阵营值有:震旦wh3_main_cth_cathay_mp、基斯里夫wh3_main_ksl_kislev、帝国wh_main_emp_empire、高等精灵wh2_main_hef_high_elves。本例只填震旦;跨阵营开放时每个阵营单独一行。general_portrait、general_uniform、set_piece_character和armory_item_set在玉勇模板中均为空,supports_upgrades = false,普通新步兵可直接保持这些值。

要加入其他自定义战斗阵营,就搜索该阵营已有单位在units_custom_battle_permissions_tables中的记录,并使用相同的Faction。有的单位只应出现在战役、特殊战斗或脚本场景中,此时可以不添加普通自定义战斗权限。

添加中文名称

  1. 右键自己的 Pack 根节点,点击创建 → 创建 Loc 文本。
  2. 路径填写text/twcn_tutorial_unit.loc,点击确定。这里是 Pack 内的路径,不是电脑上的文件夹路径。
  3. 在左侧展开text并双击twcn_tutorial_unit.loc,在空表中右键选择添加行,填写下面这一行:
Key Text Tooltip
land_units_onscreen_name_twcn_tutorial_cth_inf_elite_jade_warriors 精锐玉勇 不勾选

Loc Key 的固定前缀是land_units_onscreen_name_,后面接unit_variants_tables中的Name。任意字符不一致,游戏都会找不到这条文本。

保存、诊断和测试

  1. 按Ctrl+S保存 Pack。
  2. 打开视图 → 切换诊断窗口,重新检查整个 Pack。
  3. 处理所有与本次新记录有关的 Error;不要只因为 Warning 可以隐藏就盲目删除记录。
  4. 在启动器中只启用这个测试 Mod,进入震旦自定义战斗。
  5. 确认“精锐玉勇”出现,费用为750,模型、兵牌和战斗动作能正常加载。

基础单位 Pack 的诊断结果

RPFM 诊断只能发现一部分结构和引用问题。能在自定义战斗列表中看到单位,也不等于已经完成战役招募、AI 使用、科技加成和盟友招募;这些由后续教程补齐。

图片查看
100%

滚轮或按钮缩放 · 拖动或滑动查看 · Esc 关闭