提取unity3d游戏资源_unity3d游戏资源提取 - CSDN
  • 0x00 Disunity 一个很老的开源工具,好久没有更新了(暂不支持Unity5.x,建议使用Jdk7的版本),只持支命令行解包 源代码下载 https://github.com/ata4/disunity/ 编译版下载 ...

    0x00 Disunity 一个很老的开源工具(建议使用Jdk8的版本),只支持查看Unity5.x资源列表不支持资源导出,Unity4.x 支持命令行解包

    源代码下载 https://github.com/ata4/disunity/

    编译版下载 https://github.com/ata4/disunity/releases



    0x01 UnityAssetsExplorer 有点像界面版的Disunity,最新版已经支持Unity5.x(不是很稳定,不建议使用)

    下载地址(需要翻墙) http://forum.xentax.com/viewtopic.php?f=10&t=10085



    0x02 UnityStudio 可视化界面,可以批量导出贴图,模型,字体,音频等,可以预览,最新版已经支持Unity5.x (推荐使用)

    源代码下载 https://github.com/RaduMC/UnityStudio

    编译版下载 https://github.com/RaduMC/UnityStudio/releases

                       https://github.com/Perfare/UnityStudio/releases (推荐Perfare的分支版本)



    0x03 UnityAssetsBundleExtractor 可视化界面,是目前对Unity5.x支持比较好的工具(唯一支持资源回编的工具)

    可以提取资源和修改后的回编,缺点就是不能批量导出模型,但可以批量导出图片

    作者已分享此工具的API(C++),感兴趣的可以自己开发Unity解包工具 

    下载地址 https://7daystodie.com/forums/showthread.php?22675-Unity-Assets-Bundle-Extractor



    0x04 以上这些工具有的提供了图片转换插件可以直接把ktx tga dds pvr格式的文件转换成png格式

    想自己转换的可以用下面的工具进行转换

    PowerVR Tools & SDK中的PVRTexToolCLI.exe

    下载地址 http://community.imgtec.com/developers/powervr/installers/ (可能要翻墙)

    这个SDK有几百MB,但是只需要其中的一个文件,我已经写好了批处理文件,具体使用方法参看说明文档 下载见下方百度网盘


    网速不好或是不能翻墙的同学 可以去我的百度网盘下载以上所有文件 

    链接: http://pan.baidu.com/s/1c0I54XU 密码: q9m5

    展开全文
  • 博主在Unity3D游戏开发之反编译AssetBundle提取游戏资源这篇文章中其实已经提到过了,不过因为有些朋友对如何使用这个工具依然存在问题,所以博主决定特地写一篇文章来讲解如何使用disunity来提取Unity3D游戏中的...

    各位朋友,大家好,我是秦元培。今天博主想和分享的是使用disunity提取Unity3D游戏素材。这个工具呢,博主在Unity3D游戏开发之反编译AssetBundle提取游戏资源这篇文章中其实已经提到过了,不过因为有些朋友对如何使用这个工具依然存在问题,所以博主决定特地写一篇文章来讲解如何使用disunity来提取Unity3D游戏中的素材。

    准备工作

    • disunity:负责对Unity3D的数据文件进行解包
    • Unity3D:负责将导出的数据文件显示出来
    • Bleander或者3DsMax:负责Unity3D数据文件的转换处理,二选一即可。个人推荐Blender。
    • Java:负责为disunity提供编译环境

    测试文件

    • 《新仙剑OL》下载
    • 《轩辕剑6外传穹之扉》
    • 《雨血前传:蜃楼》下载

    提取流程

    好了,在确定做好所有的准备工作后,我们就可以正式开始今天的内容了!

    编译disunity

    虽然我们可以从disunity的项目主页中下载release版本,不过为了保险起见,博主依然建议大家自行编译disunity。编译的方法是在命令行中切换到disunity的目录,然后执行命令:

    java -jar disunity.jar

    如果大家的Java环境没有任何问题的话,那么接下来我们就应该可以看到:

    [Info] DisUnity v0.3.4

    以及各种关于这个工具的使用方法和参数选项。那么好了,现在我们就来熟悉下disunity这个工具的常用命令。disunity命令的基本形式是:

    disunity [CommandName] [CommandOptions]

    disunity命令

    • dump:将一个二进制的对象转化成人类可以阅读的文本信息。
    • dump-struct:将一个二进制的对象转化为结构化的信息。
    • extract:将Unity3D的数据文件转化为常见的文本、声音、图片等信息。
    • extract-raw:将Unity3D的数据文件转化为可序列化的对象,在extract命令不被支持的情况下使用。
    • extract-txt:和dump命令类似输出转换结果到命令行。
    • extract-struct:和dump-struct命令类似输出转换结果到命令行。
    • info:输出Unity3D的数据文件和AssetBundle文件的变量信息。
    • bundle-extract:释放所有的被打包到AssetBundle中的文件。
    • bundle-inject:将从AssetBundle中打包的文件重新打包

    暂时先介绍这些,因为其它的命令我们基本用不到,如果需要深入研究这些命令,可以参考disunity项目中的README.md文件。

    解析《新仙剑OL 》的AssetBundle文件

    这里我们以游戏目录/assetbundles/NPC/Models/下的s049.unity3d_CC9026FB为例来讲解游戏模型的提取。

    模型文件提取

    首先我们将这个文件的扩展名改为s049.unity3d,因为这是它原始的扩展名,是Unity3D中导出AssetBundle的一种文件格式。好了,我们将这个文件放在一个无中文路径的目录下,这里以C:\Users\Robin\Desktop即桌面为例。注意首先进入disunity的目录,然后执行命令:

    disunity extract C:\Users\Robin\Desktop\s049.unity3d

    接下来会在桌面生成一个名为s049的文件夹,在这个文件夹中找到Mesh的子文件夹,会得到一个s049.obj的文件,这个文件就是我们提取到的模型文件。

    模型贴图提取

    好了,下面我们再来看看怎么提取这个模型文件对应的贴图,在游戏目录/assetbundles/NPC/Texture/下有一个名为s049_1.unity3d_1D2446B9的文件,这就是s049这个模型对应的贴图了。同样地,我们将其重命名为s049_1.unity3d然后执行命令:

    disunity extract C:\Users\Robin\Desktop\s049_1.unity3d

    接下来在桌面上生成一个名为s049_1的文件夹,在这个文件夹中找到Texture2D的子文件夹,会得到一个名为s049_1.dds的贴图文件,这就是我们要提取的模型s049的贴图文件。

    将模型和贴图合并

    我们打开Blender并将s049.obj文件导入,然后将场景中默认的灯光和摄像机都删除,因为我们只需要一个模型文件,我们发现在Blender中已经可以看到模型了,因为Unity3D中使用的是FBX模型,所以我们这里将模型文件导出为FBX备用。因为Unity3D可以识别dds类型的贴图,所以对贴图我们不用做任何处理。

    童年林月如的模型

    打开Unity3D将童年林月如的模型和贴图一起导入,将童年林月如的模型拖入到游戏场景中,因为模型的尺寸没有经过调整,所以模型刚开始可能会比较小,我们可以在Unity3D进行局部的调整。接下来我们会发现模型没有贴图,只要选择这个模型然后在属性窗口为它附上s049_1.dds的贴图文件即可。下面是童年林月如的模型导入Unity3D以后的效果:

    童年林月如导入Unity3D后的效果

    解析《新仙剑OL》的assets文件

    和AssetBundle不同,assets文件是整个Unity3D项目中项目资源的打包集合,比如说Asset文件下的资源都会被打包到这里,所以说解析assets文件可能会有更大的收获吧!因为所有的Unity3D游戏都会有这样的文件,而AssetBundle文件只有在使用了这项技术的游戏项目中才有。比如说在Unity3D中有一个重要的Resource文件夹,这个文件夹打包后被被打包成resources.assets文件。这里我们以xianjian_Data/resources.assets文件为例。首先执行命名:

    disunity extract C:\Users\Robin\Desktop\resources.assets

    接下来会在桌面生成一个resources的文件夹,打开这个文件夹我们会发现三个子文件夹,分别是Shader、TextAsset和Texture2D。解析的结果似乎有点失望,不过在TextAsset文件夹下我们会找到一个叫做ResourceFiles.txt的文件,这是一个纯文本文件,我们可以直接打开,打开后我们发现它的内容是一个Xml文件,并且在这个Xml文件中定义了游戏中使用的各种资源的路径,不过这些资源都是以AssetBundle的形式来定义的。这说明什么呢?这说明《新仙剑OL》的场景和界面资源是通过动态加载的方式加载到游戏当中的,而这些资源则是通过这个Xml文件来配置和管理的,这符合我们平时在Unity3D游戏开发中的观点和方法。通过这个文件,我们找到了assetbundles/config/movieconfig.unity3d这个文件,这是一个负责维护游戏中场景过场动画的文件。下面我们就来尝试解析这个文件,不过游戏制作方对config文件夹下的内容进行了加密,因为在这个文件夹下面是两个AssetBundle文件,博主尝试用extract和bundle-extract两个命令进行解析,可是得到的只是些文本文件,对我们继续研究没有什么帮助。那么好了,现在我们能够进行解析的只有xinjian_Data/sharedassets0.assets文件了:

    disunity extract C:\Users\Robin\Desktop\sharedassets0.assets

    这个解出来的话是些没有什么用的贴图文件,看来如果要提取音乐或者图片的话,还需要进行更加深入的研究才行啊。

    解析《雨血前传.蜃楼》的assets文件

    因为解析《新仙剑OL》的assets文件没有得到什么有用的东西,所以我们接下来来尝试解析《雨血前传.蜃楼》的assets文件。这款游戏是博主比较喜欢的一款游戏,基于Unity3DY引擎,而且这款游戏是作为Unity3D官方范例来推广的,因此研究这款游戏对我们提高Unity3D的资源打包机制会比较有帮助。好了,我们直接上手:

    disunity extract C:\Users\Robin\Desktop\resources.assets

    哈哈,这款游戏果然没有让我们失望,我们得到了什么呢?

    蜃楼中各种Boss的头像

    蜃楼中游戏连招视频1

    蜃楼中游戏连招视频2

    总结

    • 不同的游戏采用的资源配置方案都不同,不过一般可以从resources.assets这个文件入手作为突破点。
    • 如果能拿到游戏中数据配置方案,对于我们提取游戏中的素材会有较大的帮助,因为这样方向性会更强些。
    • 通过AssetBundle动态加载到场景中最好还是采用一个配置表来进行配置,这样便于我们管理和维护整个游戏项目。
    • 如果没有服务器段的干预,理论上只要修改了本地的AssetBundle文件就可以实现对游戏内容和数据的更改,换句话说,可以做外挂和修改器。

    声明:我不是在教你破解游戏,我只是在研究AssetBundle打包 !

    展开全文
  • 感谢今天某大神(既然是大神名子我当然要保密喽...以前很多人都说用Disunity提取出了Unity3D资源,但是我在Mac上从来没有成功过,一直在报错。https://github.com/ata4/disunity/releases 在这里可以看到Disu

    http://www.xuanyusong.com/archives/2584


    感谢今天某大神(既然是大神名子我当然要保密喽)告诉我Disunity更新了,不然我还不知道。以前很多人都说用Disunity提取出了Unity3D资源,但是我在Mac上从来没有成功过,一直在报错。https://github.com/ata4/disunity/releases 在这里可以看到Disunity3.0是19天以前更新的,新版本真的是太好用了,我不得不赞一下 嘿嘿。 不过记得要在MAC上装好jdk7

    http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html 在这里可以下载mac os 的。

    接着找一个Unity3d做的游戏,这里我在补充一下如何辨认某个游戏是用u3d做的。

    1.在网上随便下载一个游戏.ipa,并且解压到本地。

    2.找到xxx/xxx.app,右键显示包内容,打开Data文件夹。

    3.如果发现文件夹中包含 unity default resources 文件,那么恭喜你这个游戏就是用unity3d做的。

    屏幕快照 2014-05-06 下午9.26.35

    再看看这里几个比较重要的文件。

    level0 / leve1 ….   图中0-5一共有6个文件,这表示这个游戏用了6个游戏场景。

    sharedassets0/sharedassets1 …. 图中0-6一共有7个文件,它的数量永远比场景的数量多一个,可见它和场景有关联性,可以用工具把它解开看看。

    Managed:这个文件夹下放的都是dll ,unity自己写的脚本编译成dll后就放在这里,还有其他第三方的dll也放在这里。

    resources.assets:这个东西就比较重要了,他游戏里面所有放在resources文件夹下的东西都会放在这里,我们提取也主要在这里提取。

    Raw:如果游戏在StreamingAssets文件夹下放东西,那么就会出现一个Raw文件夹。

    PS:我个人觉得最好不要在StreamingAssets文件夹下放东西,因为ipa一解开就能看到里面放的啥东西了。如果真的要放,我觉得最好不要放.assetbundle 文件。 因为你需要用www.LoadFromCacheOrDown 这样第一次它会把StreamingAssets下的assetbundle 解压到本地的cache文件夹中,那么StreamingAssets文件夹又是一个只读的文件夹,也就是说你只能读取不能删除,结果就会造成容量过大  因为 解压后的文件 和没有解压的文件都保存在本地。。 所以assetbundle最好直接从服务器上下载,那么这样本地就不会多出来一个assetbundle。

    回到正题,说说怎么提取资源。

    https://github.com/ata4/disunity/releases 

    先把DisUnity3.0版本下载到本地然后解压。 确保本地装了jdk7以后打开终端运行。

    java -jar /Users/MOMO/Desktop/disunity_v0.3.0/disunity.jar  extract /Users/MOMO/Desktop/Data/resources.assets 

    一个是disunity.jar的路径,另外一个是resources.assets的路径,根据你电脑的路径来配置就可以了。 嘿嘿嘿各种资源就呼呼呼的解开啦。。如下图所示,它会在resources.assets的同级目录自动创建一个resources的文件夹。

    AudioClip:这里是解开的游戏全部声音文件,可以直接播放。

    Mesh:这里解开的游戏全部模型文件,他的格式是.obj 你需要在3dmax或者maya中打开,然后转成FBX就可以在u3d里面看到了,嘿嘿。

    Shader:这里解开游戏 全部用的shader文件,可以直接使用。

    TextAsset:这里解开的是游戏中全部用的text文本文件,如果文本不加密,这里就全都会看到的 嘿嘿呵。

    Texture2D:这里放的就是游戏中用到的所有图片,一般是由tga或者 ktx组成,tga可以直接在电脑上查看,但是.ktx需要借助工具来看。

    屏幕快照 2014-05-06 下午11.33.41

     

     嘿嘿,这里我把Hello Hero这个游戏的图集解开了。如下图所示,这是它用的一个UI图集。

    屏幕快照 2014-05-06 下午11.38.58

    但是模型的贴图怎么解开呢?HelloHero的所有模型贴图都是.ktx格式的。

    我们首先要下载一个神一样的工具,嘿嘿。

     

    http://community.imgtec.com/developers/powervr/installers/

     

    下载以后需要安装,安装的时候有一个打开文件的类型,你可以勾选一下.ktx

    安装完以后,运行文件的路径很深 

    /Applications/Imagination/PowerVR/GraphicsSDK/PVRTexTool/GUI/OSX_x86

    双击打开就可以。如下图所示,把ktx的图片拖进来就可以看到它的原图了。。

    屏幕快照 2014-05-07 上午12.35.43

    打开.ktx的图以后,可以在把它导出成可以直接在电脑上预览的图片了。。嘿嘿嘿嘿,是不是很简单哈?

    http://blog.csdn.net/delguoqing/article/details/22619711 另外这篇文章可以推荐大家看看

     

    我在补充一下, 这两个工具都是跨平台的, windows linux mac都可以使用的。


    展开全文
  • 以前很多人都说用Disunity提取出了Unity3D资源,但是我在Mac上从来没有成功过,一直在报错。https://github.com/ata4/disunity/releases 在这里可以看到Disunity3.0是19天以前更新的,新版本真的是太好用了,我不得...
    感谢今天某大神(既然是大神名子我当然要保密喽)告诉我Disunity更新了,不然我还不知道。以前很多人都说用Disunity提取出了Unity3D资源,但是我在Mac上从来没有成功过,一直在报错。https://github.com/ata4/disunity/releases 在这里可以看到Disunity3.0是19天以前更新的,新版本真的是太好用了,我不得不赞一下 嘿嘿。 不过记得要在MAC上装好jdk7
    

    http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html 在这里可以下载mac os 的。

    接着找一个Unity3d做的游戏,这里我在补充一下如何辨认某个游戏是用u3d做的。

    1.在网上随便下载一个游戏.ipa,并且解压到本地。

    2.找到xxx/xxx.app,右键显示包内容,打开Data文件夹。

    3.如果发现文件夹中包含 unity default resources 文件,那么恭喜你这个游戏就是用unity3d做的。

    屏幕快照 2014-05-06 下午9.26.35

    再看看这里几个比较重要的文件。

    level0 / leve1 ….   图中0-5一共有6个文件,这表示这个游戏用了6个游戏场景。

    sharedassets0/sharedassets1 …. 图中0-6一共有7个文件,它的数量永远比场景的数量多一个,可见它和场景有关联性,可以用工具把它解开看看。

    Managed:这个文件夹下放的都是dll ,unity自己写的脚本编译成dll后就放在这里,还有其他第三方的dll也放在这里。

    resources.assets:这个东西就比较重要了,他游戏里面所有放在resources文件夹下的东西都会放在这里,我们提取也主要在这里提取。

    Raw:如果游戏在StreamingAssets文件夹下放东西,那么就会出现一个Raw文件夹。

    PS:我个人觉得最好不要在StreamingAssets文件夹下放东西,因为ipa一解开就能看到里面放的啥东西了。如果真的要放,我觉得最好不要放.assetbundle 文件。 因为你需要用www.LoadFromCacheOrDown 这样第一次它会把StreamingAssets下的assetbundle 解压到本地的cache文件夹中,那么StreamingAssets文件夹又是一个只读的文件夹,也就是说你只能读取不能删除,结果就会造成容量过大  因为 解压后的文件 和没有解压的文件都保存在本地。。 所以assetbundle最好直接从服务器上下载,那么这样本地就不会多出来一个assetbundle。

    回到正题,说说怎么提取资源。

    https://github.com/ata4/disunity/releases 

    先把DisUnity3.0版本下载到本地然后解压。 确保本地装了jdk7以后打开终端运行。

    java -jar /Users/MOMO/Desktop/disunity_v0.3.0/disunity.jar  extract /Users/MOMO/Desktop/Data/resources.assets 

    一个是disunity.jar的路径,另外一个是resources.assets的路径,根据你电脑的路径来配置就可以了。 嘿嘿嘿各种资源就呼呼呼的解开啦。。如下图所示,它会在resources.assets的同级目录自动创建一个resources的文件夹。

    AudioClip:这里是解开的游戏全部声音文件,可以直接播放。

    Mesh:这里解开的游戏全部模型文件,他的格式是.obj 你需要在3dmax或者maya中打开,然后转成FBX就可以在u3d里面看到了,嘿嘿。

    Shader:这里解开游戏 全部用的shader文件,可以直接使用。

    TextAsset:这里解开的是游戏中全部用的text文本文件,如果文本不加密,这里就全都会看到的 嘿嘿呵。

    Texture2D:这里放的就是游戏中用到的所有图片,一般是由tga或者 ktx组成,tga可以直接在电脑上查看,但是.ktx需要借助工具来看。

    屏幕快照 2014-05-06 下午11.33.41

     

     嘿嘿,这里我把Hello Hero这个游戏的图集解开了。如下图所示,这是它用的一个UI图集。

    屏幕快照 2014-05-06 下午11.38.58

    但是模型的贴图怎么解开呢?HelloHero的所有模型贴图都是.ktx格式的。

    我们首先要下载一个神一样的工具,嘿嘿。

     

    http://community.imgtec.com/developers/powervr/installers/

     下载 PowerVR Tools & SDK v3.3 – MacOS X Installer

    下载以后需要安装,安装的时候有一个打开文件的类型,你可以勾选一下.ktx

    安装完以后,运行文件的路径很深 

    /Applications/Imagination/PowerVR/GraphicsSDK/PVRTexTool/GUI/OSX_x86

    双击打开就可以。如下图所示,把ktx的图片拖进来就可以看到它的原图了。。

    屏幕快照 2014-05-07 上午12.35.43

    打开.ktx的图以后,可以在把它导出成可以直接在电脑上预览的图片了。。嘿嘿嘿嘿,是不是很简单哈?

    http://blog.csdn.net/delguoqing/article/details/22619711 另外这篇文章可以推荐大家看看

     

    我在补充一下, 这两个工具都是跨平台的, windows linux mac都可以使用的。

    我在补充一下,如果你解开的哪个游戏里面没有resources.assets 那么有可能它游戏里面 没有Resources这个文件夹。有可能它是通过assetbundle下载的。。

    java -jar /Users/MOMO/Desktop/disunity_v0.3.0/disunity.jar  extract /Users/MOMO/Desktop/Data/*.assets

    你可以执行,把所有的.assets都解开。因为有些东西他可以预制在场景里面,不需要通过Resources.Load。

    你最好在反编译一下它的代码, 看看它的assetbundle的下载地址是多少。。

    展开全文
  • 以前很多人都说用Disunity提取出了Unity3D资源,但是我在Mac上从来没有成功过,一直在报错。https://github.com/ata4/disunity/releases 在这里可以看到Disunity3.0是19天以前更新的,新版本真的是太好用了,我不得...
  • Unity3d游戏提取资源工具
  • Unity3D游戏资源提取

    2014-09-16 22:37:07
    前言 ...国内一些比较小的Unity3D游戏基本上资源文件都打包在了apk的assets文件夹中,如下图中的《爸爸去哪儿2》资源结构。 我们知道,国外的游戏一般体验较高 画质一流,所以资源文件会更大
  • 找了个音乐类的游戏作为练习,只有ios版的,并且是用untiy3d做的,所以稍微找了下如何将untiy3d做的游戏,把图片剥离出来。作为学习用。 雨松MOMO的一个文章 另外一个 其中提到的比较好用的还是 Disunity 这个...
  • 这两天无意间又发现了两个提取Unity游戏资源的工具...Unity3D研究院之mac上从.ipa中提取unity3D游戏资源(六十六)  http://www.xuanyusong.com/archives/2584 二、UnityAssetsExplorer 下载地址:http://www.n...
  • 发现一款不错的游戏,是用unity 3d 开发的,想提取资源看看,网上搜了些资料,总结一下,做个备忘。 如何是否为 unity3d 引擎开发, .ipa 文件是压缩文件的格式,我们用可以用 tar zxvf xxx解压,或者找个解压...
  • 今天我们来说说通过反编译Unity3D的AssetBundle来提取游戏资源,博主写这篇文章的目的并非是要教大家如何去破解一款基于Unity3D引擎开发的游戏,而是想通过今天这篇文章来告诉大家如何在开发Unity3D游戏的过程中保护...
  • unity3d游戏资源提取

    2014-09-13 11:19:50
    E:\gameTool\disunity_v0.3.2>java -jar disunity.jar extract "E:\游戏开发3\xxx\unity default resources
  • 首先感谢 雨松MOMO 的一篇帖子 教我们怎么提取 .ipa 中的游戏资源。教我们初步的破解unity3d资源的基本方法 附上原帖的链接: http://www.xuanyusong.com/archives/2584 下面我会从头介绍一下提取的全过程: ...
  • 问题描述:如何提取Unity3D开发的.assets格式文件中资源。 问题解决: 1.准备工作,首先要确定你已经完成如下准备工作:  1)你想要查看的.assets格式的文件;  2)你的PC端已经配置java环境或是安装jdk(最好是...
  • Mannaged:这个文件夹下放的都是dll,Unity3D的逻辑脚本编译成dll后就放在这里面; resources.assets:游戏所有放在resources文件夹下的东西都会嵌在里面; Raw:如果游戏在StreamingAssets文件夹下放东西,那么就...
  • unity游戏资源提取工具
1 2 3 4 5 ... 20
收藏数 1,313
精华内容 525
关键字:

提取unity3d游戏资源