
大家好!欢迎阅读我的《全面战争:战锤3》自定义单位创建指南。我已经制作了超过250个新单位,现在觉得是时候为社区提供一份针对《全面战争:战锤3》的更新指南了,不过其实变化不大,Cryswar的指南仍然适用。 本指南以及许多其他优质内容可在tw-modding wiki上找到。 准备工作 我假设大多数阅读本指南的人都是新手 mod 制作者,因此请前往tw-modding wiki,阅读诸如《新手入门指南》《RPFM 傻瓜教程》和《RPFM 新手设置后教程》等教程,以便正确设置工具并掌握基础知识。 我的 RPFM 个人设置 在左上角依次点击“PackFile”>“设置”>新窗口中的“设置”选项卡。在用户界面设置中,我建议取消勾选【删除空文件夹】。 ——启用【删除空文件夹】后,若文件夹内没有内容,系统会自动将其删除。根据我的经验,这会带来麻烦。我希望保留文件夹,以便日后导入文件时文件路径保持正确。如果我确实想删除文件夹,我会手动进行删除操作。 在表格设置中,我建议启用【紧凑模式】。 ——【紧凑模式】会根据文本大小调整行高,去除空白空间,从而让更多行内容能同时显示。但它的缺点是,只有在对表格进行实际更改后才能生效,并且有时可能无法正常工作,导致列内容被截断。 阅读其余设置,根据个人需求进行修改,完成后点击保存即可。回到左上角; 视图 > 切换全局搜索窗口。我建议将此窗口拖到最左侧,并与包内容窗口进行50/50分屏,因为这是你会经常使用的核心窗口。 视图 > 开启依赖项窗口,我建议将此窗口拖到诊断窗口的左侧。这样你就能访问所有游戏文件和AssKit文件(如果出于某些原因需要的话)。

主表格 首先,我们进入PackFile > New Pack来创建一个新的Pack。现在保存并命名,以免丢失进度,操作路径为PackFile > Save PackFile As。【不要用数字结尾命名,以避免出现问题】。最佳做法是在名称前加上你的名字/首字母等,例如cf_new_black_guards.pack,不过你也可以按自己的方式命名。默认保存位置是《全面战争:战锤3》的数据文件夹。【建议将其保存在其他位置,因为数据文件夹可能会被修改,这可能导致你的pack文件损坏或更改被还原】。这意味着每次你想在游戏中测试模组时,都需要安装(PackFile > Install)该模组。寻找一个基础游戏单位作为模板 强烈建议始终使用基础游戏单位作为模板;从零开始创建新单位非常耗时,会留下大量空白列,而且单个空白或无效的键值并不总是会触发诊断,游戏可能会无错误崩溃,让你陷入大海捞针般的修复困境。无论如何,你都需要参考基础单位来了解它在游戏中的添加位置和方式。 寻找基础游戏单位或其他内容 主单位表(main_units table)是个不错的起点,但如何找到目标单位呢?假设想以黑暗精灵的黑卫(Black Guard)为基础创建单位,就需要找到该单位的键值。通常单位会以其显示名称命名,因此可以在底部的搜索栏中搜索“black”。一旦你获得了单位密钥,请进行全局搜索,这样你就能查看它所使用的所有表格。
如果找不到关键内容,请使用全局搜索(视图 > 切换全局搜索窗口),确保来源为游戏文件,并且数据库和本地化文件均已勾选。文本选项会搜索其他文件,例如.lua文件、文档以及变体网格定义文件。 在这种情况下,【纳迦隆德黑卫】与【land_units_onscreen_name_wh2_main_def_inf_black_guard_0】相关联。单位关键信息为【wh2_main_def_inf_black_guard_0】,因此现在对其进行全局搜索,即可查看它所使用的所有表格。 或者,我们可以右键点击 > 转到... > 定义。

或者,你也可以使用【查找引用】功能。

导入表格和行 我使用的方法是:点击行号选中想要的整行,按Ctrl+C复制,然后右键点击顶部的表格标签,从依赖项中导入整个表格。

