2018-02-24 13:16:42 q270274978 阅读数 1170
  • Unity3D入门到精通-(3)Unity资源管理精讲

    本次系列课程的目标是让Unity3D初学者掌握Unity3d的资源管理技术进行了全面介绍,特别对AssetBundle资源如何进行更新,以及加载(依赖资源加载)进行了系统的介绍。 适合对象:Unity初学开发者,Unity中级开发者,网络程序开发者,所有对游戏开发有兴趣的人员。 学习条件:有一定的Unity3D基础,了解C#的基本开发知识。

    4629 人正在学习 去看看 张刚

背景是这样的: 在之前的公司,我们项目组技术转型,从cocos转型到做egret . 找了个音乐类的游戏作为练习,只有ios版的,并且是用untiy3d做的,所以稍微找了下如何将untiy3d做的游戏,把图片剥离出来。作为学习用。

雨松MOMO的一个文章
另外一个

其中提到的比较好用的还是 Disunity 这个工具,这里也有个讲如何使用这个工具的

在解出来的文件后,有dds格式的图片,需要转成png来使用,使用这个工具

上面是如何从ipa中获取资源,可能有的资源没有解出来或者上面的不行事儿,ipa包不行,换apk包解出来,再使用unity studio 导出图片,使用dds convert 导出png图片

还有一个方法没有试,nvidia 的debugger 硬件层检查

2015-04-21 14:14:53 qinyuanpei 阅读数 32420
  • Unity3D入门到精通-(3)Unity资源管理精讲

    本次系列课程的目标是让Unity3D初学者掌握Unity3d的资源管理技术进行了全面介绍,特别对AssetBundle资源如何进行更新,以及加载(依赖资源加载)进行了系统的介绍。 适合对象:Unity初学开发者,Unity中级开发者,网络程序开发者,所有对游戏开发有兴趣的人员。 学习条件:有一定的Unity3D基础,了解C#的基本开发知识。

    4629 人正在学习 去看看 张刚

各位朋友,大家好,我是秦元培。今天博主想和分享的是使用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打包 !

2016-03-26 11:02:26 cbbbc 阅读数 3289
  • Unity3D入门到精通-(3)Unity资源管理精讲

    本次系列课程的目标是让Unity3D初学者掌握Unity3d的资源管理技术进行了全面介绍,特别对AssetBundle资源如何进行更新,以及加载(依赖资源加载)进行了系统的介绍。 适合对象:Unity初学开发者,Unity中级开发者,网络程序开发者,所有对游戏开发有兴趣的人员。 学习条件:有一定的Unity3D基础,了解C#的基本开发知识。

    4629 人正在学习 去看看 张刚

这两天无意间又发现了两个提取Unity游戏资源的工具,这会儿刚好有时间我就码点字总结一下。

一、disunity

因为之前写过了所以这里就不介绍了 。Unity3D研究院之mac上从.ipa中提取unity3D游戏资源(六十六)

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

二、UnityAssetsExplorer

下载地址:http://www.nexusmods.com/pillarsofeternity/mods/27/?tab=2&navtag=http%3A%2F%2Fwww.nexusmods.com%2Fpillarsofeternity%2Fajax%2Fmodfiles%2F%3Fid%3D27&pUp=1

百度云下载地址: http://pan.baidu.com/s/1AwTrg

如果你想解Unity5的游戏包,请使用 UnityAssetsExplorer 1.5 以上版本。

百度云下载地址: http://pan.baidu.com/s/1sjkjSJz

 

如下图所示,OpenAssets-File 选一个 .asset 或者一个.assetbundle 然后Extract All即可导出,感觉只是在disunity上增加了一个可视化的功能。


 

三、UnityStudio

其实我觉得这个工具非常牛逼、前面两个都只能把资源解开,预览图片资源得用别的工具才能打开。然而UnityStudio可以直接在自己的软件上查看图片、shader、文本、还能直接播放音频、甚至还能看场景Hierarchy视图的树状结构。强烈推荐用UnityStudio啊。

