位置: 编程技术 - 正文

Unity3D游戏开发之使用disunity提取Unity3D游戏资源(Unity3D游戏开发标准教程)

编辑:rootadmin

推荐整理分享Unity3D游戏开发之使用disunity提取Unity3D游戏资源(Unity3D游戏开发标准教程),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:Unity3D游戏开发标准教程,Unity3D游戏开发(第2版)pdf,Unity3D游戏开发标准教程,Unity3D游戏开发标准教程,Unity3D游戏开发(第2版),Unity3D游戏开发毕业论文,Unity3D游戏开发(第2版),Unity3D游戏开发标准教程,内容如对您有帮助,希望把文章链接给更多的朋友!

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

准备工作disunity:负责对Unity3D的数据文件进行解包Unity3D:负责将导出的数据文件显示出来Bleander或者3DsMax:负责Unity3D数据文件的转换处理,二选一即可。个人推荐Blender。Java:负责为disunity提供编译环境测试文件《新仙剑OL》下载《轩辕剑6外传穹之扉》《雨血前传:蜃楼》下载提取流程

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

编译disunity

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

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

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

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/下的s.unity3d_CCFB为例来讲解游戏模型的提取。

模型文件提取

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

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

模型贴图提取

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

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

将模型和贴图合并Unity3D游戏开发之使用disunity提取Unity3D游戏资源(Unity3D游戏开发标准教程)

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

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

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

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

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

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

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

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

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

Unity3D游戏开发之在iTween中使用事件机制 今天我们来说说在iTween中使用事件机制,众所周知iTween是Unity3D平台上一个优秀的第三方插件,通过这个插件呢,我们可以快速地实现诸如位移、伸缩、

【VR】虚拟现实行业初探 仅以此系列文章献给那些想了解虚拟现实(VR,VirtualReality)的朋友,专业人士及行业人士慎入。虚拟现实是利用电脑模拟产生一个三维空间的虚拟世界,

unity3d 移动平台性能优化专题():面板的colider问题和rigibody设置 首先有一个官方的说法:静态Colider请不要移动,否则会引起物理引擎啥啥啥重置,消耗性能。然后面板上毫无疑问是有colider的,而且可以肯定的是面板

标签: Unity3D游戏开发标准教程

本文链接地址:https://www.jiuchutong.com/biancheng/378744.html 转载请保留说明!

上一篇:Unity3D游戏开发之反编译AssetBundle提取游戏资源(Unity3D游戏开发标准教程)

下一篇:Unity3D游戏开发之在iTween中使用事件机制(Unity3D游戏开发(第2版))

  • 撤销增值税申报流程
  • 法人购买车险发票怎么开
  • 小规模纳税人收入是含税还是不含税
  • 预付账款退回怎么做凭证
  • 应收利息增加会计分录
  • 小规模零申报增值税
  • 什么不属于损益类的会计项目
  • 正常工资薪金所得是什么意思
  • 企业垃圾处理费计入什么科目
  • 行政事业单位会计制度
  • 附加税减免税会计处理怎么做?
  • 企业成立股东没有实际出资分录怎么写?
  • 应交税金属于什么会计分录
  • 老板请员工吃饭唯独没叫你是什么意思
  • 公司之间有哪些关系
  • 收到海外商务退税如何做账?
  • 软件开发服务费可以计入无形资产吗
  • 单位聘请临时工工资怎么报税
  • 年会奖金多少合适
  • 增值税专用发票和普通发票的区别
  • 民营医院增值税政策
  • 劳务费需要预缴税款吗
  • 纳税人提供不动产经营租赁增值税征收管理
  • 如何利用成套消费品进行纳税筹划
  • 空调安装工程如何做
  • 个人承包集体企业违法吗
  • 增值税税率为6%的是什么服务
  • 季报小微企业不包括哪些
  • 汇兑结算方式可以分为
  • 建筑劳务预缴税款后怎么申报
  • 稿费用交个人所得税吗
  • 税金及附加审计说明怎么写
  • 对外贸易法律的特征包括
  • 美团佣金收费标准结构图
  • 收到人才引进已受理的短信
  • linux7 nfs
  • 公司付物业费没开发票
  • php获取网页视频地址
  • php静态函数
  • 在途物资运费会计科目怎么写
  • php7安装教程详解
  • 免税货物增值税计算公式
  • php数组函数面试题
  • 企业发生的利得或损失应计入企业的营业外收支
  • web过滤器的常见应用
  • vue axios.all
  • 资本化利息支出现金流量表计入哪里
  • 小企业其他应收款坏账处理
  • 职工福利费怎么处理
  • 金蝶软件怎么查银行科目明细
  • 增值税纳税申报表怎么填
  • 小企业会计准则和一般企业会计准则的区别
  • 商品流通企业库存商品的核算方法有以下几种
  • 股权转让怎么查
  • dedecms源码
  • 法人给对公账户转账
  • 土地出让金如何缴纳
  • 期末汇兑损益的输入方式
  • 计提本月短期借款利息500元会计分录
  • 支付职工一次性补助
  • 什么是暂估入账金额
  • 会计记账借贷记什么账户
  • 会计账本是一年一本吗
  • sql语句学习
  • xp系统怎么删除系统
  • win8电脑背景变成黑色的了是为什么
  • csrsyncmlserver.exe是什么文件
  • win7怎么连接其他电脑共享的打印机
  • windows7使用
  • onekey.exe是什么
  • vs2012配置opencv4.8
  • 微信小程序倒计时乱跳
  • css实战案例
  • 我的自定义计划怎么删除
  • java栈怎么写
  • js如何输出页面内容
  • css伸缩弹动特效
  • android Intent Flags详解
  • 公司年会抽奖发言
  • 国际税收对经济活动的影响
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设