制作兵种:兵牌与说明
本篇给精锐玉勇补齐玩家最先看到的界面内容:小兵牌、大兵牌、中文名称、短说明、背景说明和兵种标签。模型与动画仍沿用原版玉勇,不涉及 AE 的资产制作。
本例适合什么情况
本例适合使用普通单位列表和详情面板的战斗单位。英雄头像、领主选择界面、特殊召唤、战役专用面板和某些自定义 UI 可能使用其他图片路径或记录,不能用两张普通兵牌覆盖所有显示位置。
制作自己的内容时,先在unit_variants_tables.Unit Card查看模板兵牌名,再到原版 Pack 中搜索这个文件名,确认它实际出现在哪些ui路径和使用什么尺寸。说明文字则从模板的land_units_tables.Short Description Text与Historical Description Text跳到定义,再搜索对应 Loc Key。这样找到的是目标单位真实使用的界面链,而不是默认套用玉勇路径。
DB 模板从依赖项 → 游戏文件中只读查看,页签应有Game-RO:。需要复制时先在自己的 Pack 创建同类型、同版本表,再粘贴完整记录;也可以导入整张原版表,但必须先把自己 Pack 内的data__改成自有文件名,再只保留需要的行,避免同路径覆盖整份原版数据。Assembly Kit 文件不能作为本篇的导入或编辑来源。
本篇需要哪些文件和表单
| 文件或表单 | 作用 |
|---|---|
ui/units/icons/*.png |
小兵牌,原版常用尺寸为60 × 130。 |
ui/units/infopics/*.png |
详情界面使用的大兵牌,原版常用尺寸为120 × 260。 |
unit_variants_tables |
用Unit Card填写两张兵牌共用的文件名。 |
unit_description_short_texts_tables |
注册短说明 Key。 |
unit_description_historical_texts_tables |
注册较长的背景说明 Key。 |
land_units_tables |
用Short Description Text和Historical Description Text连接两类说明。 |
ui_unit_bullet_point_unit_overrides_tables |
指定兵牌上显示的优缺点标签。 |
ui_unit_bullet_point_enums_tables |
只有自定义全新标签时才需要。 |
unit_variants_colours_tables |
按派系或亚文化设置模型主色、辅色和第三颜色。 |
| Loc 文件 | 保存名称、长短说明和自定义标签的中文文本。 |
准备两张兵牌
当前《战锤 III》原版玉勇在ui.pack中同时包含下面两张标准单位兵牌,本例沿用这种结构:
ui/units/icons/wh3_main_cth_inf_jade_warriors_0.png 60 × 130
ui/units/infopics/wh3_main_cth_inf_jade_warriors_0.png 120 × 260
为精锐玉勇准备两张 PNG,并使用相同文件名:
twcn_tutorial_cth_inf_elite_jade_warriors.png
- 在 Pack 中建立
ui/units/icons和ui/units/infopics路径。 - 把
60 × 130图片导入icons。 - 把
120 × 260图片导入infopics。 - 确认两张图没有多一层同名文件夹,文件名大小写和下划线完全一致。
原版还可能包含ui/units/minspec_portholes下的164 × 164图片和遮罩,它们是其他头像显示用途,不是普通单位建立Unit Card连接时必须复制的两张兵牌。
如果参考单位还在其他路径出现,不要直接全部复制。先确认目标界面是否真的使用这些图片;不同单位类别和界面模块可能有自己的头像、遮罩或占位图规则。
连接兵牌
打开unit_variants_tables,把精锐玉勇的Unit Card改为:
twcn_tutorial_cth_inf_elite_jade_warriors
这里只填文件名,不写ui/units/icons/路径,也不写.png。
如果小兵牌正常而详情兵牌缺失,优先检查infopics文件是否存在、尺寸是否正确,以及两个目录下的文件名是否完全相同。
自定义名称、短说明和背景说明
先创建两条新的说明记录:
| 表单 | Key |
|---|---|
unit_description_short_texts_tables |
twcn_tutorial_unit_short_text_cth_inf_elite_jade_warriors |
unit_description_historical_texts_tables |
twcn_tutorial_unit_long_text_cth_inf_elite_jade_warriors |
再到land_units_tables中连接:
| 列 | 填写内容 |
|---|---|
Short Description Text |
twcn_tutorial_unit_short_text_cth_inf_elite_jade_warriors |
Historical Description Text |
twcn_tutorial_unit_long_text_cth_inf_elite_jade_warriors |
图中是原版玉勇的只读定义,只有Key,不是已经填好的精锐玉勇数据。建立新说明时,在自己的同类型表中新增上面列出的新 Key;实际中文内容再写入下面的 Loc。
最后在 Loc 文件中加入:
Key |
Text示例 |
|---|---|
land_units_onscreen_name_twcn_tutorial_cth_inf_elite_jade_warriors |
精锐玉勇 |
unit_description_short_texts_text_twcn_tutorial_unit_short_text_cth_inf_elite_jade_warriors |
装备精良、严守阵线的震旦精锐步兵。 |
unit_description_historical_texts_text_twcn_tutorial_unit_long_text_cth_inf_elite_jade_warriors |
这些久经沙场的玉勇奉命守卫震旦最重要的关隘。 |
图中是游戏文件中的原版玉勇文本:第一行是短说明,第三行是背景说明,最后一行是单位名称;其余命中还包括加载界面介绍和多人上限显示名称。它们虽然都包含玉勇的标识,用途却不同。①看完整 Key 前缀区分用途,②看对应中文。长背景说明超出当前可见宽度,阅读完整内容时可横向滚动;本图主要演示 Key 的对应关系。为精锐玉勇建立上面三条新 Loc,不要直接改这些原版行,也不要把所有命中一股脑复制。
三种 Loc 前缀不同。说明表中的Text属于本地化字段;在 RPFM 中实际显示文字由 Loc 提供,不能只在 DB 里建立空 Key。
配置兵种标签
原版玉勇在ui_unit_bullet_point_unit_overrides_tables中使用:
armoured_and_shielded
yang
这两个 Key 在官方简中分别显示为“装备重甲且装备盾牌”和“宁和:阳”。复制需要的行到自己的 Pack,把Unit Key改为精锐玉勇的新单位 Key。Bullet Point只负责界面标签,不会自动赋予护甲、盾牌、宁和或其他实际效果;实际数据仍要在对应战斗表中完成。
这两个标签只适合本例。自行制作时,搜索两个定位相近的原版单位 Key,比较它们的标签,再根据新单位已经实现的特性选择;没有合适标签时可以少写或不写,不能为了填满界面照抄模板。
截图①是要显示的标签,②仍是原版玉勇 Key;复制后需要把②换成新单位,①只保留新单位实际具备的特性。
要创建全新标签,再使用ui_unit_bullet_point_enums_tables注册 Key、正负面状态、排序和图标,并在 Loc 中添加:
ui_unit_bullet_point_enums_onscreen_name_你的标签Key
ui_unit_bullet_point_enums_tooltip_你的标签Key
第一行是标签名称,第二行是需要悬停说明时使用的文本。onscreen_name与tooltip都属于 Loc,不是 DB 中直接输入中文的普通列。原版state实际使用四个值:positive、very_positive、negative、very_negative,分别表示正面、强调正面、负面、强调负面的界面状态。普通优点标签可从positive模板复制,缺点从negative模板复制;这只是样式状态,不会改变效果强度。不要自行填中文“正面”或“负面”,也不要用自定义标签冒充尚未实现的战斗机制。
下面是常用的已有标签,Bullet Point中可直接填写英文 Key,不必为了相同文案另建定义:
| Key | 官方简中标签 | 选择前核对 |
|---|---|---|
armoured |
装备重甲 | 护甲记录是否与描述相符。 |
shielded |
装备盾牌 | 是否有匹配的盾牌模型及格挡数据。 |
armoured_and_shielded |
装备重甲且装备盾牌 | 两项同时具备;本例选此项,避免重复堆叠前两项。 |
armour_piercing |
破甲杀伤 | 实际武器的破甲杀伤占比和定位。 |
anti_infantry |
反步兵部队 | 实际武器、溅射或攻击方式是否擅长对应目标。 |
anti_large |
反大型部队 | 实际反大型加成及攻击方式。 |
stalk |
潜行 | 是否已在属性或效果链中实现。 |
vanguard_deployment |
先锋部署 | 是否已获得相应部署能力。 |
yang、yin |
宁和:阳、宁和:阴 | 属性和宁和被动是否与阴阳身份一致。 |
更多标签在ui_unit_bullet_point_enums_tables.key查看定义,显示名称按ui_unit_bullet_point_enums_onscreen_name_加该 Key 查 Loc;看实际使用对象时,在ui_unit_bullet_point_unit_overrides_tables.bullet_point精确筛选该值。这样可以先按文字选候选项,再核对哪些原版部队真正使用它。
配置派系颜色
unit_variants_colours_tables可以让同一模型在不同派系使用不同的主色、辅色和第三颜色。它通过Unit Variant连接unit_variants_tables.Name,还可以用Faction或Subculture限制适用范围,并用Soldier Type区分soldier、mount和officer。
如果模型贴图没有使用派系着色区域,修改颜色记录也不会产生预期效果。只复用原版玉勇模型时,可以继续使用原版配色;需要自定义配色时再复制相近派系的记录。此表的key是 64 位整数,新记录要用不冲突的数字,不能填写带字母的自有前缀;Unit Variant才填写模型变体 Key。
同一模型也可能按Faction、Subculture或Soldier Type拥有多条颜色记录。先搜索模板的Unit Variant并查看全部匹配项,再决定是复用共享配色、为某个派系新增记录,还是分别处理士兵、坐骑和军官。
当前原版颜色记录使用的非空Soldier Type包括soldier(士兵)、mount(坐骑)、officer(军官)和autonomous_rider(独立骑手组件),另外也有留空记录。精锐玉勇从soldier记录开始;是否需要其他组件取决于模型结构,不能把骑手和坐骑都当成士兵。颜色填写六位十六进制值,例如FF0000为红、00FF00为绿、0000FF为蓝、FFFFFF为白、000000为黑;000000不等于留空或透明。先只改一组颜色并进游戏观察它对应模型的哪个区域,再调整其余两组。
图中另选黑兽人(重型武器)的模型变体演示共享关系:按greenskins筛选出的 7 行都使用wh_main_grn_inf_black_orcs,但派系和颜色不完全相同,这不是要求精锐玉勇套用绿皮配色。①Faction和Soldier Type限定记录对象;②Unit Variant连接模型变体,Subculture可继续限定亚文化;③三组颜色值分别提供主色、辅色和第三颜色。当前行的Soldier Type都是soldier,主色都是000000,辅色和第三颜色可以不同。颜色块只是数据预览,最终哪些部位变色仍由模型贴图的派系着色区域决定。
游戏内检查
进入自定义战斗并依次检查:
- 部队列表中的小兵牌是否正确。
- 详情界面的大兵牌是否正确。
- 中文名称、短说明和背景说明是否都不是占位符。
- 兵种标签是否存在,且与真实战斗特性一致。
- 切换不同震旦派系时,模型配色是否符合预期。
RPFM 能检查路径和部分引用,但不能替代游戏对透明通道、裁切位置、文字换行和派系着色的实际显示验收。

