陆战单位详解
一个可在战斗中正常工作的陆战单位,不是由一张表单决定的。main_units_tables负责战役与名册层面的单位记录,land_units_tables负责战场上的单位配置,后者再连接战斗实体、近战武器、护甲、盾牌、属性组和间距;近战武器还可以继续连接接触效果。
本文讲清这些表单的职责、连接关系和当前字段,不重复兵牌、说明文本、招募、兵种许可、模型与动画的完整制作流程。你可以把本文当作制作或排查陆战单位时的“字段地图”,但不能把某个示例数值当成所有兵种的标准答案。
本文列名使用数据库原名,例如
primary_melee_weapon。RPFM 通常把它显示为Primary Melee Weapon。截图中的玉勇、古墓王近战武器和其他原版记录只是用来展示字段与数据结构,不代表只能复制这些模板。
先看完整数据链
main_units_tables.land_unit
↓
land_units_tables
├─ man_entity ───────────────→ battle_entities_tables
├─ primary_melee_weapon ─────→ melee_weapons_tables
│ └─ contact_phase
│ ↓
│ special_ability_phases_tables
│ ├─ special_ability_phase_stat_effects_tables
│ ├─ special_ability_phase_attribute_effects_tables
│ ├─ phase_display → special_ability_phase_displays_tables
│ └─ special_ability_phases_to_additional_ui_effects_junctions_tables
├─ armour ───────────────────→ unit_armour_types_tables
├─ shield ───────────────────→ unit_shield_types_tables
├─ attribute_group ──────────→ unit_attributes_groups_tables
│ └─ unit_attributes_to_groups_junctions_tables
│ └─ unit_attributes_tables
└─ spacing ──────────────────→ unit_spacings_tables
formations_tables
└─ formations_to_subcultures_tables
特殊阵型技能
└─ special_abilities_specific_formation_types_tables
这条链需要先分成三个层次理解:
main_units_tables回答“战役和名册里这是什么单位、多少人、多少钱、什么等级”。land_units_tables回答“进入战斗后这一队兵使用什么实体、武器、防具、属性和基础战斗值”。- 被引用的子表回答“每个士兵怎样移动、碰撞、攻击、承受伤害和应用特殊状态”。
制作一个全新单位时还需要兵牌、本地化、兵种许可、战役招募等表单。本文中的表单负责陆战核心数据,不会单独让单位自动出现在自定义战斗或建筑招募列表中。
开始前:复制记录而不是破坏共享数据
原版记录统一从依赖项 → 游戏文件查找,打开后核对Game-RO:只读页签。不要从Assembly Kit 文件导入、复制或编辑表单,也不要把其中的记录当作游戏引用来源。建立自己的Mod类型 Pack 后,可以使用下面两种方式准备表单。
新建空表单
- 在自己的 Pack 上右键,新建需要的 DB 表。
- 新增记录。
- 从依赖项中的同类原版记录逐列复制。
- 立刻把主 Key 改成带个人前缀的新 Key。
这种方式适合unit_armour_types_tables之类字段很少的表。land_units_tables和battle_entities_tables字段很多,手工复制更容易漏列。
从依赖项导入原版表单
- 在依赖项中搜索表单名或模板 Key。
- 打开原版表单,确认记录与目标机制相同。
- 将原版表单导入自己的 Pack。
- 把导入后的
data__重命名为自己的子表名。 - 选中要保留的记录,反选后删除其他记录。
- 修改保留记录的主 Key,并修复所有指向它的引用。
原版 DB 子表通常也叫
data__。如果把导入后的子表继续命名为data__,Mod 可能覆盖原版同路径子表,而不是只覆盖你留下的几行。每张导入表都应改成清楚且唯一的名称,例如twcn_tutorial_land_units。
什么时候必须复制子记录
一条近战武器、战斗实体、护甲、盾牌、属性组或间距记录可以被多个单位共同引用。如果你直接修改共享记录,所有引用它的单位都可能一起变化。
- 只想改一个单位:复制子记录、改成新 Key,再让新单位引用新记录。
- 想让一整类单位同步变化:可以有意共用记录,但要先查清全部引用者。
- 只是复用完全相同的原版行为:可以继续引用原版 Key,不必为了“看起来完整”复制所有子表。
怎样选择模板
模板要按结构和机制选择,不能只按外观选择。
| 目标单位 | 优先比较的原版模板 |
|---|---|
| 普通持盾步兵 | 同样的人数级别、盾牌方向、武器动画、队形密度和体型。 |
| 双手重武器步兵 | 同样的武器长度、攻击间隔、溅射目标体型和动画套装。 |
| 枪兵或长戟兵 | 同样的反大型定位、武器长度、迎击能力和队列深度。 |
| 骑兵 | 同样的坐骑类型、实体质量、冲锋距离、转向速度和编队间距。 |
| 战车 | 同样的牵引结构、载具、碰撞攻击、质量和转向方式。 |
| 单体怪兽 | 同样的实体尺寸、碰撞体、溅射上限、生命结构和肢解设置。 |
| 飞行单位 | 同样的飞行速度、飞行冲锋速度、起降动画与实体体型。 |
先比较两到三个模板。某个0、空值或勾选框可能是该单位的特殊例外,不一定是通用默认值。想找原版数据时,优先从已知单位的main_units_tables.land_unit进入,再沿引用向下追踪;想找某种机制时,则反向筛选相关字段,例如筛选contact_phase非空的近战武器。
陆战单位:land_units_tables
land_units_tables是战场单位的中心表。它保存单位分类、基础近战数值、装备入口、实体入口、动画入口、属性组、间距、伤害修正和若干特殊规则。
身份、分类与说明
| 字段 | 含义与使用要点 |
|---|---|
key |
陆战单位唯一 Key。main_units_tables.land_unit和许多其他表会引用它。新单位必须使用不会与原版或其他 Mod 冲突的前缀。 |
category |
引用unit_category_tables.key的内部分类。不能按中文兵种类别猜值:玉勇枪骑兵为war_beast,俑士禁卫为inf_melee。它会参与分类判断,不应只为了改变兵牌文字而替换。 |
class |
引用unit_class_tables.key的职责分类。它与category及主单位的caste分别配置;下方列出完整取值和原版使用范围。 |
short_description_text |
单位短说明所使用的文本 Key。它不是玩家看到的最终中文句子;实际文本需要在本地化数据中提供。 |
historical_description_text |
单位长说明或背景说明所使用的文本 Key,同样需要对应本地化。 |
campaign_action_points |
行动点数相关的单位级字段。普通陆战单位通常沿用模板;不要把它误认为战场移动速度。战场速度在battle_entities_tables。 |
单位显示名称并不是当前 RPFM Schema 中land_units_tables的普通 DB 字段。不要因为这里看不到“名称”就把名称文字塞进key或说明字段;显示名称应按兵种本地化链处理。
分类取值对照
当前unit_category_tables有 9 个值,其中原版陆战单位实际使用 6 个:
category |
选择说明 |
|---|---|
inf_melee |
玉勇、俑士禁卫等原版近战单位使用;不要仅因词面有inf就排除怪兽。 |
inf_ranged |
玉勇弩手等远程步兵使用。 |
war_beast |
玉勇枪骑兵等骑乘单位也使用,不能硬译成只适用于野兽。 |
cavalry |
原版还使用此骑乘分类;是否选择取决于同结构模板,不能替换所有war_beast。 |
artillery |
巨炮、炎霖火箭炮等器械单位使用。 |
war_machine |
部分战争机器结构使用,需保留其器械和实体配套。 |
light_ship、medium_ship、heavy_ship |
定义表保留的船只分类;本次原版land_units_tables没有使用,不作为陆战新兵种选项。 |
unit_class_tables共有 18 项。下表的中文用于解释内部分类,实际兵牌职业名称仍由 UI 分组和 Loc 决定:
class |
用途与当前使用范围 |
|---|---|
inf_mel |
近战职责,玉勇和俑士禁卫均有使用。 |
inf_spr |
枪矛步兵职责。 |
inf_mis |
远程步兵职责,玉勇弩手使用。 |
cav_mel |
近战骑乘职责。 |
cav_mis |
远程骑乘职责。 |
cav_shk |
冲击骑乘职责,玉勇枪骑兵使用。 |
chariot |
战车职责。 |
art_fld |
野战火炮职责,巨炮使用。 |
com |
人物等指挥单位职责,不能用它代替caste = lord/hero。 |
spcl |
特殊职责,需要对应原版模板。 |
art_fix、art_siege、elph、inf_pik |
定义表有值,但本次原版陆战记录未使用;不凭旧游戏的字面含义推荐给《战锤 III》。 |
shp_art、shp_mel、shp_mis、shp_trn |
船只分类,本次原版陆战记录未使用。 |
例如制作普通剑盾步兵,直接从玉勇的inf_melee + inf_mel开始;制作冲击骑兵,则从玉勇枪骑兵的war_beast + cav_shk开始并保留坐骑链。分类只说明模板的一部分,改成骑兵分类不会自动增加马匹和骑手。
动画、战斗实体、领导力和生命值
| 字段 | 含义与使用要点 |
|---|---|
man_entity |
引用battle_entities_tables.key,决定基础生命值、速度、质量、碰撞、体型和转向等实体行为。 |
man_animation |
单位使用的战斗动画集合。DB 可以填写动画 Key,但不能凭空补齐模型、骨架、动画片段和事件;这些资产需要在 AssetEditor 等工具中正确制作。 |
morale |
单位基础领导力。最终领导力还会受到难度、将领、技能、疲劳、伤亡、侧后包抄和效果等影响。 |
bonus_hit_points |
加在战斗实体基础生命值上的单位级额外生命值。不要只看这一列判断最终单实体生命值;还要检查battle_entities_tables.hit_points。 |
training_level |
本次当前原版陆战记录全部使用trained,制作普通新单位直接保留。Schema虽声明训练枚举引用,但不能据其他游戏臆造“精锐”取值,也不能把它当成自动增加攻防的按钮。 |
坐骑、近战武器、远程武器、队列和盾牌
| 字段 | 含义与使用要点 |
|---|---|
num_mounts |
单位使用的坐骑数量配置。它必须与单位人数、坐骑结构、动画和原版模板相匹配;不是单纯的视觉数量。 |
mount |
坐骑记录 Key。步兵通常留空;骑兵、怪兽骑手和部分载具需要完整的坐骑与动画链。 |
primary_melee_weapon |
主要近战武器 Key,引用melee_weapons_tables.key。武器伤害、长度、溅射和接触效果从这里进入。 |
primary_missile_weapon |
主要远程武器 Key,引用missile_weapons_tables.key。完整远程链见《远程武器详解》。纯近战单位通常留空。 |
rank_depth |
单位默认或偏好的队列纵深。它影响初始排列方式,但玩家拖动阵线、阵型技能和地形仍会改变最终编队。 |
shield |
盾牌类型 Key,引用unit_shield_types_tables.key。留空表示不通过这条记录获得盾牌防护。 |
射击精度、护甲强度与基础近战值
| 字段 | 含义与使用要点 |
|---|---|
accuracy |
单位自身的射击精度。它会与投射物的校准区域、校准距离和精度加成共同影响落点;不要把面板中的“射击精度”理解成独立的命中率百分比。纯近战单位通常沿用模板值。 |
armour |
护甲类型 Key,引用unit_armour_types_tables.key。面板护甲强度来自被引用的护甲记录,不应把数值直接写进这一列。 |
melee_attack |
单位基础近战攻击,主要影响近战攻击能否命中目标。最终值还会受经验、技能、难度和阶段效果影响。 |
melee_defence |
单位基础近战防御,主要影响被近战命中的难度。它不是盾牌提供的远程格挡概率。 |
charge_bonus |
单位冲锋加成。它与战斗实体的冲锋速度、冲锋距离和质量不同,后者决定冲锋怎样发生。 |
说明、间距、载具和训练
| 字段 | 含义与使用要点 |
|---|---|
spacing |
单位间距 Key,引用unit_spacings_tables.key。它决定紧密、松散、下马、溃逃、龟甲阵和盾墙等多组间距。 |
num_engines |
单位拥有的战场引擎数量,主要用于火炮和其他带引擎单位。普通步兵保持模板值。 |
engine |
战场引擎记录 Key。传统火炮的武器、载具和乘员关系常会继续沿这条链展开。 |
articulated_record |
组合式或关节式载具记录入口,供特定载具结构使用。没有同类模板和资产时不要自行填写。 |
num_engines、engine、articulated_record、mount和num_mounts不是五个可以独立拼装的开关。制作火炮、战车或复杂载具时,应复制结构相同的完整原版单位,再逐层替换资产和数据。
性别、可见性、属性组、地形发现与装填
| 字段 | 含义与使用要点 |
|---|---|
is_male |
单位实体的性别上下文,可能影响语音或其他性别相关选择。它不会自动替换模型或动画。 |
visibility_spotting_range_min |
最小发现距离相关参数。它不是武器最小射程,也不是单位自身隐蔽值。 |
visibility_spotting_range_max |
最大发现距离相关参数。最终发现行为还会受到环境、目标和引擎规则影响。 |
attribute_group |
属性组 Key,引用unit_attributes_groups_tables.group_name。引发恐惧、潜行、心理免疫等常通过这条链进入。 |
spot_dist_tree |
在树林环境中发现目标的距离参数。应与相似侦察定位的原版单位比较。 |
spot_dist_scrub |
在灌木或低矮植被环境中发现目标的距离参数。不要把它当成树林隐蔽开关。 |
reload |
单位级装填修正,不是基础装填秒数。远程投射物的基础装填时间位于projectiles_tables.base_reload_time,最终射速还受动画、经验和效果影响。 |
selection_vo |
主要选中语音类别。它选择语音配置,不保存实际音频文件。 |
语音、隐蔽、地面效果、弹药与抗性修正
| 字段 | 含义与使用要点 |
|---|---|
selected_vo_secondary |
第二套选中语音类别。是否使用以及何时使用取决于对应语音系统和模板。 |
selected_vo_tertiary |
第三套选中语音类别。没有同类原版结构时保持空值。 |
hiding_scalar |
单位隐蔽相关倍率。最终隐蔽还会受到属性、地形和战斗规则影响。 |
ground_stat_effect_group |
地面或地形统计效果组入口,用于特定地面状态下的数值变化。普通单位通常复用模板。 |
primary_ammo |
主要弹药池数量。它不是近战攻击次数。 |
secondary_ammo |
次要弹药池数量。它也不等于“第二种可切换弹药”;哪件远程武器消耗次要池由远程武器表决定。 |
damage_mod_flame |
单位受到火焰伤害时的单位级修正。其正负方向并不一定符合直觉,修改前应查看当前 Schema 说明并比较原版抗性单位。 |
damage_mod_magic |
单位受到魔法攻击时的修正。它与法术抗性、物理抗性、远程抗性不是同一判定。 |
伤害修正、AI和战斗行为
| 字段 | 含义与使用要点 |
|---|---|
damage_mod_physical |
物理抗性相关单位级修正。不要与护甲强度混为一谈;护甲和物理抗性作用于不同判定。 |
damage_mod_missile |
远程抗性相关单位级修正。当前 Schema 的数值方向具有反直觉性,0表示不修改;不要凭“正数应该更强”猜测。 |
damage_mod_all |
对全部伤害的总修正入口。它会与其他修正共同作用,错误数值很容易造成几乎不受伤或承伤异常。 |
ai_usage_group |
AI 对该单位用途的分类。它影响 AI 如何理解单位定位,但不会替单位补齐武器、阵型或战役招募。 |
can_skirmish |
是否允许使用散兵模式。没有远程武器和射击动画时,勾选也不会产生有效远程行为。 |
can_brace |
是否允许迎击或结阵抵抗冲锋。真正的迎击表现还取决于武器、动画、朝向、站立状态和游戏规则。 |
mounted_draughts |
是否使用牵引坐骑上下文,常见于特定载具和火炮结构。普通骑兵不应仅凭字面随意勾选。 |
sync_locomotion |
是否同步相关实体的移动节奏,供特定坐骑、载具或组合实体使用。错误设置可能造成滑步或实体不同步。 |
占点、自动结算、法术与默认模式
| 字段 | 含义与使用要点 |
|---|---|
capture_tier |
一般目标的占领等级或占点能力层次。不要只为“占点更快”孤立修改,应比较同类单位的整组三个占点字段。 |
key_building_capture_tier |
关键建筑目标的占领等级。适用目标与普通占点并不完全相同。 |
score_capture_tier |
计分型占领目标的占领等级。用于特定战斗目标规则。 |
harmony_amplification_type |
宁和增幅器的配置引用,连接harmony_amplification_types_tables。对应的部队说明使用“宁和化生:+25%”等名称。图中玉勇的这一列为空;制作具有此功能的单位时,沿用同类原版单位的配置与属性连接,不能只填这一列就当作完成。 |
first_person |
第一人称模式相关配置入口。没有相应镜头、武器和单位支持时不要自行填写。 |
ar_unit_category |
自动结算使用的单位类别。它影响系统如何评估单位,不等于战斗中的category。 |
healing_power |
治疗能力或治疗强度相关参数。它不等于单位每秒自动回血;仍需有实际触发治疗的能力、阶段或其他机制。 |
spell_mastery |
游戏面板显示为“法术精通”。它影响相关法术效果,但没有法术和施法能力时,单独修改不会让单位成为施法者。部分效果说明会使用“法术强度”,不要因此把面板属性也改称“法术强度”。 |
infinite_secondary_ammo |
是否让次要弹药池无限。它不影响主要弹药池。 |
default_guard_mode |
单位进入战斗时是否默认开启“防御状态”。它只改变默认状态,不代表玩家不能切换。 |
占点与特殊分类取值
三个占点字段引用capture_tier_to_power_tables.key。全部定义及对应power如下;数字是这张表的配置值,不是“多少秒占完”的换算:
| Key | power |
|---|---|
cant_capture |
0 |
very_low |
2.5 |
low |
5 |
default、medium |
均为7.5 |
high |
10 |
domination_artillery |
1 |
domination_cav |
4 |
domination_characters、domination_monsters |
均为3 |
domination_infantry |
5 |
domination_infantry_elite |
7 |
domination_infantry_expendable |
2 |
普通占领与计分目标采用哪个值,应保留同类模板的三列组合。ar_unit_category则是另一套自动结算分类,原版有melee、archer、skirmish、artillery及空值,不能填上面的占点 Key。宁和增幅引用表完整定义了harmony_amplifier_120%、125%、140%、150%、160%、175%、200%这七个后缀,填写时每个都要带完整harmony_amplifier_前缀;其倍率分别为1.2、1.25、1.4、1.5、1.6、1.75、2。这只是已有配置清单,普通玉勇仍留空。
基础近战数值到底放在哪里
| 想修改的内容 | 应查看的字段 |
|---|---|
| 近战攻击 | land_units_tables.melee_attack |
| 近战防御 | land_units_tables.melee_defence |
| 冲锋加成 | land_units_tables.charge_bonus |
| 基础领导力 | land_units_tables.morale |
| 基础武器杀伤/破甲武器杀伤 | melee_weapons_tables.damage、ap_damage |
| 对步兵/大型加成 | melee_weapons_tables.bonus_v_infantry、bonus_v_large |
| 攻击间隔 | melee_weapons_tables.melee_attack_interval,同时受动画限制 |
| 单兵生命值 | battle_entities_tables.hit_points加land_units_tables.bonus_hit_points |
| 战场速度和质量 | battle_entities_tables中的移动、质量与体型字段 |
不要把基础武器杀伤或破甲武器杀伤写到melee_attack,也不要把跑速写到campaign_action_points。面板上相邻的数值,数据库里可能属于不同表。
主单位:main_units_tables
main_units_tables是单位在战役、名册、费用和规模层面的主记录。它通过land_unit连接战场单位。创建一条land_units_tables记录但没有对应主单位时,你只做出了战斗数据的一部分。
主键、陆战连接与基本限制
| 字段 | 含义与使用要点 |
|---|---|
unit |
主单位唯一 Key。招募、兵种许可、兵牌和其他名册系统通常引用它。它可以与land_units_tables.key同名,但并非数据库强制要求。 |
land_unit |
对应的陆战单位 Key,引用land_units_tables.key。这是主单位进入战斗数据的核心连接。 |
additional_building_requirement |
额外建筑需求。它不是唯一的招募建筑入口,实际可招募位置仍由建筑、兵种组和招募连接表决定。 |
campaign_cap |
战役可拥有数量上限。应结合兵种上限效果和其他系统理解;不要把多人上限填到这里。 |
caste |
主单位用途分类,引用unit_castes_tables.caste。例如普通步兵、英雄和领主分别采用不同值;不能把它直译成某个派系特有的“种姓机制”。 |
create_time |
基础招募回合数。最终招募时间还会受建筑、效果、全局招募和其他修正影响。 |
is_naval |
是否作为海军单位。战锤 III 的普通陆战新兵种不应随意勾选。 |
主单位分类取值
caste的全部 13 个值为:
| 值 | 用途说明 |
|---|---|
melee_infantry |
近战步兵,本例玉勇。 |
missile_infantry |
远程步兵,如玉勇弩手。 |
melee_cavalry |
近战骑兵,如玉勇枪骑兵。 |
missile_cavalry |
远程骑兵。 |
monstrous_infantry |
怪兽步兵。 |
monstrous_cavalry |
怪兽骑兵。 |
monster |
怪兽,如俑士禁卫。 |
war_beast |
战兽。 |
chariot |
战车。 |
warmachine |
战争机器及火炮;注意与category中的war_machine拼写不同。 |
hero |
英雄战斗单位。 |
lord |
领主战斗单位。 |
generic |
原版特殊通用记录使用,普通制作优先选明确职责的同类模板。 |
weight定义表共有very_light、light、medium、heavy、very_heavy、super_heavy六项;本次原版主单位实际未使用very_light,不要把定义存在当成推荐值。玉勇、玉勇弩手、玉勇枪骑兵和巨炮都用medium,俑士禁卫用very_heavy。它不能根据模型大小独立推导,也不与mass或护甲强度一一对应。
人数、费用、轻重分类与海军遗留字段
| 字段 | 含义与使用要点 |
|---|---|
num_men |
一队部队的基础实体数量,例如本例玉勇为120;游戏的部队规模设置还会影响实际人数,不能把表中值当作所有画质设置下都不变的人数。单体单位通常为1。 |
weight |
部队的轻重分类,引用unit_weights_tables。例如light、medium、heavy在游戏中分别显示“轻装”“中装”“重装”,图中玉勇为medium。它不是实体质量battle_entities_tables.mass,也不能代替护甲数值配置。 |
recruitment_cost |
基础招募费用。最终费用会受到难度、建筑、技能、科技和效果修正。 |
upkeep_cost |
基础维护费。它不是每回合固定最终值。 |
multiplayer_cost |
多人或自定义战斗使用的基础费用。不要用它代替战役招募费。 |
multiplayer_cap |
旧式或通用多人数量上限字段。快速战斗还可能使用multiplayer_qb_cap。 |
naval_unit |
海军单位记录入口。普通陆战单位通常留空。 |
num_ships |
船只数量,属于海战结构遗留字段。 |
min_men_per_ship |
每艘船最少人数。普通陆战单位保持模板默认值。 |
max_men_per_ship |
每艘船最多人数。普通陆战单位保持模板默认值。 |
resource_requirement |
招募所需的资源 Key。是否真的受资源限制还取决于资源和招募系统的其他连接。 |
region_unit_resource_requirement |
地区兵种资源需求。只在对应地区资源机制下使用。 |
百科、语音、界面分组、等级与头像
| 字段 | 含义与使用要点 |
|---|---|
special_edition_mask |
特别版本或内容授权掩码。普通 Mod 单位通常复制同阵营可用模板,不要用它自行模拟 DLC 权限。 |
in_encyclopedia |
是否进入百科或相关展示。勾选不代表百科内容和本地化会自动生成。 |
audio_voiceover_culture |
单位使用的语音资源配置。它选择一组语音,不会同时更换单位的模型或动画。 |
ui_unit_group_land |
陆战界面分组,用于名册或单位信息的归类。它不决定建筑招募路径。 |
ui_unit_group_naval |
海军界面分组。普通陆战单位通常留空或沿用模板。 |
tier |
单位等级或层级,用于界面、AI和若干规则。它不等于建筑等级,也不会自动建立招募条件。 |
is_high_threat |
是否被视为高威胁单位,供界面或 AI 等系统使用。 |
porthole_camera |
单位头像或肖像镜头配置。没有正确模型和场景时,单独复制可能得到错误构图。 |
坐骑、战役生命、战力与攻城
| 字段 | 含义与使用要点 |
|---|---|
mount |
主单位层面的坐骑入口,供特定单位和界面系统使用。它必须与陆战单位及坐骑链一致。 |
use_hitpoints_in_campaign |
战役层是否使用生命值状态。它不改变战斗实体基础生命。 |
unit_scaling |
单位规模缩放相关的旧式或特殊规则字段。没有明确同类模板时保持原值。 |
porthole_composite_scene |
头像使用的合成场景。它与porthole_camera共同影响最终肖像。 |
melee_cp |
近战战力估值。它供自动结算、AI或相关系统参考,不会直接增加近战攻击。 |
missile_cp |
远程战力估值。它不等于投射物伤害,也不会让近战单位获得远程攻击。 |
can_siege |
单位是否具有参与特定攻城行为的资格。不要把它理解为“能否进入攻城战”。 |
语音覆盖、经验限制、食物与怪兽标记
| 字段 | 含义与使用要点 |
|---|---|
audio_voiceover_culture_override |
覆盖基础语音资源配置。仅在原版同类结构确实使用时填写。 |
restrict_xp_gain_in_campaign |
是否限制战役经验获取。它不控制初始经验等级。 |
audio_voiceover_actor_group |
语音演员组,进一步指定单位使用哪组声音。 |
food_cost |
招募或使用单位时的食物成本,只有接入对应资源机制才有意义。 |
has_spoken_vo |
是否具有口语语音。勾选不会自动生成或复制音频。 |
is_monstrous |
怪兽单位分类标记,可能影响界面、语音或规则判断。它不决定实体尺寸;尺寸在battle_entities_tables.size。 |
multiplayer_qb_cap |
快速战斗中的数量上限。需要与当前多人规则共同检查。 |
vo_is_dragon |
是否使用龙类语音上下文。仅修改此项不会改变单位物种。 |
vo_is_dinosaur |
是否使用恐龙类语音上下文。仅修改此项不会改变单位物种。 |
optional_ui_element |
可选的单位界面元素入口。没有配套界面定义时保持空值。 |
barrier_health |
单位魔屏生命值上限。它与普通生命值分开;魔屏恢复还可以由技能阶段控制。 |
can_be_bribed |
单位是否能被相应贿赂机制作用。只有存在该战役或战斗机制时才有实际意义。 |
point_allowance_weight |
点数额度或阵容限制系统使用的权重。它不是招募费或多人费用。 |
is_renown |
是否属于精英部队。勾选不会自动补齐精英部队的招募池、上限、名称和兵牌。 |
少见或遗留字段
当前 RPFM Schema 还可能显示下列兼容字段。它们不是普通新兵种的必填项,缺少明确原版模板时应保持模板值:
| 字段 | 含义与使用要点 |
|---|---|
prestige |
旧式声望或单位层次数据,当前普通陆战制作通常不从这里入手。 |
religion_requirement |
宗教需求,只有相应宗教系统和招募链使用时才有效。 |
recruitment_movie |
招募影片入口。没有对应影片资产时不要自行填写路径。 |
world_leader_only |
是否只允许世界领袖等特殊主体使用,属于特定战役限制。 |
can_trade |
单位交易或转让相关旧式标记。它不是外交招募开关。 |
unique_index |
旧式唯一索引。不要把它当作新单位 Key,也不要随意复制冲突值。 |
战斗实体:battle_entities_tables
battle_entities_tables描述一个战斗实体怎样移动、转向、碰撞、被投射物命中、被击飞和死亡。多个单位可以共享同一实体,因此修改前必须反查引用。
移动与冲锋进入距离
| 字段 | 含义与使用要点 |
|---|---|
key |
战斗实体唯一 Key,由land_units_tables.man_entity引用。 |
type |
实体类型分类。它会影响引擎如何理解实体,不应只按名称猜测。 |
walk_speed |
步行速度。单位实际移动还受动画和其他状态影响。 |
run_speed |
奔跑速度,是战场移动速度的核心字段之一。动画位移和速度差异过大时会滑步。 |
acceleration |
从低速加速到目标速度的能力。数值与单位起步手感有关。 |
deceleration |
减速和停止能力。过低可能造成明显拖行,过高可能显得瞬间刹停。 |
charge_speed |
冲锋阶段速度。它不等于land_units_tables.charge_bonus。 |
strafe_speed |
侧移速度,只有支持侧移动作和行为的单位才会自然使用。 |
charge_distance_commence_run |
距离目标多远开始为冲锋加速或进入奔跑阶段。 |
charge_distance_adopt_charge_pose |
距离目标多远采用冲锋姿态。必须与冲锋动画时长和速度匹配。 |
charge_distance_pick_target |
距离目标多远开始选取具体接战实体。它会影响接触前的目标分配。 |
三个冲锋距离描述的是冲锋过程中的不同阶段。只改其中一个可能造成过早摆姿势、迟迟不加速、冲到队列前才选目标或实体挤成一团。
碰撞体积、质量、生命与转向
| 字段 | 含义与使用要点 |
|---|---|
radius |
实体碰撞半径。它影响站位、接触和穿行,不是攻击范围。 |
shape |
实体碰撞形状。应与模型和同类原版实体相匹配。 |
radii_ratio |
非圆形碰撞体各方向半径比例。随意修改可能造成看似没碰到却发生碰撞。 |
mass |
实体质量,参与碰撞、冲锋和击退。它不是主单位的weight。 |
height |
实体高度参数,参与命中、碰撞和其他空间判断。它不直接缩放模型。 |
fire_arc_close |
近距离射击弧或朝向限制相关参数,主要供具有投射行为的实体使用。 |
turn_speed |
转向速度。过高可能瞬间转身,过低则会跟不上目标。 |
hit_points |
战斗实体基础生命值。最终单位级单实体生命值还要结合land_units_tables.bonus_hit_points。 |
allow_turn_to_move_anim |
是否允许使用“转向后移动”动画逻辑。必须有匹配动画。 |
allow_static_turn_anim |
是否允许原地转向动画。没有对应动画时勾选可能产生僵硬或滑动。 |
min_turning_speed |
使用转向逻辑所需的最低速度阈值。与转向动画和移动常量共同工作。 |
飞行、体型、坡度、音效与战斗反应
| 字段 | 含义与使用要点 |
|---|---|
fly_speed |
飞行移动速度。地面单位保持模板值。 |
flying_charge_speed |
飞行冲锋速度。它需要与俯冲或空中冲锋动画配合。 |
size |
实体尺寸分类。它会参与目标选择、武器加成、穿透和动画等判断;不是模型缩放。 |
gradient_strategy |
坡度和地形适应策略。不同步兵、载具、怪兽和飞行实体可能使用不同策略。 |
audio_entity_type |
实体动作与受击等音频类别,与单位使用的语音资源配置分别设置。 |
combat_reaction_radius |
战斗反应或接敌感知半径。它不是武器长度。 |
entity_effects |
实体级效果配置入口,供特定血迹、尘土或其他实体表现使用。 |
实体分类取值
实体几组容易混用的有限选项如下,选择时按同结构原版记录配套使用:
| 字段 | 当前原版使用值 | 本例与选择依据 |
|---|---|---|
type |
man、horse、artillery、chariot、giant、fauna、turret、ship |
玉勇实体用man;同一骑兵的骑手与马可属于不同类型,船只记录不作为普通陆战模板。 |
shape |
circle、ellipse、capsule |
分别为圆形、椭圆形、胶囊形碰撞预设;玉勇用circle,还需配合半径、高度和比例。 |
size |
very_small、small、medium、large、very_large |
五个内部体型档位;玉勇用small,不等于五个可直接显示在兵牌上的官方体型名称。 |
gradient_strategy |
ignore、ignore_and_disable_banking、rotation、rotation_x |
原版地形适应策略;玉勇用ignore。后两项涉及旋转适应,具体资产若与模板不同须实测,不自行混用。 |
如果只是增加生命值和杀伤,保留这些预设即可。速度、质量、碰撞形状和坡度适应属于动态表现,变更时要检查走坡、转向、冲锋和死亡状态,不能用数值能保存作为完成证据。
抗硬直、软碰撞和投射物命中体积
| 字段 | 含义与使用要点 |
|---|---|
hit_reactions_ignore_chance |
忽略普通受击反应的概率或机会参数。它不减少伤害,只影响反应。 |
knock_interrupts_ignore_chance |
忽略击倒、击退等打断反应的机会参数。大型实体通常与步兵不同。 |
soft_collision_offset_z |
软碰撞在垂直方向的偏移。没有同类模板时不要自行调试。 |
can_climb_ladder_and_stair_pipes |
是否能使用梯子和城墙楼梯等路径。勾选还需要模型、动画和寻路适配。 |
projectile_intersection_radius_ratio |
投射物命中判定半径相对实体半径的比例。过大容易隔空命中,过小会穿模未命中。 |
projectile_penetration_resistance |
实体对投射物穿透的阻力。它与投射物自己的穿透规则共同决定结果。 |
projectile_penetration_speed_change |
投射物穿过该实体后的速度变化。它不是直接伤害减免。 |
光环、追踪、特效筛选与投射施法
| 字段 | 含义与使用要点 |
|---|---|
aura_vfx |
实体常驻或相关光环特效入口。引用的特效资产必须存在。 |
porthole_camera |
实体层的头像镜头覆盖入口。与主单位头像配置冲突时应沿原版模板核对。 |
min_tracking_ratio |
追踪或朝向动画的最小比例参数。当前 Schema 没有公开完整公式,应复制同骨架模板。 |
max_tracking_ratio |
追踪或朝向动画的最大比例参数。与最小值成组使用。 |
vfx_filter_id |
实体特效筛选器标识,用于特定 VFX 过滤。没有配套特效时保持空值。 |
can_cast_projectile |
实体是否能执行特定投射物施放行为。它不会单独创建技能、远程武器或动画事件。 |
porthole_composite_scene |
实体层的头像合成场景入口。 |
血液、肢解、镜头震动与移动配置
| 字段 | 含义与使用要点 |
|---|---|
combat_camera_shake |
该实体战斗动作触发的镜头震动配置。强度和触发仍取决于配套数据。 |
has_blood |
实体是否使用血液表现。勾选需要相应血液与材质资源。 |
can_dismember |
实体是否允许肢解。没有正确模型分件和动画支持时不要强行开启。 |
dismember_arms_alive_hp_ratio |
实体仍存活时允许手臂肢解的生命比例阈值。应复制同结构模型。 |
dismember_head_alive_hp_ratio |
实体仍存活时允许头部肢解的生命比例阈值。 |
jump_attack_chance |
使用跳跃攻击的机会参数。没有跳跃攻击动画时修改无效或表现异常。 |
locomotion_constants |
引用battle_entity_locomotion_constants_tables.key,选择与实体尺寸有关的一组移动配置;图中为small_entity。这不是奔跑速度数值,调整移动表现时需同时检查这组配置与实体的速度、转向设置。 |
碰撞造成的击飞、动画层级和死亡碰撞
| 字段 | 含义与使用要点 |
|---|---|
enable_engine_crew_turn_in_movement_direction |
是否让战场引擎乘员朝移动方向转身,主要供火炮和载具乘员使用。 |
dealt_collision_knocked_flying_threshold_multiplier |
该实体碰撞别人时造成“击飞”所用阈值的倍率。它不是被击飞抗性。 |
dealt_collision_knocked_down_threshold_multiplier |
碰撞造成“击倒”所用阈值的倍率。 |
dealt_collision_knocked_back_threshold_multiplier |
碰撞造成“击退”所用阈值的倍率。 |
anim_lod_distance_multiplier |
动画细节层级切换距离倍率。过度提高会增加大量单位同时使用高细节动画的性能成本。 |
size_for_animation_lod |
动画 LOD 采用的体型分类,可与战斗实体size不同。 |
leaves_collision_when_dies |
死亡后是否仍保留碰撞。大型尸体和普通步兵可能使用不同设置。 |
stop_before_turn |
是否在转身前先停止移动。它会显著改变大型实体或载具转向手感。 |
近战武器:melee_weapons_tables
melee_weapons_tables只负责武器本身的基础武器杀伤、破甲武器杀伤、加成、长度、溅射、攻击间隔和接触效果。近战攻击、近战防御、冲锋加成和领导力仍在land_units_tables。
伤害、目标加成、长度与类型
| 字段 | 含义与使用要点 |
|---|---|
key |
近战武器唯一 Key,由land_units_tables.primary_melee_weapon引用。 |
damage |
单次武器命中的基础武器杀伤。它会受护甲等规则影响。 |
ap_damage |
单次武器命中的破甲武器杀伤。面板“武器威力”通常综合基础与破甲部分。 |
bonus_v_infantry |
对步兵类目标的额外伤害与命中加成入口。最终显示和结算由游戏规则组合处理。 |
bonus_v_large |
对非步兵实体类别的加成。不要只按兵牌上是否显示“大型”图标理解;选择模板时要检查实体分类。 |
weapon_length |
武器接触长度或攻击距离相关参数。它必须与攻击动画、模型武器长度和碰撞体匹配。 |
melee_weapon_type |
近战武器规则类型,例如剑、矛、斧或骑枪等。它会参与动画、规则或效果选择,不只是文字标签。 |
audio_type |
近战武器命中或挥舞的音频类型。它不改变伤害。 |
splash_attack_target_size |
溅射攻击允许覆盖的目标体型上限或分类。它与实体size配合决定哪些目标能被同一击波及。 |
溅射、建筑、点燃、魔法与接触效果
原版近战武器的melee_weapon_type实际使用axe、knife、lance、long_spear、spear、sword六项。它们是武器规则分类,不是所有模型武器外观的完整词典;原版怪兽和长柄武器也可能复用其中某一项。玉勇直接保留sword,玉勇枪骑兵保留其骑枪模板的lance。audio_type另有独立词典,不能因为两列在剑模板里同为sword就假定其他武器也同名。
splash_attack_target_size引用同一组五档实体体型;当前原版武器实际使用空值、small、medium、large、very_large。普通玉勇剑为空且splash_attack_max_attacks = 1。做范围攻击应整体对照同类原版武器的目标档位、最多目标数和动画;不要单凭“非常大”就认定一次能打到任意数量的敌人。
| 字段 | 含义与使用要点 |
|---|---|
splash_attack_max_attacks |
一次攻击最多能对多少个目标分配溅射攻击。它不是把完整武器伤害无条件复制给每个目标。 |
splash_attack_power_multiplier |
溅射攻击力量或伤害分配相关倍率。应复制体型和动画相近的怪兽或武器模板。 |
building_damage_multiplier |
对建筑的伤害倍率。能否攻击建筑还受单位和目标规则影响。 |
ignition_amount |
点燃量,并为相应攻击提供火焰上下文。视觉上有火焰不代表该值必须大于0。 |
is_magical |
是否把这件武器的攻击标记为魔法攻击。它与is_spell不同。 |
contact_phase |
近战命中时应用的接触效果阶段,引用special_ability_phases_tables.id。完整链见后文。 |
碰撞攻击、攻击间隔、生命比例伤害与法术标记
| 字段 | 含义与使用要点 |
|---|---|
collision_attack_max_targets |
碰撞攻击一次最多作用的目标数,主要供冲撞、战车或特定大型实体使用。 |
collision_attack_max_targets_cooldown |
碰撞攻击达到目标上限后再次允许结算的冷却参数。它不是普通挥砍的攻击间隔。 |
melee_attack_interval |
武器基础近战攻击间隔。把它改得比动画循环更短,不保证单位能按该速度可靠出手。 |
scaling_damage |
引用scaling_damage_tables.key,接入按目标生命值比例计算的伤害规则。比例取当前生命值还是最大生命值,要继续查看所引用的记录;这里填规则 Key,不直接填伤害值或百分数。本例为空。 |
is_spell |
武器伤害是否按法术伤害上下文处理。魔法攻击与法术伤害是两个不同判定。 |
基础武器杀伤、破甲武器杀伤、火焰、魔法和法术不要混淆
| 概念 | 字段 | 说明 |
|---|---|---|
| 基础武器杀伤 | damage |
会按护甲等常规规则处理。 |
| 破甲武器杀伤 | ap_damage |
绕过大部分护甲,但仍可能受到其他抗性和规则影响。 |
| 火焰攻击 | ignition_amount |
提供点燃与火焰上下文。 |
| 魔法攻击 | is_magical |
用于魔法攻击判定。 |
| 法术伤害 | is_spell |
用于法术抗性等法术伤害判定。 |
| 接触状态 | contact_phase |
命中后额外应用一个能力阶段。 |
护甲与盾牌
护甲类型:unit_armour_types_tables
| 字段 | 含义与使用要点 |
|---|---|
key |
护甲类型唯一 Key,由land_units_tables.armour引用。 |
armour_value |
决定面板护甲强度的数值。它参与基础武器杀伤、基础远程杀伤等基础杀伤部分的护甲减免,但不是固定百分比减伤;最终表现由游戏护甲公式决定。 |
audio_type |
护甲被击中时使用的材质音效类型,例如布甲、链甲或板甲上下文。 |
如果只想让新单位使用与模板完全相同的护甲强度和音效,可以继续引用原版护甲记录。只有需要不同护甲强度或材质音效时才复制新记录。
当前护甲记录使用的audio_type有body、bone、chainmail、heavy_metal、leather、plate,分别对应身体、骨质、链甲、重金属、皮革和板甲的声音上下文,属于材质说明。可直接用玉勇的wh2_main_chainmail_70作为“70 护甲、chainmail 音效”的起点。改变数值时复制为新 Key,保留相符的音效;不要把70直接填入陆战表的armour引用列。
盾牌类型:unit_shield_types_tables
| 字段 | 含义与使用要点 |
|---|---|
key |
盾牌类型唯一 Key,由land_units_tables.shield引用。 |
shield_defence_value |
盾牌防御相关数值。不要在没有原版对照的情况下把它直接解释成面板近战防御加成。 |
shield_armour_value |
盾牌护甲相关数值。当前实际用途应以同类原版记录和游戏测试为准。 |
missile_block_chance |
盾牌从有效方向格挡远程攻击的概率。35通常表示35%,但目标朝向、投射物类别和其他规则仍会影响是否可格挡。 |
audio_type |
盾牌受击音效类型。 |
盾牌的远程格挡不是全方向的固定减伤。要区分有效格挡方向、投射物是否允许格挡,以及命中时的概率判定;提高missile_block_chance不等于免疫所有远程攻击。模型拿着盾牌属于外观,不能替代盾牌记录及单位引用的配置;反过来,修改这里的数值也不会自动给模型加上一面盾牌。
盾牌audio_type当前使用wood、metal、inaudible_shield及空值。玉勇的wh_missile_block_35_wood为missile_block_chance = 35、audio_type = wood,两个盾牌内部数值均为0。木盾换成金属盾外观时要一并考虑音效;无盾单位优先沿用无盾模板的shield = none,不要为了清空显示随意删除被引用的原版盾牌定义。
单位属性
单位属性适合表达unbreakable、causes_fear、causes_terror、stalk、snipe、immune_to_psychology、fatigue_immune等由引擎识别的离散特性。它不是任意填写文本就能创造新机制的系统。
属性组:unit_attributes_groups_tables
| 字段 | 含义与使用要点 |
|---|---|
group_name |
属性组唯一 Key,由land_units_tables.attribute_group引用。一个属性组可以连接多项属性,也可以被多个单位共享。 |
属性与属性组连接:unit_attributes_to_groups_junctions_tables
| 字段 | 含义与使用要点 |
|---|---|
attribute |
单位属性 Key,引用unit_attributes_tables.key。 |
attribute_group |
接收该属性的属性组 Key。为同一组建立多行即可组合多项属性。 |
属性定义:unit_attributes_tables
| 字段 | 含义与使用要点 |
|---|---|
key |
引擎识别的属性 Key。随意创建一个新名字不会让引擎自动产生新行为。普通制作应复用原版已存在的 Key。 |
bullet_text |
该属性在单位信息中的说明文本,属于本地化字段。 |
imued_effect_text |
属性被赋予时的说明文本。字段名中的imued是当前数据结构中的拼写,不要自行改名。 |
removed_effect_text |
属性被移除或抵消时的说明文本,属于本地化字段。 |
当前 RPFM 主表截图只显示key,本地化字段会按 Schema 的本地化结构处理。不要把中文说明直接写进key。
属性 Key 与官方说明
下表列出当前unit_attributes_tables的全部 83 个 Key,名称和说明按同一 Loc Key 核对官方英、繁中及简中文本后使用简中写法。它们可用于属性组的attribute列;官方说明解释预期用途,实际生效仍需要相应实体、动作和机制支持。先按目标效果在这张表选 Key,再在属性组连接表为自己的组添加一行;不要为已有属性另造一个近似英文名。
attribute |
官方简中名称 | 官方说明 | 未找到上述入口引用 |
|---|---|---|---|
always_flying |
永远飞行 | 此部队会永远飞行,无法落地 | 存在引用 |
armoured_vehicle |
定向格挡 | 面对来自不同方向的实弹射击时,此部队的远程格挡概率会各不相同 / 各方向对应的格挡概率如下: / 前方:1.0x / 侧方:0.5x / 后方:0.1x | 存在引用 |
ballistic_plating |
防弹板甲 | 该装置采用了专门设计的重型钢板以抵挡炮弹的攻击,即使是直接的火炮射击也能偏转开去! | 存在引用 |
boar_cavalry |
野猪骑兵 | 在技能指定时,此部队视为野猪骑兵 | 存在引用 |
bound_fire_daemon |
绑定火焰恶魔 | 绑定火焰恶魔不会溃逃,但他们会在领导力崩溃时受到伤害 / 绑定火焰恶魔同时拥有: / 物理抗性 / 火焰抗性 / 恐惧与惊骇免疫 / 绑定火焰恶魔也会在部队拥有大部分生命值时赋予其永不战败属性 | 存在引用 |
can_block_missiles_360 |
全方位远程防御 | 无论此部队朝向如何,它都可以抵御来自任意方向的弹丸 | 存在引用 |
can_siege |
攻城者 | 这支部队可以直接攻击城门或城墙。你无需等待攻城塔或攻城锤的建造,便可对城镇发动攻击 | 未找到上述入口引用 |
cannot_die |
不灭 | 此部队的兵模可以受到伤害,但不会死亡 | 存在引用 |
cant_run |
徐行 | 这支部队无法奔跑,只能用行走的方式在战场上移动 | 存在引用 |
causes_fear |
引发恐惧 | 这支部队可以对所有敌军部队引发恐惧,令附近敌军遭受领导力惩罚。同时这支部队自身也对恐惧效果免疫。恐惧惩罚不能叠加 | 存在引用 |
causes_terror |
惊骇敌军 | 这支部队可惊骇敌军,令其近战目标溃逃一段时间。对于能够造成惊骇的部队来说,其自身也将免疫恐惧与惊骇效果 | 存在引用 |
charge_defense |
专擅抵御冲锋 | 当阵列齐整时,这支部队在对抗敌军冲锋时会无视其所有的冲锋加成 | 存在引用 |
charge_defense_vs_large |
抵御冲锋(大型部队) | 当阵列齐整时,这支部队在对抗大型部队冲锋时会无视其所有的冲锋加成 | 存在引用 |
charge_reflection |
冲锋反制 | 当阵列齐整时,这支部队可以对冲锋而来的敌军造成额外伤害 | 存在引用 |
construct |
构装体 | 构装体不会溃逃,但会在领导力崩溃时受到伤害 / 构装体同时拥有: / 恐惧与惊骇免疫 / 构装体可以由诸如古墓王的古墓技师等特殊人物恢复生命值并提升属性 | 存在引用 |
contempt |
蔑视异类 | 只有目睹同样拥有蔑视异类属性的友方部队溃逃时,这支部队的领导力才会受到影响 | 存在引用 |
daemonic |
恶魔 | 恶魔部队不会溃逃,但会在领导力低下时受到伤害 / 恶魔部队同时拥有: / 物理抗性 / 恐惧与惊骇免疫 | 存在引用 |
devastating_flanker |
致命迂回者 | 拥有此属性的兵模在从敌方背后或侧面攻击时,获得双倍的冲锋加成 | 存在引用 |
disciplined |
训练有素 | 这支部队的领导力不会受到领主阵亡的影响,在被击溃后也会更快地重整过来. - NOT WH | 未找到上述入口引用 |
elemental |
元素生物 | 元素生物部队不会溃逃,但会在领导力崩溃时受到伤害 / 元素生物同时拥有: / 物理抗性 / 恐惧与惊骇免疫 | 存在引用 |
encourages |
激励友军 | 这支部队可以提升周围友军的领导力。当友军同时位于拥有此特性的部队与领主的影响范围内时,其增益效果取此二者的最大值 | 存在引用 |
executor |
刽子手 | 拥有刽子手技能的部队可以在战斗中处决生命值低于20%的部队 | 存在引用 |
expendable |
炮灰 | 其他部队的领导力不会因目击友方炮灰部队溃逃而降低,除非这支部队也是炮灰部队 | 存在引用 |
fanatic |
狂热者 | 在技能指定时,此部队视为狂热者 | 存在引用 |
fatigue_immune |
体力充沛 | 纵使执行的是最令人筋疲力尽的行动,这支部队也永远不会损失体力 | 存在引用 |
fatigue_res |
体力旺盛 | 当进行战斗等消耗体力的活动时,这支部队的体力受到的影响会比较小 | 未找到上述入口引用 |
flanking_immune |
免疫侧袭 | 此部队不会在受到侧袭时受到惩罚 | 存在引用 |
flying |
可以飞行 | 此部队可以飞行 | 存在引用 |
force_rally |
重整 | 立即激励部队进行重整 | 存在引用 |
formed_attack |
保持阵型 | 当进行近战时,这支部队会尽量保持阵型,从而少量增加近战防御 | 存在引用 |
glorious_charge |
荣光冲锋 | 当冲入敌方部队时: / 冲锋加成持续时间翻倍 / 敌方部队受到等同于受到侧袭时的领导力惩罚 | 存在引用 |
goblin_infantry |
地精步兵 | 在技能指定时,此部队视为地精步兵 | 存在引用 |
gorger |
猎食者 | 在使用技能时,此部队将视为猎食者 | 存在引用 |
guerrilla_deploy |
先锋部署 | 这支部队可以在部署区域外进行部署 | 存在引用 |
gunship |
炮艇机 | 此部队完全通过远程攻击造成伤害,没有任何近战攻击手段 / 炮艇机部队同时拥有: / 可从正上方攻击地面目标 / 可远程攻击飞行目标 / 拥有弹药无限的载荷 | 存在引用 |
hellforged |
地狱铸造 | 此部队可以在战斗中通过恶魔铁匠的重铸技能恢复 | 存在引用 |
hide_forest |
于森林中隐蔽 | 这支部队可以隐蔽在森林里,除非敌人走到近前,否则他们不会被发现 | 存在引用 |
ignore_imbue_contact_effects_ally |
忽略来自盟友接触效果的伤害、治疗与属性 | 该条官方文本未附额外说明。 | 未找到上述入口引用 |
ignore_imbue_contact_effects_enemy |
免疫接触效果 | 拥有这一属性的兵模可以无视敌方的接触效果,例如中毒 | 存在引用 |
ignore_trees |
林地居民 | 此部队可以穿越树林 | 存在引用 |
immune_to_psychology |
心理免疫 | 这支部队免疫心理攻击(恐惧与惊骇) | 存在引用 |
invulnerable |
无敌 | 此部队不会受到伤害 | 存在引用 |
invulnerable_to_effects_ally |
免疫友方伤害效果 | 该条官方文本未附额外说明。 | 未找到上述入口引用 |
invulnerable_to_effects_enemy |
免疫敌方伤害效果 | 该条官方文本未附额外说明。 | 未找到上述入口引用 |
knight |
骑士 | 目睹拥有农民属性的友方部队溃逃并不会影响这支部队的领导力 | 存在引用 |
kroxigor |
巨蜥 | 拥有巨蜥属性的部队会在周围存在拥有灵蜥属性的部队时获得下列加成: / 增加武器威力 | 存在引用 |
mark_khorne |
恐虐印记 | 拥有恐虐印记的部队会获得下列效果: / 狂暴被动技能 / 增加法术抗性 / 增加护甲强度 / 降低近战防御 | 存在引用 |
mark_nurgle |
纳垢印记 | 拥有纳垢印记的部队会获得下列效果: / 淬毒效果 / 增加生命值 / 增加近战防御 / 降低近战攻击 | 存在引用 |
mark_slaanesh |
色孽印记 | 拥有色孽印记的部队会获得下列效果: / 心理免疫属性 / 地形适性属性 / 增加物理抗性 / 增加移动速度 | 存在引用 |
mark_tzeentch |
奸奇印记 | 拥有奸奇印记的部队会获得下列效果: / 魔屏 / 魔法攻击 | 存在引用 |
melee_disabled |
无法近战 | 该条官方文本未附额外说明。 | 未找到上述入口引用 |
moulder_monster |
腐坏氏族怪兽 | 这是由腐坏氏族创造的部队。捕兽师与『不洁者』斯洛特能够彻底激发它的战斗潜能,并在战斗中恢复它 | 存在引用 |
mounted_fire_move |
移动射击 | 这支部队可以在移动的同时进行射击 | 存在引用 |
nasty_skulker |
卑鄙潜伏者 | 在技能指定时,此部队视为卑鄙潜伏者 | 存在引用 |
night_goblin_archer |
夜地精弓箭手 | 在技能指定时,此部队视为夜地精弓箭手 | 存在引用 |
ogre_charge |
食人魔冲锋 | 当进攻阵列齐整的抵御冲锋部队时,这支部队只会损失一半的冲锋加成 | 存在引用 |
ogre_charge_upgraded |
巨力食人魔冲锋 | 当进攻阵列齐整的抵御冲锋部队时,这支部队只会损失四分之一的冲锋加成 | 存在引用 |
orc_infantry |
兽人步兵 | 在技能指定时,此部队视为兽人步兵 | 存在引用 |
peasant |
农民 | 当拥有骑士属性的部队出现在附近时,拥有农民属性的部队会获得领导力加成 | 存在引用 |
rampage |
癫狂 | 癫狂中的部队无法控制,并会自动攻击最近的敌人 / 当附近没有敌人时,癫狂的部队则会漫无目的地乱跑 | 存在引用 |
randomises_spells_on_cast |
秘术卷轴 | 当该部队施放一个法术时,其所有法术都会被随机替换为另一个法术 | 存在引用 |
revealed |
现身 | 此部队对敌方永久可见,无论是否处于视野范围之内 / 现身的部队不受下列属性影响: / 于森林中隐蔽 / 潜行 / 隐蔽高手 | 存在引用 |
shoot_disabled |
无法射击 | 该条官方文本未附额外说明。 | 未找到上述入口引用 |
silenced |
沉默 | 此部队无法使用技能或施放法术 | 存在引用 |
skink |
灵蜥 | 拥有灵蜥属性的部队会在周围存在拥有巨蜥属性的部队时获得下列加成: / 引发恐惧 | 存在引用 |
slayer |
屠夫 | 这是一支屠夫部队。屠夫的武器威力永远不会在战斗中下降 | 存在引用 |
snipe |
狙击 | 这支部队会在射击时保持隐蔽 | 存在引用 |
spell_mastery |
精气之风精通 | 当军中一支以上的部队拥有此技能时,所施放的法术威力会显著增加 | 存在引用 |
spider |
蜘蛛 | 在技能指定时,此部队视为蜘蛛 | 存在引用 |
squig |
史奎格 | 在技能指定时,此部队视为史奎格 | 存在引用 |
squig_herd |
史奎格兽群 | 在技能指定时,此部队视为史奎格兽群 | 存在引用 |
stalk |
潜行 | 这支部队在任何地形上移动时都会保持隐蔽 | 存在引用 |
strider |
地形适性 | 这支部队不受因地形导致的速度与战斗惩罚 | 存在引用 |
tiger_warrior |
虎人战士 | 一支虎人战士部队获得: / 移动速度提高 / 冲锋加成提高 / 『凶暴伏击』技能 | 存在引用 |
troll |
巨魔 | 在技能指定时,此部队视为巨魔 | 存在引用 |
unbreakable |
永不战败 | 这支部队不会承受任何有关领导力下降的惩罚,并且永远不会溃逃 | 存在引用 |
undead |
亡灵 | 亡灵部队不会溃逃,但会在领导力崩溃时受到伤害 / 亡灵部队同时拥有: / 恐惧与惊骇免疫 / 亡灵部队可以由诸如吸血鬼伯爵的亡灵法师等特殊人物恢复生命值 | 存在引用 |
underground |
地下 | 恐惧之嘴正处于地下。它无法被攻击,但自身也无法攻击 | 存在引用 |
unspottable |
隐蔽高手 | 如果这支部队可以在当前位置隐蔽,那么只有当敌人距离十分接近时才能发现他们 | 存在引用 |
unyielding_assault |
不挠袭击 | 此部队的近战攻击不会在战斗中下降 | 存在引用 |
wallbreaker |
破墙者 | 允许部队使用近战攻击摧毁城墙。此属性也会对建筑造成+50%的伤害加成 | 存在引用 |
yang |
阳 | 此部队的武道宁和为阳 | 存在引用 |
yin |
阴 | 此部队的武道宁和为阴 | 存在引用 |
“存在引用”表示在当前陆战单位使用的属性组、阶段属性效果或单位集合属性连接中找到该 Key;它不等于所有目标上都已经做过游戏测试。八项没有在这些入口找到引用:can_siege、disciplined、fatigue_res、ignore_imbue_contact_effects_ally、invulnerable_to_effects_ally、invulnerable_to_effects_enemy、melee_disabled、shoot_disabled。
其中disciplined的官方 Loc 本身带NOT WH备注,因此这里只保留原文供辨认,不把它作为当前战锤普通单位的推荐属性。初次添加属性优先选择已有同类原版使用记录的项,再沿该单位的完整配置比较。
给一个单位增加属性的安全做法
- 查找单位当前
attribute_group。 - 反查该组被哪些单位共用。
- 如果只改一个单位,复制属性组并改成自己的 Key。
- 在连接表中复制该组原有属性行,保留需要的属性。
- 添加目标原版属性 Key。
- 让自己的
land_units_tables.attribute_group指向新组。 - 进战斗验证属性是否出现、是否有对应行为和说明。
不要直接向一个被几十个原版单位共用的属性组添加unbreakable,否则这些单位可能全部获得“永不战败”。
阵型与间距
“单位间距”“军队预设阵型”和“技能特殊阵型”是三套不同概念:
unit_spacings_tables控制一队兵内部相邻实体怎样站位。formations_tables控制部署或界面中的军队级预设阵型。special_abilities_specific_formation_types_tables只是技能系统可识别的特殊阵型类型之一,仍需要完整技能链。
单位间距:unit_spacings_tables
| 字段 | 含义与使用要点 |
|---|---|
key |
间距记录唯一 Key,由land_units_tables.spacing引用。 |
close_formation_spacing_horizontal |
紧密阵型中相邻实体的横向间距。 |
close_formation_spacing_vertical |
紧密阵型中前后排实体的纵向间距。 |
close_formation_spacing_variation |
紧密阵型的随机间距变化。数值越大通常越不整齐。 |
loose_formation_spacing_horizontal |
松散阵型横向间距。 |
loose_formation_spacing_vertical |
松散阵型纵向间距。 |
loose_formation_spacing_variation |
松散阵型的随机间距变化。 |
dismounted_close_formation_spacing_horizontal |
下马后紧密阵型横向间距。只对会在相关状态下使用下马间距的单位有意义。 |
dismounted_close_formation_spacing_vertical |
下马后紧密阵型纵向间距。 |
dismounted_close_formation_spacing_variation |
下马后紧密阵型随机变化。 |
dismounted_loose_formation_spacing_horizontal |
下马后松散阵型横向间距。 |
dismounted_loose_formation_spacing_vertical |
下马后松散阵型纵向间距。 |
dismounted_loose_formation_spacing_variation |
下马后松散阵型随机变化。 |
routing_space_variation |
单位溃逃时实体间距的变化。 |
is_chaotic_formation |
是否使用更混乱、不规则的站位方式。它不是溃逃开关。 |
testudo_horizontal_spacing |
龟甲阵横向间距。没有龟甲阵技能和动画时,这个数值不会自动提供龟甲阵。 |
testudo_vertical_spacing |
龟甲阵纵向间距。 |
shield_wall_horizontal_spacing |
盾墙阵横向间距。 |
shield_wall_vertical_spacing |
盾墙阵纵向间距。 |
间距太小会使模型、武器和盾牌互相穿插,也可能让大量实体争抢同一位置;间距太大则会让队列松散、近战接敌慢、转向和穿门表现异常。应同时检查模型体宽、battle_entities_tables.radius、武器长度、动画和队列深度。
军队预设阵型:formations_tables
当前从
游戏文件打开的原版表只有图中的两条test记录。下面介绍的是字段职责,不是已经验证可用的战锤 III 阵型制作步骤。不能因为表中有图标、海军标记或排序字段,就认定对应功能在当前游戏里仍然可用;仅新增一条记录也不能保证出现阵型按钮。
| 字段 | 含义与使用要点 |
|---|---|
formation |
阵型唯一 Key。 |
icon_name |
阵型按钮或界面使用的图标文件名。资产必须存在。 |
is_army |
是否适用于陆军。 |
is_naval |
是否适用于海军。 |
order |
阵型在界面中的排序。 |
name |
阵型显示名称,本地化字段。 |
description |
阵型说明,本地化字段。 |
tooltip |
阵型悬停提示,本地化字段。 |
阵型与亚文化连接:formations_to_subcultures_tables
| 字段 | 含义与使用要点 |
|---|---|
formation |
引用formations_tables.formation。 |
sub_culture |
允许使用该预设阵型的亚文化。把阵型连接到某个兵种、兵营或派系并不是这张表的职责。 |
技能使用的特殊阵型类型
special_abilities_specific_formation_types_tables只有key,保存技能系统识别的特殊阵型类型,例如盾墙、方阵或楔形阵等。这个 Key 仍需被对应的特殊技能、行为、部队技能连接、动画和界面数据引用。
该表完整保留 13 项:cantabrian_circle、cavalry_testudo_formation、diamond_formation、flying_wedge_formation、pike_phalanx_formation、pike_square_formation、shield_screen_formation、shield_wall_formation、square_formation、stand_and_fight_formation、testudo_defensive_formation、testudo_formation、wedge_formation。本次原版unit_special_abilities_tables中实际能找到直接引用的只有testudo_formation和wedge_formation:前者可从wh3_dlc25_unit_formation_shieldwall查起,后者从wh_dlc07_unit_formation_lance查起。其余定义不能仅凭名字当成《战锤 III》已可用的制作方案。
在这张表新增一行,不会自动给单位添加阵型按钮;在
unit_spacings_tables填写盾墙间距,也不会自动生成盾墙技能。要制作可切换的战斗阵型,应先找到一个机制相同的原版阵型单位,沿它的完整技能链复制。
接触效果
接触效果是在近战武器命中后给目标应用一个special_ability_phases_tables阶段。它可以降低速度、攻击、防御或抗性,也可以赋予沉默、恐惧等属性,还能连接特效、音效和界面提示。
land_units_tables.primary_melee_weapon
↓
melee_weapons_tables.contact_phase
↓
special_ability_phases_tables.id
├─ 数值变化:special_ability_phase_stat_effects_tables
├─ 属性变化:special_ability_phase_attribute_effects_tables
├─ 视觉显示:special_ability_phase_displays_tables
└─ 附加界面信息:special_ability_phases_to_additional_ui_effects_junctions_tables
远程投射物和爆炸也能应用接触阶段,但入口分别在projectiles_tables.contact_stat_effect和爆炸表的接触效果字段。本文重点讲近战武器入口;远程入口见《远程武器详解》。
阶段本体:special_ability_phases_tables
| 字段 | 含义与使用要点 |
|---|---|
id |
阶段唯一 Key,由近战武器、投射物、技能和其他系统引用。 |
duration |
阶段持续时间。-1等特殊值在部分原版记录中表示持续型逻辑,必须按同类模板理解。普通接触减益通常使用有限秒数。 |
effect_type |
阶段的正面或负面类型,例如positive、negative。它影响界面和部分规则分类,不会自动决定具体数值。 |
requested_stance |
阶段请求目标采用的特殊姿态。没有对应动画和行为时留空。 |
cant_move |
阶段生效时禁止玩家给目标下达移动或攻击命令;实体仍可能射击、用技能或对近战作出反应。 |
freeze_fatigue |
控制游戏中的体力状态:阶段期间把疲劳累积量固定为0,维持未疲劳状态;不是锁住单位当前已经下降的体力状态。 |
fatigue_change_ratio |
每秒按最大疲劳量的比例改变疲劳累积,进而影响体力。Schema 示例中-0.25表示每秒减少相当于最大疲劳量25%的累积,0.1表示增加10%。正值会更疲劳,不能把它理解成“每秒恢复相同比例的体力”。 |
inspiration_aura_range_mod |
对鼓舞或相关光环范围的修正。没有光环时通常没有可见效果。 |
ability_recharge_change |
对目标技能冷却时间的改变;Schema 说明负值减少冷却时间,正值增加冷却时间。 |
resurrect |
是否允许阶段执行复活相关逻辑。它需要与生命变化频率、数量和目标结构一起配置。 |
hp_change_frequency |
尝试应用生命变化的间隔,单位为秒。0通常表示不使用周期生命变化。 |
heal_amount |
《战锤 III》的生命恢复比例参数,不要照旧 Schema 注释按固定生命点填写。例如当前原版尼科之咒使用0.008,按比例为0.8%,不是每个士兵恢复0.008点。还要结合hp_change_frequency、持续时间、治疗上限和修正效果验收,详见《法术详解》的原版对照。 |
damage_amount |
阶段周期性造成的伤害量。它与近战武器本次命中伤害分开结算。 |
max_damaged_entities |
每次生命伤害最多作用的实体数量。对多实体单位和单体单位应分别选择模板。 |
mana_regen_mod |
魔法之风每秒恢复量的修正。它不是直接减少某个法术的施放消耗。 |
mana_max_depletion_mod |
修改魔法之风系统的最大耗竭参数。Schema 没有给出它在当前游戏中的完整结算关系,不能直接当作法术消耗或储量上限;沿用同类原版模板并实测。 |
imbue_magical |
阶段是否让目标的攻击获得魔法攻击属性。 |
imbue_ignition |
阶段是否给目标攻击附加点燃或火焰上下文。 |
imbue_contact |
阶段生效期间,再给目标的攻击附加另一个接触阶段。它引用另一条special_ability_phases_tables.id。避免互相引用形成循环。 |
phase_display |
阶段显示记录 Key,引用special_ability_phase_displays_tables.key。 |
phase_audio |
阶段音效 Key,引用audio_ability_phases_tables.key。 |
is_hidden_in_ui |
是否不在战斗界面显示该阶段。隐藏只影响显示,不代表效果不结算。 |
affects_allies |
阶段能否作用于友军。近战负面接触效果通常应核对这一项,避免错误伤害己方。 |
affects_enemies |
阶段能否作用于敌军。只勾友军而未勾敌军会让常规减益无法作用于敌人。 |
replenish_ammo |
阶段开始时按单位最大弹药的百分比补充弹药;可以使用负值消耗弹药。 |
composite_scene_group |
阶段开始时触发的Composite Scene组,用来连接相关场景表现资源。没有使用这类资源时留空。 |
spreading |
传播规则 Key,引用special_ability_spreadings_tables,用于能够在单位之间扩散的阶段。 |
freeze_recharge |
阶段生效时暂停目标技能的冷却计时,技能在这段时间内不会继续冷却。它与直接增减冷却时间的ability_recharge_change分别设置。 |
barrier_heal_amount |
每次hp_change_frequency触发时,按最大魔屏生命值的比例恢复魔屏。 |
remove_magical |
是否移除目标的魔法攻击属性。它与imbue_magical方向相反。 |
execute_ratio |
当目标生命比例等于或低于该值时立即处决目标。0通常表示关闭;误填高值会造成异常秒杀。 |
阶段的玩家可见名称属于本地化字段。截图没有显示并不代表效果无法显示;需要按 RPFM 的本地化结构提供对应文本。
阶段数值效果:special_ability_phase_stat_effects_tables
| 字段 | 含义与使用要点 |
|---|---|
phase |
所属阶段 Key,引用special_ability_phases_tables.id。同一阶段可以建立多行,修改多项数值。 |
stat |
要修改的战斗数值,引用modifiable_unit_stats_tables.stat_key。不要自行发明一个名称。 |
value |
修改量。它怎样解释取决于how。 |
how |
运算方式,常见为add和mult。add直接增减,mult使用倍率;例如0.85表示保留原值的85%,不是增加85%。 |
原版wh_main_unit_contact_poison持续10秒、属于负面阶段、只影响敌军。它对基础远程杀伤、破甲远程杀伤、移动速度、基础武器杀伤和破甲武器杀伤分别使用0.85乘算。这说明“中毒”并不是一条笼统的-15记录,而是五行明确的数值效果。
图中的中毒阶段damage_amount和hp_change_frequency都是0。这个模板通过下面的数值效果削弱目标,并不是按秒扣血;不要把其他游戏中“中毒必定持续掉血”的理解直接套过来。要制作持续伤害,应另找实际使用生命变化字段的同类原版阶段,再按目标实体数量和触发间隔验证。
阶段属性效果:special_ability_phase_attribute_effects_tables
| 字段 | 含义与使用要点 |
|---|---|
phase |
所属阶段 Key。 |
attribute |
要改变的单位属性 Key,引用unit_attributes_tables.key。 |
attribute_type |
属性方向。当前 Schema 说明positive表示受影响者拥有该属性,negative表示受影响者抵消该属性。 |
原版wh2_dlc11_unit_contact_disrupted持续10秒,对物理抗性使用add -10,同时以positive方向赋予silenced。这是“数值减益加沉默属性”的完整示例,但它只是可复制的机制模板,不是所有接触效果都要同时建立两张子表。
阶段显示效果:special_ability_phase_displays_tables
| 字段 | 含义与使用要点 |
|---|---|
key |
显示记录唯一 Key,由阶段phase_display引用。 |
banner_vfx |
引用particle_effects_tables.key,在受阶段影响的部队旗帜底部播放特效。它与作用在各个实体身上的entity_vfx分别配置。 |
active_vfx |
阶段激活时使用的特效。 |
entity_vfx |
附着在单位实体上的特效。 |
entity_vfx_attach_type |
实体特效的挂点或附着类型,例如顶部、底部等上下文。 |
use_new_vfx_scaling |
是否使用新的 VFX 缩放方式。应与原版同类特效保持一致。 |
显示记录只负责视觉。接触效果有数值但没有phase_display时仍可能正常结算;反过来,只有特效而没有数值或属性子记录,也不会自动产生减益。
附加界面效果连接
special_ability_phases_to_additional_ui_effects_junctions_tables用于给阶段连接额外的界面效果说明:
| 字段 | 含义与使用要点 |
|---|---|
special_ability_phase |
接收界面效果的阶段 Key。 |
effect |
额外界面效果 Key。它负责补充玩家看到的信息,不负责实际数值结算。 |
制作一个近战接触效果的完整步骤
- 找到一个机制最接近的原版接触效果,而不是只找名字相近的效果。
- 复制对应
special_ability_phases_tables记录并改成自己的id。 - 复制所有以原阶段为
phase的数值效果行,并改成新阶段 Key。 - 需要属性时,复制属性效果行并确认
attribute_type方向。 - 需要特效时,复用或复制
phase_display指向的显示记录。 - 需要额外界面说明时,复制阶段与附加界面效果的连接。
- 复制近战武器,给武器新 Key,并把
contact_phase改成新阶段。 - 让自己的
land_units_tables.primary_melee_weapon指向新武器。 - 先用一个目标单位测试持续时间、重复命中刷新、数值变化和界面显示。
- 再测试友军、敌军、多实体单位、单体单位、免疫属性和死亡目标等边界情况。
如果只想让新单位使用原版中毒,可以直接让自己的新近战武器引用原版wh_main_unit_contact_poison,不必复制阶段。只有要改变中毒数值、时长、特效或作用对象时才需要建立自己的阶段链。
按目标反查应修改的表单
| 目标 | 首先查看 | 常见后续检查 |
|---|---|---|
| 改一队有多少人 | main_units_tables.num_men |
单位规模选项、模型、性能、招募费用。 |
| 改近战攻防 | land_units_tables.melee_attack、melee_defence |
技能、经验、难度和阶段效果。 |
| 改基础/破甲武器杀伤 | melee_weapons_tables.damage、ap_damage |
武器是否被多个单位共用。 |
| 改对步兵/大型加成 | melee_weapons_tables.bonus_v_infantry、bonus_v_large |
目标battle_entities_tables.size和单位分类。 |
| 改生命值 | battle_entities_tables.hit_points、land_units_tables.bonus_hit_points |
多实体人数、战役生命值和魔屏。 |
| 改跑速 | battle_entities_tables.run_speed |
动画位移、加速度、减速度、转向。 |
| 改冲锋手感 | 战斗实体的冲锋速度和三个距离 | land_units_tables.charge_bonus、质量、间距、动画。 |
| 改护甲 | unit_armour_types_tables.armour_value |
是否复制了共享护甲记录、受击音效。 |
| 改远程格挡概率 | unit_shield_types_tables.missile_block_chance |
模型持盾、动画朝向、投射物类别。 |
| 加引发恐惧、潜行或心理免疫 | 属性组与连接表 | 是否误改共享属性组、属性 Key 是否为引擎内置。 |
| 改单位站得更密 | unit_spacings_tables |
实体半径、模型宽度、队列深度、武器长度。 |
| 加中毒或其他命中减益 | melee_weapons_tables.contact_phase |
阶段本体、数值、属性、显示和作用对象。 |
| 改战役费用或招募时间 | main_units_tables |
建筑、资源、科技、技能和效果修正。 |
怎样自行找到原版数据
已知一个单位时沿引用向下找
- 在
main_units_tables搜索单位 Key。 - 读取
land_unit,跳到land_units_tables。 - 记录
man_entity、primary_melee_weapon、armour、shield、attribute_group和spacing。 - 分别跳到对应子表,查看实际记录。
- 对近战武器继续读取
contact_phase。 - 对接触阶段继续搜索所有以该阶段为
phase的数值和属性行。 - 反查每个准备修改的子记录被哪些其他单位引用。
只知道想要的机制时反向找
- 想找中毒、破甲、沉默等命中效果:在
melee_weapons_tables筛选contact_phase非空,再沿阶段查看实际内容。 - 想找多目标近战攻击:比较
splash_attack_max_attacks和splash_attack_target_size,同时检查实体体型与攻击动画。 - 想找抗冲锋或冲撞单位:比较
can_brace、实体质量、冲锋距离和碰撞阈值,不要只看一个字段。 - 想找紧密步兵方阵:比较
spacing引用的完整间距记录、队列深度和实体半径。 - 想找不会溃逃的单位:从属性连接表搜索
unbreakable,再反查对应属性组和单位。 - 想找盾墙或龟甲阵:从有对应战斗按钮的原版单位出发,沿完整技能链查;不要只筛间距表。
- 想找高护甲单位:从
unit_armour_types_tables.armour_value筛选,再反查实际单位,确认音效和共享范围。
每次至少比较三类证据
- 数据值:表中到底填了什么。
- 引用关系:多少单位共享这条记录,完整链是否闭合。
- 游戏表现:原版单位实际怎样移动、冲锋、攻击、站位和显示状态。
只看一个数值容易复制到机制不同的模板;只看游戏面板则看不到共享记录、实体参数和隐藏阶段。
常见故障与排查顺序
单位能出现在名册,但进入战斗崩溃或不生成
- 检查
main_units_tables.land_unit是否存在。 - 检查
land_units_tables.man_entity、man_animation和必要模型资产。 - 检查坐骑、载具、战场引擎和关节载具引用是否与模板结构一致。
- 检查自定义 Key 是否拼写一致、是否存在重复。
- 检查单位人数是否与单体、骑兵、载具或火炮结构匹配。
面板生命或战斗生命不符合预期
- 检查
battle_entities_tables.hit_points。 - 检查
land_units_tables.bonus_hit_points。 - 检查
main_units_tables.num_men和当前单位规模设置。 - 检查
barrier_health是否把魔屏误认为普通生命值。 - 检查技能、科技、难度和阶段效果。
单位移动时滑步、转向僵硬或冲锋散乱
- 比较
run_speed与动画实际位移。 - 检查
acceleration、deceleration和turn_speed。 - 检查三个冲锋距离是否来自同一套模板。
- 检查
stop_before_turn、转向动画开关和locomotion_constants。 - 检查实体半径、单位间距和队列深度。
基础/破甲武器杀伤改了但多个单位一起变化
- 反查原近战武器 Key 被哪些单位引用。
- 为目标单位复制近战武器并改成新 Key。
- 让目标单位改用新武器。
- 检查接触效果是否仍有意共享。
溅射攻击表现异常
- 检查
splash_attack_target_size是否允许目标体型。 - 检查
splash_attack_max_attacks是否与动画挥击范围相符。 - 检查实体
size、radius和武器weapon_length。 - 检查是否把碰撞攻击字段误当成普通溅射字段。
- 用单体、小型步兵、骑兵和大型怪兽分别测试。
盾牌图标存在,但仍经常被正面射中
- 检查
land_units_tables.shield是否指向正确记录。 - 检查
missile_block_chance。 - 检查单位是否面对来袭方向。
- 检查模型与动画中的盾牌方向。
- 检查投射物类别是否具有忽略盾牌的规则。
属性没有效果
- 检查单位
attribute_group。 - 检查连接表中的
attribute_group拼写。 - 检查
attribute是否为原版引擎已识别 Key。 - 检查是否误改了另一条同名或旧版本记录。
- 检查该属性是否只在特定状态、单位类型或战斗上下文生效。
接触效果没有应用
- 检查单位是否真的使用填写了
contact_phase的新近战武器。 - 检查阶段
id是否存在。 - 检查
affects_enemies和affects_allies。 - 检查数值效果或属性效果中的
phase是否已改成新 Key。 - 检查
stat和attribute是否为有效原版枚举。 - 先去掉显示和音效,只验证数值是否变化,区分“效果未结算”和“只是没有特效”。
接触效果数值方向错误
- 检查
how是add还是mult。 mult使用倍率,例如0.85表示剩余85%。add直接加减,例如物理抗性-10表示减少10点。- 检查阶段是否在重复命中后刷新、叠加或被其他效果覆盖。
- 对照原版同类阶段,不要只按中文描述猜数值。
RPFM 诊断没有报错,但游戏里仍不正常
RPFM 可以发现许多缺失引用、错误类型和重复 Key,但不能证明下面这些行为正确:
- 模型、骨架和动画套装匹配。
- 移动速度与动画位移一致。
- 冲锋距离与冲锋动画时机一致。
- 武器长度和溅射范围符合动作。
- 盾牌方向与格挡判定一致。
- 特效挂点、音效和本地化真实存在。
- AI 会按你的预期使用单位。
- 自动结算估值与实际战斗强度平衡。
这些必须进自定义战斗或战役环境验收。
游戏内验收清单
生成与基础动作
- 单位能进入战斗,人数与单位规模设置一致。
- 模型、坐骑、载具和乘员都正确生成。
- 待机、行走、奔跑、转身、攻击、受击、死亡和溃逃动画正常。
- 没有明显滑步、瞬间转身、实体重叠或寻路卡死。
移动、编队与冲锋
- 紧密和松散阵型的横纵间距合理。
- 拖动长阵线、短阵线和多排编队都不会严重穿模。
- 转向、穿门、上下坡和绕障碍正常。
- 冲锋开始、摆姿势、选目标和接触时机自然。
- 正面迎击、侧后冲锋和大型实体冲撞分别测试。
近战与生存
- 近战攻击、近战防御、基础武器杀伤、破甲武器杀伤和攻击间隔符合设计。
- 对步兵和非步兵实体的加成分别生效。
- 溅射目标数量没有造成异常高伤害。
- 低甲、高甲、持盾、小型、大型和单体目标分别测试。
- 基础生命值、额外生命值、魔屏和单位人数没有相互混淆。
护甲、盾牌和属性
- 面板护甲强度与实际承受基础杀伤时的表现大致符合预期。
- 盾牌只从合理方向格挡,正面和背面分别测试。
- 引发恐惧、引发恐怖、潜行、狙击、心理免疫、永不战败等目标属性逐项验证。
- 属性说明和图标正确,没有把共享属性组改给其他单位。
接触效果
- 每次有效近战命中后目标获得阶段。
- 持续时间、刷新、重复命中和消失时机正确。
add与mult数值方向正确。- 属性赋予或抵消方向正确。
- 友军与敌军作用范围正确。
- 特效、音效、旗帜和界面说明与实际数值一致。
- 多实体单位、单体单位、免疫目标和死亡目标分别测试。
战役与界面
- 主单位人数、招募费、维护费、招募时间和上限正确。
- 单位等级、界面分组、兵牌、名称、说明和头像正确。
- 建筑、资源、兵种许可或其他计划使用的招募路径能正常获得单位。
- 自动结算强度、AI 使用和多人费用符合预期。
最后检查 Pack
- 每张导入的 DB 子表都已把
data__改成唯一名称。 - 所有自定义 Key 使用统一前缀。
main_units_tables.land_unit确实指向自己的陆战单位。- 所有非空子表引用都能在自己的 Pack 或已加载依赖中找到。
- 没有为了一个新单位直接修改被大量原版单位共享的武器、实体、护甲、盾牌、属性组或间距。
- 没有把近战攻击、基础/破甲武器杀伤、战场速度、行动点数和自动结算战力填错表。
- 接触效果的阶段、数值、属性、显示和作用对象已经逐层检查。
- 阵型间距、军队预设阵型和技能特殊阵型没有混为一谈。
- RPFM 诊断已检查,但没有把“诊断通过”当成游戏验收通过。
- 自定义战斗和战役测试分别完成,并记录了仍需调整的平衡数值。
本文以当前游戏文件中的 DB 记录、RPFM 真实界面和对应《战锤 III》Schema 为依据;Assembly Kit 只供只读交叉核对,不是教程的导入、编辑或引用来源。Schema 没有公开公式或字段属于旧式兼容结构时,应沿用同类原版模板并在游戏中验证,不能把字段直译当作确定的游戏机制。

