前言
asset作为一个目录表指引着引擎去resource寻找对应的文件
那么要做的是就是手动更改这个目录
其实文本,音频视频图片都通杀的
这里拿音频作为演示,图像视频文本文件导出推荐使用AssetStudio导出
音频就拿UABEA的快捷导出也行
AssetStudio获取文件的PatchID路径ID,与所在封包的位置
UABEA获取原始文件的offset偏移量与size大小
利用Unity的Build打包shaders0.asset获取二进制字节复制到游戏的原始resource的最下方
记录最下面一行的
16进制,用微软自带的计算机转换为10进制数,保存为新文件offest,记录新文件size
再使用UABEA拖入游戏原始asset,导出对应路径ID的文件的索引
修改索引的offset为新文件offset与新文件size
然后再将索引导入回去,保存asset即可完成替换
图片文本可以直接替换,也可以按照帖子内的方法替换
Asset在游戏\游戏_Data
这里用
猫研社
作为演示
打开AssetStudio
https://github.com/aelurum/AssetStudio/releases/tag/v0.19.0
下载对应.net版本的AssetStudioModGUI
拖入asset后,选择文件类型为AudioCilp
找到你要更改的文件,如果游戏的体量庞大,请自行dump慢慢听

例如我想更改bgm04与bgm07
在excel建一个表格或者记事本记录文件信息
记录PatchID方便uabea查找对应文件
记录文件所处哪个封包


使用UABEAvalonia查看文件索引信息
UABEAvalonia.exe
https://github.com/nesrak1/UABEA/releases/tag/v8
拖入asset
往下滑按顺序找到记录的PatchID
ViewData
分别查看两文件

点击StreamResource以展开此栏目查看Offest与Size

复制
采样率Frequency
深度BitsPerSample
偏移值Offest
大小Size
压缩方式CompressionFormat

选中文件后点击Plugins
Export audio file
AU等音乐软件自行替换音效,并且保证时常尽量一致
Unity打包asset
安装UnityEditor
https://pan.baidu.com/s/1qGsbHSkVvUTzVB7TR8NG8g
提取码: h3ra
别装C盘就是,记住路径
UnityEditor安装完成后
在UnityHub领取个人证书
https://pan.baidu.com/s/1vP0lq9Yc3OEh3NzXUuaJAA
提取码: 56sc
如下
Sign in登录账号

设置你安装的UnityEditor目录

右上角齿轮设置add添加证书

New Project

3D场景
找个位置储存项目

等待加载耐心等待绿条走完

把音频拖入到引擎内的文件管理器内

再将音频拖入到场景中

在项目文件夹内设置

Add Open Scenes

Buid并导出至指定文件夹
save,如果弹这个

等编译

完成后直接关掉引擎还有HUb
记录新offset与size
推荐以offset为0的文件优先进行处理
其实复制过程都一样只是顺序不同罢了
另一个文件也同理
二进制编辑器编辑
\My project_Data的shaders0.resource里头就是我们要的文件
拖入到二进制编辑器010Editor选中范围

开始0,记得调成十进制
输入之前记录的offset与size
复制到另一个新建16进制文本保存为.fsb
例如第一个文件
BGM7
offset:0
size:5127008

新建十六进制文件

将二进制复制到新建16进制文件
保存命名为BGM7.fsb
第二个也同理
offset:5127008
size:7844704
创建一个新的,复制粘贴,命名为BGM4.fsb
在另一游戏请根据文件的具体名字进行编辑
放回游戏原始resource
拖到最下面一行
最底下右边地址
17A60A0
请以实际为准
要将十六进制转十进制
拿微软的计算器啥的也行
或者百度十六进制转十进制计算器在线工具
结果是24797344

然后记录为游戏原始resourceOffset

然后复制粘贴第一个二进制文件

第二个游戏原始resourceOffset
现在有新的一行
1C89C00
结果
29924352
复制粘贴
如果还有第三第四个等等也如此类推
uabea重新修改文件索引
Export Dump


