Linux教程

【笔记】MacOS/Linux下dump unity3d的资源

本文主要是介绍【笔记】MacOS/Linux下dump unity3d的资源,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

极速方法:

https://github.com/HearthSim/UnityPack

这个是一个python的,使用之前呢,先别急着git clonepython setup.py install。首先是为了干净,自觉创建一个virtualenv。然后就是安装dependency,虽然UnityPack会帮我们安装,但我安装的时候一直报错,所以就直接pip install了。

当然在MacOS上至少我的Intel BigSurdecrunch是安装不成功的,即使下载源代码python setup.py install也会报错,这个就麻烦了。所以搜索了一下这个库做了啥,原来是有些Texture2D是压缩了的,需要解压,反正我要摆弄的unity文件里没有要解压的,所以把unitypack/engine/texture.py里的import decrunsh相关的都移动到判断确实是压缩文件的if里,这样就不用安装decrunch了;记得顺带修改setup.cfgdecrunch注释掉。

安装完成,那么我们就可以使用了,unityextract --all -n -o /path/to/output/dir /path/to/unity/asset/file,这中间带个-n就是看看它运行了啥,要输出啥;oh no,WARNING: Texture format not implemented. Skipping 'Erma.png',我要的资源没有解压。那只能再改改代码,把信息print出来了。啊哦,打印出来一个ETC2_RGBA8,再在代码里找找,IMPLEMENTED_FORMATS下面没有这项,所以它会抛出不支持的错误,那这个ETC2咋解?

尝试了各种etcpack的第三方包,没有doc能说从raw block解码的,都是存成了ktx……

我记得windows上有个叫unityRipper的工具好像是可以解码的,找到它的github repo和对应文件:

https://github.com/mafaca/UtinyRipper/blob/master/uTinyRipperGUI/ThirdParty/Texture%20converters/EtcDecoder.cs

啊喂,又要我来人工代码转换……C# -> python,好吧,我写!几个小时后,运行……哈哈,输出一片栅栏格子…继续搜索,发现原来我一直再搜索PIL ETC2 decode,而我用的Pillow可不是PIL……一个pillow etc2 codec,好了,找到了别人写好的integration:

https://github.com/K0lb3/etcpack

git clone + python setup.py install,再import,好了终于可以decode etc2了。开始dump咯~

这篇关于【笔记】MacOS/Linux下dump unity3d的资源的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!