本页只介绍当前最推荐、也最稳定的写法:用一个 mod.ini 精确匹配到某个皮肤,
再在 [effect_map] 里写需要重定向的特效名。
按你当前示例目录,最推荐直接这样组织:
小羊战斗特效/
mod.ini
你给出的示例目录 C:\Users\thixi\game\Arknight\模组\小羊战斗特效
就是推荐写法。
[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
这类 Mod 会在战斗皮肤载入时,拿到对应的 CharacterSkinHooker,
然后把它内部的 _replaceEffectPairs 重写成你在 [effect_map] 里提供的映射。
mod.ini 负责的是“把哪个挂点的特效名改成哪个特效名”,
本身不负责打包特效资源本体。
| 字段 | 推荐写法 | 说明 |
|---|---|---|
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 |
左边是原始特效名,右边是你想改成的目标特效名。 |
skin_id 写成完整皮肤 ID,不要只靠 char_id 粗匹配。skin_id 可以避免同名误替换。[effect_map]。tmpId,就不要额外写 tmp_id。skin_type = character + 精确 skin_id + 对应 char_id。
如果你只是想让某个挂点改用另一个特效名,那么就改右边的 toEffect。
左边的 fromEffect 要保持原始挂点名不变,右边才是你想跳转到的目标特效。
下面这些是代码里当前已经支持的兼容写法和扩展能力。 平时最常用的还是前面的推荐配置;只有在你明确需要时,再来查这一节即可。
type 兼容值除了推荐的 battle_skin_effect,当前还兼容:
battle_skin_fxbattle_skin_hookbattle_skinbattle_skin_effect,这样最不容易和其它说明、示例脱节。
skin_type 兼容值当前支持以下写法:
character 或 0trap 或 1除了推荐的 [effect_map],当前还兼容:
[effect_replace_pairs][effects]这三种段名里的内容格式都一样,仍然是:
原始特效名 = 目标特效名
当前实现除了改 _replaceEffectPairs,还支持改
_fakeProjectileConfigs。这部分适合处理“飞行物 / 子弹 / 投射物”
相关的图形 key、逻辑 key 和挂点。
推荐段名写成 [projectile_map],另外还兼容:
[fake_projectiles][projectiles]左边始终是原始投射物 key,右边支持下面几种格式:
| 格式 | 含义 |
|---|---|
origin = graphic |
只改图形投射物 key。 |
origin = graphic|logic |
同时改图形 key 和逻辑 key。 |
origin = graphic|muzzle |
如果右边只有两段,且第二段能识别成挂点名或数字,就会被当成挂点。 |
origin = graphic|logic|muzzle |
同时改图形 key、逻辑 key、挂点。 |
|,也支持逗号 ,。但推荐一直使用 |,更直观。
挂点支持以下名字,也支持直接写数字:
| 名字 | 数值 |
|---|---|
foot | 0 |
hit | 1 |
muzzle | 2 |
head | 3 |
ui | 4 |
special_0 | 5 |
special_1 | 6 |
ground | 7 |
special_2 | 8 |
special_3 | 9 |
special_4 | 10 |
[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
上面三行分别表示:
muzzle。head。fromEffect 合并的;如果多个匹配配置改同一个来源特效,后面的值会覆盖前面的值。_useFakeProjectile。