【Tool|Tutorial】Unity游戏去码方法归纳(附带工具)

【Tool|Tutorial】Unity游戏去码方法归纳(附带工具)

温馨提示:仅适合部分Unity游戏去码

前言:在去码之前,请辨别马赛克类型,若为贴图马赛克,静态马赛克是无法去除的.

工具在文章最底部

unity游戏去除mosaic方法

A.(通用类型)

I.修改.assets方法(live2d)

  1. 使用AssetStudio工具加载游戏文件夹。

     2.搜索找到同时带有“live2d”和“mosaic”字段的文件,记录其Path ID(和Size)及来源的.assets。

     3.根据记录的信息,使用UABEA工具打开相应.assets并删除文件。

 PS:此方法适用游戏类型较少,mosaic标签类型可能会被隐藏

II.修改.assets方法(shader)

  1. 使用AssetStudio工具加载游戏文件夹。
  2. 搜索“mosaic”,找到含有mosaic(主要) / mosa / mozaic / censor / pixelate 字段的Shader类型,记录其Path ID(和Size)及来源的.assets。(还可以寻找带有_CellSize的shader)
  3. 根据记录的信息,使用UABEA工具打开相应.assets并选中该文件,“Export Dump”为txt格式。
  4. 打开txt,用替换功能把“0 SerializedShaderFloatValue colMask”下一行的“0 float val = 15”全部替换为“0 float val = 0”,保存退出。(一般情况可以直接将搜素到的0 float val = 15全部替换)

III.修改.assets方法(mesh)

该大类方法,注意对修改的.asset文件进行备份,以防修改不当导致崩溃等。若有如data.unity3d等文件,可能需要用AssetStudio解包后修改。

  1. AssetStudio加载游戏目录。
  2. 筛选Mesh,搜索`mosaic`。
  3. 记录下面的`Name`和`PathID`。
  4. 右键查看来源来自文件`graphic_av_3dprefab_assets_all.bundle`。
  5. 打开UABEA加载此文件。
  6. 可通过菜单栏`View`搜索或者跳到对应的`PathID`,删除`Remove`全部,然后保存。

若上述3种搜索不到相关词条,说明此方法不适用或者相关词条被游戏作者定义为其他词条

举例说明(这里用的II方法)

游戏:圣骑士莉卡    (游戏链接为站内链接,注下载的游戏自带BepInEx框架去码,后续会提及)

1.使用AssetStudio加载游戏文件夹(加载大型游戏时候会占用大量内存请注意

【Tool|Tutorial】Unity游戏去码方法归纳(附带工具)

【Tool|Tutorial】Unity游戏去码方法归纳(附带工具)1

2.搜索mosaic(主要) / mosa / mozaic / censor / pixelate,,记录路径和ID(在相应位置右键复制)

右键可显示所在源文件

【Tool|Tutorial】Unity游戏去码方法归纳(附带工具)2

3.本示例之中源文件在data.unity3D文件之中被打包,若不在本文件之中可跳转至下一步

  1. 打开AssetStudio工具,点击界面左上角file-extract file,选中路径..\HolyKnightRicca_v137zh\Game\HolyKnightRicca_Data下的data.unity3d文件并确定,再选择解包所得文件的存储路径。程序自行解包。
  2. 删除data.unity3d文件,并将解包所得文件放到上述路径下。

4.

  1. 打开UABEA工具,点击界面左上角file-open,选择解包所得文件中的globalgamemanagers.assets不同游戏不一样,可在解包之后的游戏在进行步骤2重新确定源文件,比如有些游戏是sharedassets0.assets)并确定。
  2. 下拉列表,选择Path ID为192的条目(特定ID对应特定游戏版本),点击Export Dump,选择导出文件的存储路径并确定,导出文件为txt格式。

    【Tool|Tutorial】Unity游戏去码方法归纳(附带工具)3

5.

  1. 用记事本打开该txt文件,使用替换功能,将“0 float val = 15”全部替换为“0 float val = 0”,保存退出。
  2. UABEA工具中仍选中Path ID为192的条目,点击Import Dump,选择修改后的上述txt文件并确定。
  3. 另存到一个文件夹然后将新编辑的文件替换游戏源文件。

【Tool|Tutorial】Unity游戏去码方法归纳(附带工具)4

6.进游戏进行验证(去码前后对比)

【Tool|Tutorial】Unity游戏去码方法归纳(附带工具)5

【Tool|Tutorial】Unity游戏去码方法归纳(附带工具)6

 

B.(插件)

  1. 在游戏.exe文件所在目录安装合适版本的BeplnEx框架。
  2. 启动游戏。若成功加载,在../BeplnEx下将生成config、plugins等文件夹。
  3. 在GitHub(或其他地方)下载对应BeplnEx框架版本的UniversalUnityDemosaics插件。根据readme.md说明,逐个尝试,单独(除非特殊说明需要联合)将.dll文件放入../BeplnEx/plugins下,启动游戏查看去码效果。

【Tool|Tutorial】Unity游戏去码方法归纳(附带工具)7

【Tool|Tutorial】Unity游戏去码方法归纳(附带工具)8

去码效果如A类

C.修改Assembly-CSharp.dll

  1. dnSpy工具加载该文件(一般在数据文件/Managed中)。
  2. 搜索mosaic,点击结果跳转到类。

  3. 类型1.编译类,将“float”浮点数的值改为“0.01f”(要足够小)。
    类型2.编译类,将填充Mosaic的函数关闭(改为false)
  4. 编译后保存。

游戏:Alice in cradle(此处搜索的为FnDrawMosaic,使用方法3.2)

【Tool|Tutorial】Unity游戏去码方法归纳(附带工具)9

【Tool|Tutorial】Unity游戏去码方法归纳(附带工具)10

右键编译类,true改为false,注意别划过了改错了函数

更改完成之后保存替换源文件

去码前后对比

 

 

【Tool|Tutorial】Unity游戏去码方法归纳(附带工具)11

【Tool|Tutorial】Unity游戏去码方法归纳(附带工具)12

 

结语:

  本文章中涉及的教程类型为本人从网上的学习经验的汇总,有兴趣的可以学习一下,一定要再去码之前判断马赛克类型,不然去了半天发现是贴图上面有码你会爆炸的哦

相关工具链接:

1.AssetStudio

Perfare/AssetStudio: AssetStudio is a tool for exploring, extracting and exporting assets and assetbundles.

2.UABEA

nesrak1/UABEA: c# uabe for newer versions of unity

3.BeplnEx

Releases · BepInEx/BepInEx

4.UniversalUnityDemosaics(其他类型插件自行查找)

ManlyMarco/UniversalUnityDemosaics: A collection of universal demosaic BepInEx plugins for games made in Unity3D engine

5.dnSpy

dnSpy/dnSpy: .NET debugger and assembly editor

© 版权声明
THE END
喜欢就支持一下吧
点赞12 分享
xiaollull的头像-Ninan ACG特殊赞助
评论 抢沙发
头像
你有意见?
提交
头像

昵称

取消
昵称表情代码图片

    请登录后查看评论内容