众所周知,绝区零mod的贴图替换有两种方式,槽位替换和hash替换。
由于槽位替换的方法经常遇到轮廓线或仰视光照问题,所以目前主流的方法还是使用hash值进行替换。
而hash替换看似没有缺点,但其实特别依赖于对贴图hash值的维护,也就是通常所说的修复工具。
目前香蕉网的修复工具已经两个大版本没有进行更新,而且新版本的XXMI自带了SlotFix插件,已经基本解决槽位替换方式带来的轮廓线和仰视光照问题(RabbitFX 5.0也带有类似的功能)。再者,随着游戏角色的逐渐增多,贴图hash值的维护工作也将越来越繁重。所以当SlotFix脚本趋于稳定和完善时,不排除hash值替换的方式被舍弃的可能。
所以建议无论是mod制作者,还是想自己动手修复mod的玩家,都一定要掌握SlotFix插件的使用方法。
其实特别简单,下面我就介绍一下修改方法。
由于XXMI和RabbitFX都有类似的功能,所以我们首先介绍一下XXMI的SlotFix插件的修复方法,掌握了一种之后另外一种其实完全相同,只是使用的指令稍有区别。
注意,SlotFix修复方法首先需要你安装最新版的XXMI启动器,而RabbitFX的修复方法则需要你安装5.0或以上版本的RabbitFX,下载地址在前言的蓝字超链接中可跳转。
SlotFix
以一个简单的XXMI制作的mod为例,首先打开mod的ini,搜索“this”关键字,找到标题以“Diffuse/NormalMap/LightMap/MaterialMap”结尾的节,这些就是用于纹理替换的节(纹理节):

如果找不到this关键字,且此mod只有一个启用的ini文件,那么很可能这是一个使用槽位替换的mod,我们直接进行下一步寻找ib节即可。
通常在此节上方就是此对象的ib节,也可以通过搜索“ib = ”关键字寻找。
找到此节后,第一步首先观察此节下如果已经存在槽位行,我们首先对这些行进行如下修改:

也就是将
"ps-t3 = "
"ps-t4 = "
"ps-t5 = "
"ps-t6 = "
分别替换为
“Resource\ZZMI\Diffuse = ref ”
“Resource\ZZMI\NormalMap = ref ”
“Resource\ZZMI\LightMap = ref ”
“Resource\ZZMI\MaterialMap = ref ”
第二步,对于ib节缺少的纹理槽,我们可以从纹理节复制对应的resource,比如:

最后一步,我们最后在这些纹理行下面追加如下run指令即可:
run = CommandList\ZZMI\SetTextures

到此即修改完成,一共三步。
剩下的就是重复工作了,因为一个ini里面通常有Hair/Body等多个对象,每个对象可能又有A/B/C等多个ib节,所以建议是通过搜索“ib = ”关键字来锁定ib节,对其余的ib节进行类似的修复即可。
RabbitFX
学会了SlotFix的改法之后,另外一种改法就没什么好说的了,无非就是换一下代码,
1、把“Resource\ZZMI\... = ref ”换成“$\RabbitFX\... = ”,
2、把“run = CommandList\ZZMI\SetTextures”
换成“run = Commandlist\RabbitFX\SetTextures”
例如:

我发布的纹理修复工具使用的就是如上的修复方法,但由于工具需要严格匹配XXMI的mod标准格式,所以特殊格式的ini可能不受支持或者修复出错,这时你就可以手动进行检查。
比如较为常见的mod的光照槽位标记反的问题,可能表现为角色变为深色皮肤,修复方法如下:

将光照贴图这两行(LightMap和MaterialMap)的=号后面的部分对调即可,或者对调=号前面的部分也一样:

部分使用DBMT等工具制作的mod,它的贴图配置可能有另外单独的ini,比如:

最简单的办法就是把ini先变成一个再进行修复即可,比如直接打开TextureReplace.ini,把所有内容都复制到Config.ini里面,然后在Config.ini内进行修复。

答:

附件是学会此教程的奖励,2.0版本的修复工具。
正如我开头所说,且用且珍惜。
2.0B:添加仪玄/仪玄皮肤的高低显修复支持。
2.0C:补充个别角色遗漏的hash。
2.0D:添加潘引壶、铃皮肤、哲皮肤、艾莲皮肤的高低显修复支持。
2.0E:修复潘引壶的hash错误导致仪玄脸部错误的问题,添加橘福福的高低显修复支持。
2.0F:更新耀嘉音皮肤的高低显hash修复,修正hash元组顺序以减少冗余的hash替换。