【笔记】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咯~

在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值