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

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

    展开全文
  • Unity3D游戏资源的提取

    2014-09-16 22:37:07
    前言 ...国内一些比较小的Unity3D游戏基本上资源文件都打包在了apk的assets文件夹中,如下图中的《爸爸去哪儿2》资源结构。 我们知道,国外的游戏一般体验较高 画质一流,所以资源文件会更大
    现在越来越多的安卓游戏用Unity3D引擎编写,以前关注的地方都是内购破解方面,所以修改比较多的地方是C/C++编写的dll逻辑,资源的提取很少操作。看了 @林哥 的分享,http://www.kanxue.com/bbs/showthread.php?t=191380 ,觉得这方面提升的空间很大,就折腾了一番。
    
    
    前言
    在游戏中看到一张优美的画面,想作为手机壁纸;听到一首好听的音乐,想作为手机铃声。想啊 但是怎么找到它们?这就是资源的提取,下面我就说说对他们的浅显认识。
    Unity3D资源的存在形式
    国内一些比较小的Unity3D游戏基本上资源文件都打包在了apk的assets文件夹中,如下图中的《爸爸去哪儿2》资源结构:

    我们知道,国外的游戏一般体验较高 画质一流,所以资源文件会更大。并且貌似在国外 有一个规则就是资源文件大于60M的apk,必须要外带obb资源包。obb的引入方法就是放在SDCard的游戏目录下,obb其实就是一个压缩文件,文件内容同单独apk包下的 \assets\data\ 路径文件。如《死亡航线 Dead Route》的obb文件结构:


    一般资源文件夹中的文件类型的说明
    Shader:文本文件,后缀为.shader,配置有关;
    Texture2D:图片文件,一般的格式为tga或ktx,前者比较常用,后前网上说需要安装PowerVR 
                          Tools & SDK v3.3才可以打开;
    AudioClip:游戏的声音文件,格式是常见的wav或mp3等;
    Mesh:游戏全部的模型文件,格式obj,需要在3DMax或Maya中打开。

    如下图《死亡航线 Dead Route》提取出来的文件目录:


    obb中资源文件的提取

    强大的开源工具:Disunity。作者付出的努力和无私 @林哥 在那篇帖子中已经溢于言表..它是个Java程序,编译之后用命令行bat就行,将从obb解压出来的Data文件夹直接拖到cmd框中,即可自动试下解密,如下图:


    由于每个文件夹都有不同的资源 不便于特定资源的查找,所以就网罗了一个工具:IrfanView,它能够将不同文件夹下的资源放在一起进行预览,方法及效果如下图:


    后记
    资源算是提取出来,进阶是不是应该试试修改操作呢,比如替换图片,汉化等?遗憾的是Disunity并没有提供回编的功能,这就需要我们自己阅读它的源码,看它是怎么解出来文件的 才能做下一步的回编..(里面的表述和方式一定会有错误 还望看出来的高手不吝指出,谢谢)


    展开全文
  • Unity 游戏资源修改

    2020-04-20 16:55:39
    Unity游戏资源修改 简单介绍一下unity游戏中图片,材质,模型,带绑定模型的一般修改方法和一些小技巧,不同游戏处理资源的方式可能有些区别。熟悉unity的话可能会更容易理解吧。 所需工具: 1....

    Unity游戏资源修改


    简单介绍一下unity游戏中图片,材质,模型,带绑定模型的一般修改方法和一些小技巧,不同游戏处理资源的方式可能有些区别。熟悉unity的话可能会更容易理解吧。

    所需工具:
    1.UnityAssetBundleExtractor(资源导回,以下简称UABE)
    2.AssetStudio(可将模型导出为fbx格式,可以导出骨骼动画)
    3.FileLocatorPro或其它文件内容搜索工具 (资源文件较多时用于搜索文件)
    4.图片和模型编辑相关软件。
    5.Unity(建议用与游戏相同的版本,不修改模型不需要,官网可以下载到各种版本)

    一.图片(Texture2D)
    修改起来最简单的一种,用UABE打开asset文件,选中texture,点击Plugins->Export to (.tga/.png)可以导出图片;点击Plugins->Edit->可以修改图片属性,点击load可以导入图片。
    图片导出和导入
    可以用UnityStudio加载所有文件,在预览中查找所需图片,在列表中右键图片show original file可以显示图片所在的文件。

    二.材质和shader(material&shader)
    也是用UABE导出,导出时选点击Export Dump,导出的文本文件中会有相关的参数,可以自己尝试修改相关参数的数值。也可以用其他材质的文件替换,导回时选择Import Dump。shader导出可以用UnityStudio,或者Snapdragon Profiler。不过导出的shader可能并不能直接用。

    三.模型(mesh)
    建议用AssetStudio把模型导出为fbx格式,并且在option->Export options中将Scale Factor设置为100。否则模型的大小会和原来不一致。
    Unitystudio设置

    然后修改模型,模型的位置要与原模型尽量一致,比如刀枪之类的握把要和原来尽量重合。然后打开unity新建项目,将模型导入然后放入场景中,点击file->build&run,会生成一个unity游戏,然后用UABE打开生成的“名称_data”文件夹里的globalgamemanagers,找到刚才导入的mesh,点击Export raw/dump,然后打开修改前的源文件选择对应模型,点击Import raw/dump选择文件导回。然后修改对应的贴图,再把所有修改后的文件放回安装包或文件夹内,就完成了。
    注意材质的数量尽量与原来相同。

    四.带绑定的模型(skinedmesh)
    同样用Unitystudio导出fbx模型文件,模型带有骨骼和蒙皮,再修改时不要动模型的骨骼,然后要注意,如果第一个骨骼名和文件名部分相同需要删除这个骨骼,(比如老版本崩坏三中大多角色的第一个骨骼名都是avatar_name_…,就需要把这个骨骼删除,如果是bip001 就不需要。)
    然后编辑后->导入unity-> 导出游戏->用UABE导出模型数据为txt格式,(这时候并不能导回源文件,放回游戏模型会消失,需要进行一些修改)。
    mesh中需要保持部分数据不变,mesh的结构如下图:
    mesh结构
    红框内数据替换为修改后的数据,蓝框内数据需要进行修改,其他需要用原来的数据。
    m_skin的数据
    这里写图片描述
    m_bonenamehashes 的数据
    这里写图片描述
    其中boneindex[]= 后的数据是m_bonenamehashes中骨骼名称hash的编号,但是修改前后的顺序并不相同,所以需要根据bonenamehash修改新数据中的boneindex后的序号。我写了一个小程序可以完成这个步骤。

    更新:新增支持2018版本。
    下载地址 提取码: yx4j

    之后把程序生成的文件导回源文件即可。

    **五.角色的动作 **
    现在AssetStudio支持动作的导出,动作也可以修改了,把导出的带动作的fbx(和改带绑定模型一样去掉骨骼后)导入unity,然后设置好Animator Controller,点击运行可以动起来就可以,不会的可以参考这个http://blog.csdn.net/wayway0554/article/details/52313614。然后导出后可以找到animationclip 再导回原游戏文件。理论上没问题,不过我没有弄过。

    修改的过程中总会遇到很多坑的,大家多尝试就好。

    展开全文
  • 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非常强大,用它创建一个类似MiniGore这样的3D平面射击游戏简直轻而易举,而就连使命召唤这样的大型3d游戏,如果素材得当也不在话下。二是因为易用,他的操作非常容易,而使用的脚本语言又是...
  • Unity3d 游戏资源打包加密 图片/XML/TXT等 C 编码 一
  • 配置资源文件估计大家了解很多,比如XML、JSON、Protobuf、Excel、TXT...当我们需要将游戏资源里的贴图(Texture)、游戏对象(Gameobject)等预设体保存到配置文件时,这时我们就可以使用该配置文件 但是当关联...
  • Unity3D游戏优化方案

    2017-04-06 06:23:31
    作为一个入行不足三年的攻城狮来讲,讲引擎中的优化,经验确实不足,unity3D引擎作为一款侧重移动端游戏开发引擎来讲,优化游戏是确实有必要的,毕竟他要适配所有机型的前提下又要保证游戏画面的清晰度,特效的绚丽...
  • Unity3D自定义资源文件编辑工具插件。在Unity3D编辑器中,双击或者右键打开一些资源文件时,我们希望使用自定义的工具来打开/编辑这些文件,例如:使用文本编辑器打开.txt文件,使用Sublime Text 打开.shader文件等...
  • 今天我想和大家聊聊Unity3D游戏项目的版本控制。1、为什么要进行版本控制?  当我一个人写代码的时候,在我的脑海中是不存在版本控制这个概念的,因为我对整个项目的代码如数家珍。可是当我和一群人在一起写代
  • 对于Unity,虽然Unity自身会进行压缩加密,但是其解密算法在网上随处可见,如果自己觉得游戏里面的资料具有保密性质,请对其进行自行加密。 本文只是讲述一下过程,采用很简单的打包加密方法,至于需要什么样的加密...
  • 游戏中通常有大量资源,如网格、材质、纹理、动画、着色器程序和音乐等,游戏引擎作为做游戏的工具,自然要提供良好的资源管理,让游戏开发者用最简单的方式使用资源游戏引擎的资源管理包括两大部分:离线资源管理...
  • 在经历了一段时间的忙碌后,博主终于有时间来研究新的东西啦,今天博客向和大家一起交流的内容是在Unity3D游戏开发中使用SQLite进行数据库开发,坦白来讲,在我的技术体系中Web和数据库是相对薄弱的两个部分,因此...
  • 本课程是 Unity 3D 系列教程,目标是带领读者搭建一个商业游戏的网络架构设计,该架构设计是游戏的核心技术,将采用 Unity 2017.2 最新版本作为开发工具。内容分为 UI 架构、技能架构、服务器和网络同步四大部分,共...
  • Unity3D实战】零基础一步一步教你制作跑酷类游戏(填坑完整版) - Unity3D知识库
  • Unity3D制作基于web的网络游戏,不可避免的会用到一个技术-资源动态加载。比如想加载一个大场景的资源,不应该在游戏的开始让用户长时间等待全部资源的加载完毕。应该优先加载用户附近的场景资源,在游戏的过程中...
  • Unity3d实战之Unity3d网络游戏实战篇(8):网络管理类ServNet 学习书籍《Unity3d网络游戏实战》 罗培羽著 机械工业出版社 本文是作者在学习过程中遇到的认为值得记录的点,因此引用的代码等资源基本出资罗培羽...
  • unity3d文件反编译工具

    2020-07-30 23:30:48
    反编译 unity3d文件 点击'new project'选择要反编译的文件。 先点‘New project’选择unity3d文件,再点'Unpack Web Archrive in a directory'选择导出的文件夹。
  •   在flash时代,资源的动态加载非常的普遍,主要是受限于网速的快慢,我们在用unity3d制作在线项目的时候,不可避免的要考虑到优化...用Unity3D制作基于web的网络游戏,不可避免的会用到一个技术-资源动态加载。比如
1 2 3 4 5 ... 20
收藏数 6,786
精华内容 2,714
关键字:

修改unity3d游戏资源