注意事项
相关工具会传到网盘。链接如下(如果没链接那就是过期还没更新/文章没更新)
BGM:
解包工具合集(不包含uestdio,assetstdio):点击此处
此文章主要是讲解如何提取游戏内的音频文件,所以默认各位会使用assetstdio,并且已经解包出了texture2D和sprite等文件夹下的图片素材。不会这一步的可以参考本人其他文章。
AssetStdio使用例
必备工具与知识:UEStdio,十六进制转十进制计算器,对RIFF文件结构的了解,fsbextractor等工具的使用,powershell的使用。
寻找音频文件
电脑用户直接load folder就行。
如果你是手机用户,可以把手机上的文件(可以只传游戏文件夹下的名字为_data的文件)用数据线传到电脑上。由于手机上的_data文件都没有文件后缀,所以需要你自己一个个补上.asset后缀。(或者自己写个bat,详细可见此篇文章点击此处)
以你游为例,音频文件类型均为TextAsset。用AssetsStdio的时候可以先预览,看看右边开头是不是RIFF,如果是的话那这就是你待会要处理的音频文件。
.bytes转为.fsb
必备工具
UEStdio 支持十六进制转十进制计算器(网页版也可以,方便自己用就行。当然你自己写个也完全没问题)
步骤
会解决这个后面的就很简单了。
首先导出你要解包的文件(文件后缀应为.bytes),然后用UEStdio打开,如下图。
按ctrl+f搜索“fsb”,找到fsb第一次出现的位置,记住此时的地址。(图中为9900)
注:一般来说第一次出现fsb的位置应在某段开头,不是的话看看你是不是找错了。
然后你需要删除从开头RIFF一直到这段FSB之间的所有内容,通过十六进制计算器我们得到这个区间内一共有39168个字节。
为什么是十六进制而不是二进制八进制balabala?因为图中00009900h后面的这个h代表的就是十六进制(hex)。
重新回到并点击开头也就是RIFF那行,框里输入39168后回车,这样我们就删掉了从RIFF开始一直到fsb前一共39168字节的内容。
请确保此时FSB这三个字母在第一行的开头位置。
然后保存。再把文件后缀从.bytes改为.fsb即可。
多出来的.bak是改动即删掉RIFF那块结构前的备份文件,如果你不确定自己有没有搞错删错啥的可以先留着。
现在,你应该得到了一个后缀为.fsb的文件(或者还有一个.bak的备份文件)。那么这一步就算完成了。
解决乱码
你已经完成了最困难的一步,现在你所需的bgm都在.fsb文件中。但或许你在使用UEStdio的时候就已经发现了--那些乱码到底是三小玩意?
必备工具
FsbExtractor
步骤
提取.fsb文件
解决完乱码后,最困难的第二步就完成了。现在只需将.wav从.fsb中提取出来就大功告成了。
必备工具
fsb_aud_extr fmod_extr
可备工具
quickbms