刚刚接触绝区零mod的萌新常常会遇到mod的兼容性问题。为什么别人能用的mod,在我的设备上就不生效?或者出现贴图错乱?版本更新后场景mod用不了了怎么办?
一般来说,造成mod不兼容的原因可以归类为两种。
一,你的加载器有问题(槽位检查数量过少)。
具体请查看此贴:关于不同mod加载器引起的兼容性问题的解决方案
二,你的设备使用的hash值和mod使用的hash值不兼容。
此贴讲解第二种原因,通过这两篇帖子,你可以解决所有常见的mod兼容问题。
总所周知,绝区零为了优化游戏,在高低端设备上使用了两套hash值。如果你的hash值和mod使用的不兼容的话,如果是角色类mod,角色就会看起来像是身上被泼了一桶油漆,或是某种抽象派的人体彩绘:
如果是场景类mod,则会直接不生效。
如果是角色类mod,常常可以使用跨版本修复工具或者Hash修复工具解决。但也有例外,比如对于新出的角色,工具的hash值可能更新不及时而没有包含在内。
如果是场景类mod,常常没有对应工具来帮你解决,因为场景类的hash值过于多和繁琐,很难收集齐全。可以尝试使用我收集的场景hash对照表,如果仍不能修复,这时就需要你掌握获取hash值的方法来自己手动进行修复了。
首先点击上面链接下载安装paint.net,这是一款绘图工具,方便接下来查看dds类型的图片文件。
然后,确保你使用的是3dmogito开发版本
ZZMI-for-development
3dmigoto-ZZZ-for-dev
或者使用我修改的版本:3dmigoto for ZZZ - HC
如果是d3dx管理器用户,建议使用我修改的版本。下载后将zip压缩包放入此路径:d3dxSkinManage\resources\3dmigoto。然后在d3dx管理器的环境设置-用户设置-3Dmogoto版本中选择此版本即可。
使用3dmigoto开发版本运行游戏后(路径配置不再细讲),打开角色界面选择一个角色(如果打了mod先按F6关闭),点击小键盘0开启Hunting模式(某些版本可能为P键),屏幕上下方会出现绿字(笔记本可以按ctrl+win+O打开虚拟键盘):
成功后,即可按F8进行dump(帧转储),此时游戏会卡住,一般十几秒或1分钟内即可恢复。
游戏恢复后代表dump完成,打开3dmigoto文件夹,可以看到这个文件夹:
d3dx管理器用户打开此路径:
d3dxSkinManage\home\ZenlessZoneZero\work
点开后,进入deduped文件夹:
筛选类型为paint.net图片(或DDS文件),大小为中等(1-128M),并按从小到大排列:
查看方式选择大图标,并打开预览窗格,方便点击图片后在右侧查看预览:
此时如果没有显示预览图,就右键点击一个dds文件,打开方式选择其他应用:
找到paint.net并设为默认:
然后关闭打开的图片,退出deduped文件夹再进入,重新筛选,即可看到预览图:
图片名字的前八位就是对应的hash值,后面的是图片的保存格式。
如果角色贴图文件的大小是1MB,就是低纹理(低显存),如果大小是4MB。就是高纹理(高显存)。
一个部位一般有4张贴图(脸部为2张),其中彩色图片为纹理贴图(Diffuse),浮雕图片为法线贴图(NormalMap),剩下两张是材质贴图和光照贴图,一般为一张深红色图片和一张浅红色或浅紫色等其他颜色图片,具体命名比较混乱,使用时可以参考你要修改的mod文件夹中的贴图怎么命名。
最后复制你需要的hash值,然后打开你需要修改的mod文件夹,在ini文件中进行添加即可:
另外,ZZZ的角色模型由多个部分组成,对应部分的模型IB hash值可以在角色界面按下小键盘数字0开启hunting模式后,按7和8进行寻找,按小键盘+号可以刷新。对应部分消失时屏幕左上角显示的IB就是该模型的hash值,比如铃的上半身消失时,显示的IB为1817f3ca,对应ini文件中的bodyIB:
场景hash值的获取和角色大同小异,初次操作建议先学习一下角色hash获取方法,熟悉一下操作流程。下面我进行简要讲解,以音像店为例。
站在音像店前,按小键盘0打开hunting模式,按小键盘+号刷新后按F8进行dump:
小技巧:让你需要的贴图出现在屏幕上,并且尽量减少出现其他物体,可以防止dump出太多多余文件。
dump完成后,打开相应的FrameAnalysis文件夹,进入dedupd文件夹,筛选dds文件,然后肉眼筛查即可。比如下面这张:
就对应音像店mod里的这张:
在ini文件中加上你的hash即可:
小技巧:如果dds文件太多肉眼筛查困难,可以试试搜索BC7或BC3,这是贴图文件常用的保存格式。
学会了获取hash,只要再掌握一些PS技巧,使用paint.net制作场景mod不是信手拈来?唯一需要注意的就是保存格式别选错了,纹理贴图一般为BC7_SRGB或BC3_SRGB,其他贴图一般为BC7_线性或BC6H_线性,具体看dump出来的文件名。
最后再贴一个纹理修改进阶教程,通过注释掉d3dx.ini中的通用dump指令,然后在Mods文件夹内新建ini写入指定着色器进行dump,可以大大减少无用文件并提高dump速度,建议经常使用dump功能的玩家学习。
纹理修改进阶教程:https://github.com/SilentNightSound/GI-Model-Importer/blob/main/Guides/CN_TextureModdingTutorial.md
此教程讲解例为原神,但绝区零也同理。
by 哈米猫特HammyCatte
更新于 2024-10-10