For Battle FX Mod Authors

战斗小人特效替换说明

本页只介绍当前最推荐、也最稳定的写法:用一个 mod.ini 精确匹配到某个皮肤, 再在 [effect_map] 里写需要重定向的特效名。

1. 推荐目录结构

按你当前示例目录,最推荐直接这样组织:

小羊战斗特效/
  mod.ini

你给出的示例目录 C:\Users\thixi\game\Arknight\模组\小羊战斗特效 就是推荐写法。

2. 推荐 mod.ini

[mod]
type = battle_skin_effect
skin_type = character
skin_id = char_180_amgoat_summer#5
char_id = char_180_amgoat
#tmp_id = 这里按需填

[effect_map]
common_char_birth_01 = common_char_birth_01
amgoat_attack_01_start = amgoat_attack_01_start
amgoat_attack_01_trail = amgoat_attack_01_trail
amgoat_attack_01_hit = amgoat_attack_01_hit
amgoat_skill_02_hit = amgoat_skill_02_hit
amgoat_skill_02_range = amgoat_skill_02_range
amgoat_skill_02_trail = amgoat_skill_02_trail
amgoat_skill_03_buff_end = amgoat_skill_03_buff_end
amgoat_skill_03_buff = amgoat_skill_03_buff
amgoat_skill_03_trail = amgoat_skill_03_trail
amgoat_skill_03_hit = amgoat_skill_03_hit

3. 这份配置在做什么

这类 Mod 会在战斗皮肤载入时,拿到对应的 CharacterSkinHooker, 然后把它内部的 _replaceEffectPairs 重写成你在 [effect_map] 里提供的映射。

也就是说,这份 mod.ini 负责的是“把哪个挂点的特效名改成哪个特效名”, 本身不负责打包特效资源本体。

4. 字段说明

字段 推荐写法 说明
type battle_skin_effect 声明这是战斗小人特效替换 Mod。
skin_type character 角色战斗小人一般就写这个。
skin_id char_180_amgoat_summer#5 推荐写完整、精确的皮肤 ID,这是当前最重要的选择器。
char_id char_180_amgoat 角色基础 ID,建议和 skin_id 一起写。
tmp_id 按需填写 只有日志里明确出现 tmpId 时再填,没有就留空。
[effect_map] fromEffect = toEffect 左边是原始特效名,右边是你想改成的目标特效名。

5. 推荐做法

当前最推荐的筛选器组合就是你示例里的这一套: skin_type = character + 精确 skin_id + 对应 char_id。

6. 一条经验规则

如果你只是想让某个挂点改用另一个特效名,那么就改右边的 toEffect。 左边的 fromEffect 要保持原始挂点名不变,右边才是你想跳转到的目标特效。

7. 兼容写法与进阶配置

下面这些是代码里当前已经支持的兼容写法和扩展能力。 平时最常用的还是前面的推荐配置;只有在你明确需要时,再来查这一节即可。

7.1 type 兼容值

除了推荐的 battle_skin_effect,当前还兼容:

虽然这些别名都能识别,但仍建议统一写成 battle_skin_effect,这样最不容易和其它说明、示例脱节。

7.2 skin_type 兼容值

当前支持以下写法:

7.3 特效映射段名别名

除了推荐的 [effect_map],当前还兼容:

这三种段名里的内容格式都一样,仍然是:

原始特效名 = 目标特效名

7.4 额外投射物配置

当前实现除了改 _replaceEffectPairs,还支持改 _fakeProjectileConfigs。这部分适合处理“飞行物 / 子弹 / 投射物” 相关的图形 key、逻辑 key 和挂点。

推荐段名写成 [projectile_map],另外还兼容:

左边始终是原始投射物 key,右边支持下面几种格式:

格式 含义
origin = graphic 只改图形投射物 key。
origin = graphic|logic 同时改图形 key 和逻辑 key。
origin = graphic|muzzle 如果右边只有两段,且第二段能识别成挂点名或数字,就会被当成挂点。
origin = graphic|logic|muzzle 同时改图形 key、逻辑 key、挂点。
分隔符既支持 |,也支持逗号 ,。但推荐一直使用 |,更直观。

7.5 挂点名与数字

挂点支持以下名字,也支持直接写数字:

名字 数值
foot0
hit1
muzzle2
head3
ui4
special_05
special_16
ground7
special_28
special_39
special_410

7.6 投射物配置示例

[mod]
type = battle_skin_effect
skin_type = character
skin_id = char_180_amgoat_summer#5
char_id = char_180_amgoat

[effect_map]
amgoat_attack_01_hit = amgoat_attack_01_hit_custom

[projectile_map]
amgoat_projectile_01 = amgoat_projectile_01_custom
amgoat_projectile_02 = amgoat_projectile_02_custom|muzzle
amgoat_projectile_03 = amgoat_projectile_03_custom|amgoat_projectile_03_logic|head

上面三行分别表示:

7.7 叠加与覆盖规则

投射物配置属于进阶能力,建议先确认原始 key 和原始挂点,再下手修改。 如果图形 key、逻辑 key、挂点三者之间不匹配,表现可能会和预期不一致。