我打开新导入的表格,然后用ctrl+a选中整个表格,删除所有内容,再用ctrl+shft+v粘贴回复制的行。 需要导入的表格 db/allied_recruitment_unit_permissions_tables——允许通过前哨站招募单位。 db/armed_citizenry_unit_groups_tables——将你的单位添加到驻军的主要关键表格。 db/building_level_armed_citizenry_junctions_tables——将单位分配到建筑以添加到驻军。必须使用唯一ID键。 db/battle_set_piece_tables——忽略,属于任务战斗内容。如果你想让单位出现在任务战斗中可以添加,但本指南不涉及这部分。 db/building_units_allowed_tables——将单位添加到建筑以进行本地和全局招募。必须使用唯一ID键。db/campaign_map_attrition_unit_immunities_tables——为单位赋予损耗免疫,例如吸血鬼不会受到吸血鬼损耗。 db/campaign_rogue_army_group_units_tables——可忽略。将单位添加到叛军部队,xp代表单位等级。必须使用唯一ID键。 db/cdir_military_generator_unit_qualities_tables——帮助AI在招募时理解单位的性能和角色,也用于自定义战斗的自动生成。 db/faction_rebellion_units_junctions_tables——可忽略。将单位添加到叛乱军队。 db/land_units_tables——第二重要的表格。包含单位的属性和其他非常重要的信息,后续会深入讲解。 db/land_units_to_unit_abilites_junctions_tables——为单位添加技能。 db/loading_screen_quotes_tables——将单位添加到加载界面。db/loading_screen_quotes_to_units_tables——上述表格所需,使用陆地单位描述文本和ui_unit_bullet_point_unit_overrides_tables来获取游戏内文本/信息。 db/main_units_tables——单位的主表格。此处出现错误会导致诸多问题,尤其是崩溃,后续将深入讲解。 db/ui_unit_bullet_point_unit_overrides_tables——控制单位卡片上的项目符号,最多四个。可自行创建并设置显示顺序。 db/unit_attributes_groups_tables——为单位启用属性的主密钥。 db/unit_attributes_to_groups_junctions_tables——为单位添加如cause_fear(造成恐惧)之类的属性。db/unit_banner_unit_height_offsets_tables——控制战斗中和战役地图上单位头顶的旗帜,用于避免模型穿模。 db/unit_set_to_unit_junctions_tables——将单位添加到单位组中,单位组用于科技和技能等效果中。可以创建新的单位组。 db/unit_variants_tables——将单位与变体和单位卡片关联。变体通常会有不同的名称,在大多数情况下需要单独搜索。 db/units_custom_battle_permissions_tables——在自定义战斗中为派系添加单位。 db/units_to_exclusive_faction_permissions_tables——允许或禁止特定派系使用某个单位。通常用于【传奇单位】,但也可用于特殊情况下的普通单位。db/units_to_groupings_military_permissions_tables——将单位添加到派系军事组,使其在战役中可用。 db/variants_tables——将unit_variants_tables中的单位变体连接到变体网格定义,该定义控制模型、纹理、武器等。 测试前:按住Ctrl键并左键点击所有表格以选中它们,然后按Ctrl + R键一次性重命名所有表格。如果保留data__名称,将会覆盖基础游戏文件,请勿这样做。

添加.locs文件 继续从原版导入。你只需要一个.loc文件,因此可以将它们合并,或者只将所需内容粘贴到一个.loc文件中,也可以按照原版的方式操作。 与数据表名称一样,【不要使用相同的.loc文件名】,以防止覆盖原版文件。 重命名时务必保留.loc后缀! 除非原版条目启用了工具提示复选框,否则不要启用该复选框。 在land_units_tables中,【"Historical Description Text"】和【"Short Description Text"】列的键会关联到unit_description_historical_texts_tables和unit_description_short_texts_tables,然后这些表再关联到.loc文件。以下是你需要的单位相关键值: unit_description_historical_texts_UNITKEY(将在游戏中显示的单位名称) land_units_concealed_name_UNITKEY(留空) unit_description_short_texts_text_UNITKEY(短文本将显示在单位卡片上) unit_description_historical_texts_text_UNITKEY(历史文本将在单位名册列表中显示在单位卡片旁)

或者,你可以右键点击.pack文件名称并生成缺失的.loc数据。如果模组崩溃,这也可能有所帮助,因为有时.loc文件是必需的但却缺失了。生成的内容并非都有用,比如加载引用。文件路径也与原版不同,所以我会将其修改为匹配的路径,但即使不修改也能正常运行,因此你可以不用费心处理。

