西游绘笔西行有大佬会解包嘛

这个游戏的skel动作文件它把基础人物和动作分开了,需要合并,不然只能在spine里查看,live2dviewerex会报错的,简单写了个合并脚本,操作如下。
1.提取出文件的bundles文件先把文件的伪文件头去掉放入as里面读取
2.type选择monobehaviour,然后搜索Info,将所有带有aniinfo的文件导出,这个里面记录了拆分出的两个skel文件,在bundles包里可以看到是u2d结尾的文件,文件直接导出到bundles的文件夹里面就行
3.运行脚本在bundles文件夹里面的output文件夹里面就有合并好的skel文件了,导出atlas和png文件就可以在live2dviewerex了查看了

import ujson
from pathlib import Path

def skel_merge(path):
    Path.mkdir(Path(path + "/" + "output"), exist_ok=True)
    path = Path(path)
    for jsonfile in path.rglob("*_aniInfo.json"):
        with open(jsonfile,"r",encoding="utf8") as f:
            data = ujson.load(f)
            skel_name = jsonfile.name.split("_aniInfo")[0] + ".skel"
            _baseBytesMd5 = data["_baseBytesMd5"]
            with open(str(path)+"/"+_baseBytesMd5+".u2d","rb")as f:
                _baseBytesMd5_bytes = f.read()
            _aniBytesMd5 = data["_aniBytesMd5"]
            with open(str(path)+"/"+_aniBytesMd5+".u2d","rb")as f:
                _aniBytesMd5_bytes = f.read()
            f.close()
        with open(str(path)+"/" +"output"+"/" +skel_name,"wb")as f:
            f.write(_baseBytesMd5_bytes)
            f.write(_aniBytesMd5_bytes)
            f.close()

if __name__ == '__main__':
    path = r"C:\Users\zjbook\Desktop\bundles"
    skel_merge(path)

最终效果

4 个赞