下载地址:http://forum.xentax.com/viewtopic.php?f=10&t=11807

百度云下载地址: http://pan.baidu.com/s/1hqjMnOg

直接预览图片


直接播放音频


查看场景树状结构


 

查看Shader代码。


查看文本内容


 

如果你想解Unity5的游戏包,请使用 UnityAssetsExplorer 1.5 以上版本。

百度云下载地址: http://pan.baidu.com/s/1sjkjSJz

 

因为Unity提供资源的工具很多,所有有些团队为了避免别人提取所以对资源进行了加密,最近又发现了一个神器基于硬件层面查看内存贴图,这样就直接无视对方加密了。。

下载地址在这里  https://developer.nvidia.com/gameworksdownload

下载Tegra Graphics Debugger   支持Mac Linux Windows

安装好以后连上安卓机器, 这里安卓的机器得是Tegra 机型查询 http://www.nvidia.cn/object/tegra-phones-cn.html

然后要选一个abd的路径,在android的sdk里platform-tools/adb

接着选择一个游戏包名,Lanch一下就会自动启动游戏,并且开始分析。

点击Capture Frame 截取一帧,然后选择Texture就可以看内存了, 给力吧。。


 

如果没有Tegra的手机,用高通的也可以,高通这个给力可以批量导出所有图片

下载地址: https://developer.qualcomm.com/software/adreno-gpu-sdk/tools

参考资料: http://zenhax.com/viewtopic.php?t=12

原文地址:http://www.xuanyusong.com/archives/3618

2017-12-15 14:26:44 Fenglele_Fans 阅读数 726
  • Unity3D入门到精通-(3)Unity资源管理精讲

    本次系列课程的目标是让Unity3D初学者掌握Unity3d的资源管理技术进行了全面介绍,特别对AssetBundle资源如何进行更新,以及加载(依赖资源加载)进行了系统的介绍。 适合对象:Unity初学开发者,Unity中级开发者,网络程序开发者,所有对游戏开发有兴趣的人员。 学习条件:有一定的Unity3D基础,了解C#的基本开发知识。

    4629 人正在学习 去看看 张刚

这两天无意间又发现了两个提取Unity游戏资源的工具,这会儿刚好有时间我就码点字总结一下。

一、disunity

因为之前写过了所以这里就不介绍了 。Unity3D研究院之mac上从.ipa中提取unity3D游戏资源(六十六)

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

二、UnityAssetsExplorer

下载地址:http://www.nexusmods.com/pillarsofeternity/mods/27/?tab=2&navtag=http%3A%2F%2Fwww.nexusmods.com%2Fpillarsofeternity%2Fajax%2Fmodfiles%2F%3Fid%3D27&pUp=1

百度云下载地址: http://pan.baidu.com/s/1AwTrg

 

如果你想解Unity5的游戏包,请使用 UnityAssetsExplorer 1.5 以上版本。

百度云下载地址: http://pan.baidu.com/s/1sjkjSJz

 

如下图所示,OpenAssets-File 选一个 .asset 或者一个.assetbundle 然后Extract All即可导出,感觉只是在disunity上增加了一个可视化的功能。

Unity3D研究院之提取游戏资源的三个工具支持Unity5(八十四) - 雨松MOMO程序研究院 - 1

 

三、UnityStudio

其实我觉得这个工具非常牛逼、前面两个都只能把资源解开,预览图片资源得用别的工具才能打开。然而UnityStudio可以直接在自己的软件上查看图片、shader、文本、还能直接播放音频、甚至还能看场景Hierarchy视图的树状结构。强烈推荐用UnityStudio啊。

下载地址:http://forum.xentax.com/viewtopic.php?f=10&t=11807

百度云下载地址: http://pan.baidu.com/s/1hqjMnOg

直接预览图片