免责声明 不同派系拥有不同的表格、招募方式等。你需要运用演绎推理来判断是否应添加那些未提及但在全局搜索中出现的表格。若需要帮助,可以在相关模组讨论区发布帖子或提问。 使用全局搜索替换所有键值 从基础游戏导入的一个重要原因(除了减少麻烦外)是全局搜索窗口中的“全部替换”功能。 在搜索框中粘贴单位键值“wh2_main_def_inf_black_guard_0”。 在替换框中输入你的自定义键值“cf_new_def_inf_black_guard_0”。 选择源数据包文件,然后点击“全部替换”按钮,该按钮为一个页面图标,后面有一个带红色小叉的红色页面。

就这样,大部分工作就完成了。检查诊断信息以确保没有错误或问题,然后保存pack文件。通常并非所有内容都使用相同的键,因此你可能还需要替换其他键。 自定义main_units_table 为了节省篇幅和时间,我建议你参考RPFM中的工具提示(虽然不总是准确,但足够接近),并再次参考原版内容。如果没有工具提示,通常意味着行名称本身已清晰说明含义,或者该内容未被使用。对于海军相关内容,直接参考原版表格即可。如果几乎所有单位的【海军单位】一栏都填写了“wh_main_shp_transport”,那么你的单位也应如此。

如果需要帮助,请加入相关交流平台。 自定义land_unit_table 该表格的用途相当直观。使用RPFM中的工具提示查看各项功能及其关联。通过全局搜索查找近战武器等内容,以便为单位创建新武器并自定义近战伤害和武器属性。 Man Entity关联到battle_entities表格,该表格控制单位速度、质量和碰撞箱等属性。如有需要,你也可以创建新的实体。 如果想将单位的武器风格更改为其他类型(例如从长戟改为双持),你需要查看Man Animation,并且必须匹配骨骼,否则模型会出现拉伸和扭曲的问题。所以胡克族单位必须使用胡克族动画,如果没有你想要的动画,就需要制作自定义动画。好在我已经为此制作了一份指南。 自定义单位卡片图片和变体 unit_variants_tables会引用单位卡片文件,该文件位于ui/units/icons/filename.png路径下。导入一个原版文件可以方便创建文件夹,确保路径正确。你可以将任意一个文件导出到桌面进行编辑,然后右键点击文件夹并添加文件进行导入。确保使用正确的尺寸和文件类型(png),不要对图片进行隔行扫描等操作。 unit_variants_tables会引用variants_tables,而variants_tables又链接到variantmeshdefinition。导入一个原版文件以确保文件路径正确。在variantmeshdefinition中,你可以更改单位的模型和武器等内容。同样,如果模型与骨骼不匹配,游戏中会出现混乱。不同的动画使用不同的武器槽,有些槽位需要命名。如果你遇到问题,只需参考原版文件即可。 常见问题及故障排除步骤 常见问题:如果你在打开游戏后立即崩溃到桌面且没有错误消息,可能是缺少某个被调用的表格,或者存在空字段/键,而RPFM诊断工具未检测到。如果在加载自定义战斗时崩溃,问题可能出在main_units表中,比如种姓、单位类型、语音相关内容或空字段。 如果在加载新战役时崩溃,可能是上述任何一种原因,也可能是存在更多无效键值。如果能够加载战役,但在需要加载单位时崩溃,可能是类似缺少权限表之类的问题。 如果模型不可见,需要检查variant(变体)和variantmeshdef(变体网格定义),它们可能丢失或损坏。 如果武器出现在单位的背部或侧面,而不是手中或正确位置,原因可能在于meshdefinition(网格定义)。如果你想让矛兵进行双持,这需要修改动画。不同的动画有不同的武器槽位置,因此需要更改变体网格定义。一些单位(如远程单位)会在其动画元数据中使用道具,所以需要制作新的动画包并修改元数据。 故障排除步骤:确保RPFM及其依赖项已更新后,运行RPFM诊断。
2026-02-14 22:00:10 发布在
全面战争:战锤III
说点好听的...
收藏
0
0
