温馨提示:仅适合部分Unity游戏去码
前言:在去码之前,请辨别马赛克类型,若为贴图马赛克,静态马赛克是无法去除的.
工具在文章最底部
unity游戏去除mosaic方法
A.(通用类型)
I.修改.assets方法(live2d)
- 使用AssetStudio工具加载游戏文件夹。
2.搜索找到同时带有“live2d”和“mosaic”字段的文件,记录其Path ID(和Size)及来源的.assets。
3.根据记录的信息,使用UABEA工具打开相应.assets并删除文件。
PS:此方法适用游戏类型较少,mosaic标签类型可能会被隐藏
II.修改.assets方法(shader)
- 使用AssetStudio工具加载游戏文件夹。
- 搜索“mosaic”,找到含有mosaic(主要) / mosa / mozaic / censor / pixelate 字段的Shader类型,记录其Path ID(和Size)及来源的.assets。(还可以寻找带有_CellSize的shader)
- 根据记录的信息,使用UABEA工具打开相应.assets并选中该文件,“Export Dump”为txt格式。
- 打开txt,用替换功能把“0 SerializedShaderFloatValue colMask”下一行的“0 float val = 15”全部替换为“0 float val = 0”,保存退出。(一般情况可以直接将搜素到的0 float val = 15全部替换)
III.修改.assets方法(mesh)
该大类方法,注意对修改的.asset文件进行备份,以防修改不当导致崩溃等。若有如data.unity3d等文件,可能需要用AssetStudio解包后修改。
- AssetStudio加载游戏目录。
- 筛选Mesh,搜索`mosaic`。
- 记录下面的`Name`和`PathID`。
- 右键查看来源来自文件`graphic_av_3dprefab_assets_all.bundle`。
- 打开UABEA加载此文件。
- 可通过菜单栏`View`搜索或者跳到对应的`PathID`,删除`Remove`全部,然后保存。
若上述3种搜索不到相关词条,说明此方法不适用或者相关词条被游戏作者定义为其他词条
举例说明(这里用的II方法)
游戏:圣骑士莉卡 (游戏链接为站内链接,注下载的游戏自带BepInEx框架去码,后续会提及)
1.使用AssetStudio加载游戏文件夹(加载大型游戏时候会占用大量内存请注意)
2.搜索mosaic(主要) / mosa / mozaic / censor / pixelate,,记录路径和ID(在相应位置右键复制)
右键可显示所在源文件
3.本示例之中源文件在data.unity3D文件之中被打包,若不在本文件之中可跳转至下一步
- 打开AssetStudio工具,点击界面左上角file-extract file,选中路径..\HolyKnightRicca_v137zh\Game\HolyKnightRicca_Data下的data.unity3d文件并确定,再选择解包所得文件的存储路径。程序自行解包。
- 删除data.unity3d文件,并将解包所得文件放到上述路径下。
4.
- 打开UABEA工具,点击界面左上角file-open,选择解包所得文件中的globalgamemanagers.assets不同游戏不一样,可在解包之后的游戏在进行步骤2重新确定源文件,比如有些游戏是sharedassets0.assets)并确定。
- 下拉列表,选择Path ID为192的条目(特定ID对应特定游戏版本),点击Export Dump,选择导出文件的存储路径并确定,导出文件为txt格式。
5.
- 用记事本打开该txt文件,使用替换功能,将“0 float val = 15”全部替换为“0 float val = 0”,保存退出。
- UABEA工具中仍选中Path ID为192的条目,点击Import Dump,选择修改后的上述txt文件并确定。
- 另存到一个文件夹然后将新编辑的文件替换游戏源文件。
6.进游戏进行验证(去码前后对比)
B.(插件)
- 在游戏.exe文件所在目录安装合适版本的BeplnEx框架。
- 启动游戏。若成功加载,在../BeplnEx下将生成config、plugins等文件夹。
- 在GitHub(或其他地方)下载对应BeplnEx框架版本的UniversalUnityDemosaics插件。根据readme.md说明,逐个尝试,单独(除非特殊说明需要联合)将.dll文件放入../BeplnEx/plugins下,启动游戏查看去码效果。
去码效果如A类
C.修改Assembly-CSharp.dll
- 用dnSpy工具加载该文件(一般在数据文件/Managed中)。
- 搜索mosaic,点击结果跳转到类。
类型1.编译类,将“float”浮点数的值改为“0.01f”(要足够小)。
类型2.编译类,将填充Mosaic的函数关闭(改为false)- 编译后保存。
游戏:Alice in cradle(此处搜索的为FnDrawMosaic,使用方法3.2)
右键编译类,true改为false,注意别划过了改错了函数
更改完成之后保存替换源文件
去码前后对比
结语:
本文章中涉及的教程类型为本人从网上的学习经验的汇总,有兴趣的可以学习一下,一定要再去码之前判断马赛克类型,不然去了半天发现是贴图上面有码你会爆炸的哦
相关工具链接:
1.AssetStudio
2.UABEA
nesrak1/UABEA: c# uabe for newer versions of unity
3.BeplnEx
4.UniversalUnityDemosaics(其他类型插件自行查找)
5.dnSpy
请登录后查看评论内容