Unity3D研究院之提取游戏资源的三个工具支持Unity5(八十四) - 雨松MOMO程序研究院 - 2

直接播放音频

Unity3D研究院之提取游戏资源的三个工具支持Unity5(八十四) - 雨松MOMO程序研究院 - 3

查看场景树状结构

Unity3D研究院之提取游戏资源的三个工具支持Unity5(八十四) - 雨松MOMO程序研究院 - 4

 

查看Shader代码。

Unity3D研究院之提取游戏资源的三个工具支持Unity5(八十四) - 雨松MOMO程序研究院 - 5

查看文本内容

Unity3D研究院之提取游戏资源的三个工具支持Unity5(八十四) - 雨松MOMO程序研究院 - 6

 

如果你想解Unity5的游戏包,请使用 UnityAssetsExplorer 1.5 以上版本。

百度云下载地址: http://pan.baidu.com/s/1sjkjSJz

 

因为Unity提供资源的工具很多,所有有些团队为了避免别人提取所以对资源进行了加密,最近又发现了一个神器基于硬件层面查看内存贴图,这样就直接无视对方加密了。。

下载地址在这里  https://developer.nvidia.com/gameworksdownload

下载Tegra Graphics Debugger   支持Mac Linux Windows

安装好以后连上安卓机器, 这里安卓的机器得是Tegra 机型查询 http://www.nvidia.cn/object/tegra-phones-cn.html

然后要选一个abd的路径,在android的sdk里platform-tools/adb

接着选择一个游戏包名,Lanch一下就会自动启动游戏,并且开始分析。

点击Capture Frame 截取一帧,然后选择Texture就可以看内存了, 给力吧。。

Unity3D研究院之提取游戏资源的三个工具支持Unity5(八十四) - 雨松MOMO程序研究院 - 7

 

如果没有Tegra的手机,用高通的也可以,高通这个给力可以批量导出所有图片

下载地址: https://developer.qualcomm.com/software/adreno-gpu-sdk/tools

 本文转载自: 

2015-03-19 14:33:31 Winner_2012 阅读数 4313
  • Unity3D入门到精通-(3)Unity资源管理精讲

    本次系列课程的目标是让Unity3D初学者掌握Unity3d的资源管理技术进行了全面介绍,特别对AssetBundle资源如何进行更新,以及加载(依赖资源加载)进行了系统的介绍。 适合对象:Unity初学开发者,Unity中级开发者,网络程序开发者,所有对游戏开发有兴趣的人员。 学习条件:有一定的Unity3D基础,了解C#的基本开发知识。

    4629 人正在学习 去看看 张刚

问题描述:如何提取由Unity3D开发的.assets格式文件中资源。

问题解决:

1.准备工作,首先要确定你已经完成如下准备工作:

     1)你想要查看的.assets格式的文件;

     2)你的PC端已经配置java环境或是安装jdk(最好是最新版本,具体操作不作说明);

2.提取资源核心步骤:

      1)准备工具:disunity

            下载地址:点击打开链接 (建议下载最新版本)

       2)下载后解压,放置任意位置,最好为英文路径,参考如下:

               i) 启动cmd命令窗口,根据实际目录输入命令:

                    java -jar  D:\CrackResourceTest\disunity_v0.3.4\disunity.jar  extract D:\CrackResourceTest\resource01.assets

              ii) 测试文件目录结构如图1所示:

              

                                                     图1 测试文件目录结构

               iii)操作截图如图2所示:

            

                                                         图2 输入命令

                  iv)执行命令后文件目录变化如图3所示:

            

                                         图3 资源文件夹resource01

                 v)resource01中即是我们需要的各类资源,如图4所示:

                  

                                      图4 获得的资源文件夹

3.问题解决。

4.补充,如果需要更详细的说明,可参考如下两篇文章:

http://bbs.9ria.com/thread-401140-1-1.html

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





Unity3D_UI

阅读数 195

没有更多推荐了,返回首页