提取BanG Dream! 游戏内MV
博客二月份搭建以来一直以无实际内容的状态下挂着,最近正好有空闲的时间,就写一篇提取BanG Dream!游戏资源教程。这个教程应该适用于类似的游戏。不过要说的是,游戏内提取的MV视频质量比较低,所以并不是很适合用作视频的素材。
1. Tools
2. 游戏资源的获取
像BanG Dream!这样的游戏,为了防止安装包过大(应该是),一般都是在需要某些游戏资源的时候才进行下载,所以可以通过用文件管理器查看文件的 属性(时间戳、文件大小) 分辨是否为需要的资源文件。
另外,不同服的数据文件存储目录也不一样
- 国服: /sdcard/Android/data/com.bilibili.star.bili/files/data/
- 日服: /sdcard/Android/data/jp.co.craftegg.band/files/data/
- 其他: /sdcard/Android/data/<包名>/files/data/
2. 解包
将刚才的数据文件拷贝出来,打开AssetStudio,从左上角点击File -> Load File,选择数据文件,待载入之后切换到Asset List选项卡
点击上方Export -> All assets,将所有文件导出到一个目录
3. 合并文件
由于导出的文件是分块的,并不是一个完整的文件,所以需要按名称顺序将文件合并起来。
使用 cat 命令合并文件
$ cat TextAsset/*.usm.txt > merge_file.usm
使用 python 合并文件
import os file_path = "TextAsset/" # 文件目录 file_list = os.listdir(file_path) file_list.sort() with open("merge_file.usm","wb") as f: for i in file_list: usm = open(file_path + i, "rb") f.write(usm.read()) usm.close()
4. 最后一步
得到合并后的usm文件之后就可以用VGMToolbox解码了。
打开VGMToolbox,在目录树选择 VGMToolbox -> Misc. Tools -> Stream Tools -> Video Demultiplexer,然后在右边 Options 的 Format 选择 USM (CRI Movie 2)
再把刚才的 merge_file.usm 文件拖进 VGMToolbox ,就可以在 merge_file.usm 文件的同级目录得到结果
5. 可能会遇到的问题
- 提取出来的视频文件没有声音: 因为音频轨和视频轨是分开的,需要另外再提取音频文件
- VGMToolbox 转换失败: 在合并那一步有可能会因为一些原因导致文件顺序错乱,导致合并后的文件错误