一种3D跨平台资源管理系统和方法与流程

文档序号:17185657发布日期:2019-03-22 21:20阅读:223来源:国知局
一种3D跨平台资源管理系统和方法与流程

本发明涉及室内装修技术领域,尤其涉及一种3d跨平台资源管理系统和方法。



背景技术:

因unity3d编辑器、unity3d运行时和unrealengien4编辑器的操作环境不同,三个端的文件需求格式各不一样,在unity3d编辑器端口内,浏览模型需要.fbx模型文件,模型文件.fbx由3dmax软件生成并导出,再导入到unity3d中,拖放到场景内生成.prefab文件方可在场景内浏览。浏览材质文件的文件名为.sbsar,材质文件.sbsar由3dmax软件生成并导出,再导入到unity3d中,将材质拖入unity3d的material组件内,在相应的mesh内使用该material即可浏览材质。

在unity3d运行时端口内,使用模型以及材质素材需要使用unity3d自带函数buildpipeline.buildassetbundles将.prefab文件打包成unity3d可加载资源.assetbundle文件格式。载入资源后解压资源并实例化即可浏览相应模型及材质。

在ue4编辑器端口内,即ue4编辑器,浏览模型需要先导入.fbx文件并勾选导入mesh网格选项,再导入substanceplugin插件,再把.sbsar材质通过substanceplugin插件导入ue4绑定mesh,再将mesh拖放进场景即可浏览模型文件,材质导入后直接拖放进场景mesh物体上即可浏览。

现有技术都是各自使用一套资源管理系统,但这样不仅不利于迭代,而且文件重复下载占用磁盘空间,还不利于后台服务器开发及优化。所以需要一种可以统一管理模型材质以及其他相关资源的跨平台资源管理系统和方法。



技术实现要素:

有鉴于此,本发明提出了一种可以统一管理模型材质以及其他相关资源的跨平台资源管理系统和方法。

本发明的技术方案是这样实现的:本发明提供了一种3d跨平台资源管理系统,其包括unity3d编辑器、unity3d运行时、ue4编辑器、oss和服务器,unity3d编辑器包括assetbundle打包函数、输入输出流、assetbundles分类、textures分类和texts分类;

unity3d运行时包括资源集管理器、资源集数据模型、文件管理器和文件数据模型;

assetbundle打包函数利用buildpipeline.buildassetbundles函数将.prefab文件打包成.assetbundle文件并自动传入assetbundles分类中;

输入输出流将上传文件的资源本地存储地址、远程地址、名称和分类信息做成json格式,并将json格式的文件打包成.txt文本并自动传入texts分类中;

assetbundles分类存储.assetbundle文件、.fbx文件和.sbsar文件,并将.assetbundle文件、.fbx文件和.sbsar文件上传到服务器上;

texts分类存储由json格式的文件打包成的.txt文本,并将.txt文本上传到服务器上;

textures分类存储.png格式图片文件,并将.png格式图片文件上传到服务器上;

服务器接收unity3d编辑器传来的资源,并为每一个资源分配id、文件路径摘要和服务器存储地址,接收unity3d运行时提出的检索请求,并回传id相同的json格式的文件给文件管理器;

资源集管理器通过增减改查的方式管理资源集数据和资源集数据模型;

文件管理器管理文件数据和文件数据模型;

资源集数据模型存储资源解析后的文件;

文件数据模型存储json格式的文件解析后的文件,并提供本地查询功能和文件下载功能;

assetbundle打包函数与assetbundles分类信号连接,输入输出流与texts分类信号连接,oss分别与assetbundles分类、texts分类、textures分类和服务器信号连接,资源集管理器分别与oss和资源集数据模型信号连接,文件管理器分别与资源集管理器、文件数据模型和oss信号连接,ue4编辑器与oss信号连接。

本发明还提供了一种3d跨平台资源管理方法,其包括以下步骤:

s101、在unity3d编辑器端口,将.fbx文件转换成.prefab文件,并将.prefab文件、资源显示名称、资源储存文件名、资源三级分类上传到资源操作面板上;

s102、使用unity3d函数buildpipeline.buildassetbundles将.prefab文件打包成.assetbundle文件并自动传入assetbundles分类中,将.fbx、.sbsar文件加入assetbundles分类,.png格式图片文件加入textures分类;

s103、使用文件输入输出流将上传文件的资源本地存储地址、远程地址、名称和分类信息做成json格式,将json格式的文件打包成.txt文本并自动传入texts分类中;

s104、将.fbx文件、.assetbundle文件、.sbsar文件、.txt文本和.png格式图片文件通过oss上传资源到服务器,服务器为每个资源分配id、文件路径摘要和服务器存储地址;

s105、在unity3d运行时端口,资源集管理器通过oss下载储存所有资源的id合集,并将得到所有资源的文件信息后解析储存在资源集数据模型里;

s106、文件管理器从资源集管理器中拿到所有的资源集数据,通过oss发送请求检索文件的id给服务器,服务器检索对应的id,将id匹配成功的json格式的文件回传给文件管理器,文件管理器对服务器回传的json格式的文件进行解析,将解析出的远程地址储存到文件管理器管理的文件数据模型里;

s107、通过unitywww加载文件数据模型里的本地存储地址和远程地址,通过本地存储地址和远程地址下载.assetbundle文件;

s108、在ue4编辑器端口,使用oss与服务器通讯下载项目相关的.fbx、.sbsar文件并使用process.start命令行运行导入指令导入.fbx资源文件到ue4,启动ue4编辑器后加载.sbsar资源文件。

在以上技术方案的基础上,优选的,资源三级分类分别为模型、材质和管线三种类型;

模型模型包括.fbx格式模型文件资源,.assetbundle格式模型文件资源、.sbsar格式材质文件资源、.png格式图片文件资源、.txt格式文本文件资源;

材质包括.assetbundle格式材质文件资源、.sbsar格式材质文件资源、.png格式图片文件资源、.txt格式文本文件资源;

管线包括.assetbundle格式模型文件资源的本地存储地址、.sbsar格式材质文件资源、.png格式图片资源、.txt格式文本文件资源。

进一步优选的,资源记录文件id、文件外网下载地址、文件本地下载地址和文件的资源类型。

在以上技术方案的基础上,优选的,s101中上传到资源操作面板上的信息还包括:打包结构、创建时间和审核信息。

在以上技术方案的基础上,优选的,s103中资源显示名称传入json格式内的name字段,资源三级分类传入json格式内的bundletype字段。

在以上技术方案的基础上,优选的,s104中通过oss请求服务器来修改文件名、分类、打包结构、创建时间和审核信息。

在以上技术方案的基础上,优选的,s105中资源集管理器通过增减改查的方式对每一个资源进行修改。

在以上技术方案的基础上,优选的,s106中文件数据模型提供文件的本地查询功能和文件下载功能。

本发明的一种3d跨平台资源管理系统和方法相对于现有技术具有以下有益效果:

(1)通过在unity3d编辑器中利用buildpipeline.buildassetbundles函数将.prefab文件打包成.assetbundle文件并自动传入assetbundles分类中,将.fbx文件和.sbsar文件传入assetbundles分类中,利用输入输出流将json格式的文件打包成.txt文本并自动传入texts分类中,将.assetbundle文件、.fbx文件、.sbsar文件、.txt文本和.png格式图片文件上传到服务器中;

(2)unity3d运行时通过oss下载存储所有资源的id合集,通过oss向服务器发送请求检索文件的id,服务器进行id匹配,将id匹配成功的json格式的文件回传给文件管理器进行解析,将解析出的远程地址储存到文件管理器管理的文件数据模型里,通过unitywww加载文件数据模型里的本地存储地址和远程地址,通过本地存储地址和远程地址下载.assetbundle文件;

(3)ue4编辑器下载.fbx、.sbsar文件,并导入ue4编辑器中,实现三个端口的资源跨平台管理,避免文件重复下载占用磁盘空间的问题;

(4)整个系统可以实现unity3d编辑器、unity3d运行时和ue4编辑器三个平台之间使用模型、材质素材时的文件格式转换,避免文件存放后台管理问题,实现资源的跨平台管理。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明的一种3d跨平台资源管理系统结构图;

图2为本发明的一种3d跨平台资源管理方法流程图。

具体实施方式

下面将结合本发明实施方式,对本发明实施方式中的技术方案进行清楚、完整地描述,显然,所描述的实施方式仅仅是本发明一部分实施方式,而不是全部的实施方式。基于本发明中的实施方式,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施方式,都属于本发明保护的范围。

实施例一、

本发明中提及的.fbx文件、.prefab文件、.sbsar、json格式、.assetbundle文件、.txt文本、filewriter、.png格式、unitywww、输入输出流、buildpipeline.buildassetbundles函数和process.start命令行均属于unity3d里的现有技术。

如图1所示,本发明的一种3d跨平台资源管理系统,其包括unity3d编辑器、unity3d运行时、ue4编辑器、oss和服务器,其中,unity3d编辑器包括assetbundle打包函数、输入输出流、assetbundles分类、textures分类和texts分类;unity3d运行时包括资源集管理器、资源集数据模型、文件管理器和文件数据模型。

unity3d编辑器,支持.fbx文件,模型文件.fbx由3dmax软件生成并导出,再导入到unity3d中,拖放到场景内生成.prefab文件方可在场景内浏览。浏览材质文件的文件名为.sbsar,材质文件.sbsar由3dmax软件生成并导出,再导入到unity3d中,将材质拖入unity3d的material组件内,在相应的mesh内使用该material即可浏览材质。其中,material组件是unity3d里的控件和组件的统称,mesh的意思是网格,unity3d编辑器包括assetbundle打包函数、输入输出流、assetbundles分类、textures分类和texts分类。

其中,assetbundle打包函数利用buildpipeline.buildassetbundles函数将.prefab文件打包成.assetbundle文件并自动传入assetbundles分类中,.prefab文件是由unity3d编辑器将.fbx文件拖放到场景内生成的,.fbx文件转换成.prefab文件属于现有技术,在此不再累赘。

输入输出流将资源本地存储地址、远程地址、名称和分类信息做成json格式,并将json格式的文件打包成.txt文本并自动传入texts分类中,输入输出流通过定义filewriter对象,关联文件向文件内写内容,进行实现将json格式的文件打包成.txt文本的功能。

assetbundles分类存储assetbundle打包函数打包后的.assetbundle文件,根据资源类型的不同,还需要在assetbundles分类中补充.fbx文件和.sbsar文件,assetbundles分类通过oss将.assetbundle文件、.fbx文件和.sbsar文件传入服务器中。

texts分类存储输入输出流打包后的.txt文本,并通过oss将.txt文本传入服务器中。

textures分类存储.png格式图片文件,并将.png格式图片文件上传到服务器上。

服务器,接收unity3d编辑器传来的资源,并为每一个资源分配id、文件路径摘要和服务器存储地址,接收unity3d运行时提出的检索请求,并回传id相同的json格式的文件给文件管理器。

unity3d运行时,支持.assetbundle文件,用户在unity3d运行时绘制户型图,由户型图生成三维立体图,并在三维立体图中放置家具和铺设地板,家具由unity3d编辑器配置。unity3d运行时包括资源集管理器、资源集数据模型、文件管理器和文件数据模型。

其中,资源集管理器管理资源数据和资源集数据模型,通过增删改查的方式对每一个资源进行修改。文件管理器管理文件数据和文件数据模型,文件数据模型提供本地存储查询功能和文件下载功能。unity3d运行时通过oss下载存储所有资源的id合集,并将得到所有资源的文件信息后解析储存在资源集数据模型里,在资源集管理器加载完成后,文件管理器从资源集管理器中复制所有的资源集数据,通过oss向服务器发送请求检索文件的id,服务器进行id匹配,将id匹配成功的json格式的文件回传给文件管理器进行解析,将解析出的远程地址储存到文件管理器管理的文件数据模型里,通过unitywww加载文件数据模型里的本地存储地址和远程地址,通过本地存储地址和远程地址下载.assetbundle文件,这样unity3d运行时就获得可支持的.assetbundle文件。

ue4编辑器,使用oss与服务器通讯下载项目相关的.fbx、.sbsar文件并使用process.start命令行运行导入指令导入.fbx资源文件到ue4,启动ue4后加载.sbsar资源文件。

其中,process.start命令行是unity常用的命令。

实施例二、

如图2所示,本发明的一种3d跨平台资源管理方法,包括以下步骤:

s101、在unity3d编辑器端口,将.fbx文件转换成.prefab文件,并将.prefab文件、资源显示名称、资源储存文件名、资源三级分类上传到资源操作面板上;

s102、使用unity3d函数buildpipeline.buildassetbundles将.prefab文件打包成.assetbundle文件并自动传入assetbundles分类中,将.fbx、.sbsar文件加入assetbundles分类,.png格式图片文件加入textures分类;

s103、使用文件输入输出流将资源本地存储地址、远程地址、名称和分类信息做成json格式,将json格式的文件打包成.txt文本并自动传入texts分类中;

s104、将.fbx文件、.assetbundle文件、.sbsar文件、.txt文本和.png格式图片文件通过oss上传资源到服务器,服务器为每个资源分配id、文件路径摘要和服务器存储地址;

s105、在unity3d运行时端口,资源集管理器通过oss下载储存所有资源的id合集,并将得到所有资源的文件信息后解析储存在资源集数据模型里;

s106、文件管理器从资源集管理器中拿到所有的资源集数据,通过oss发送请求检索文件的id给服务器,服务器检索对应的id,将id匹配成功的json格式的文件回传给文件管理器,文件管理器对服务器回传的json格式的文件进行解析,将解析出的远程地址储存到文件管理器管理的文件数据模型里;

s107、通过unitywww加载文件数据模型里的本地存储地址和远程地址,通过本地存储地址和远程地址下载.assetbundle文件;

s108、在ue4编辑器端口,使用oss与服务器通讯下载项目相关的.fbx、.sbsar文件并使用process.start命令行运行导入指令导入.fbx资源文件到ue4,启动ue4编辑器后加载.sbsar资源文件。

其中,资源三类分级分别为模型、材质和管线三种类型;

模型模型包括.fbx格式模型文件资源,.assetbundle格式模型文件资源、.sbsar格式材质文件资源、.png格式图片文件资源、.txt格式文本文件资源;材质包括.assetbundle格式材质文件资源、.sbsar格式材质文件资源、.png格式图片文件资源、.txt格式文本文件资源;管线包括.assetbundle格式模型文件资源、.sbsar格式材质文件资源、.png格式图片资源、.txt格式文本文件资源。

资源记录文件id、文件外网下载地址、文件本地下载地址、md5校验信息和文件的资源类型。

s101中上传到资源操作面板上的信息还包括:打包结构、创建时间和审核信息。

s103中资源显示名称传入json格式内的name字段,资源三级分类传入json格式内的bundletype字段。

s104中通过oss请求服务器来修改文件名、分类、打包结构、创建时间和审核信息。

s105中资源集管理器通过增减改查的方式对每一个资源进行修改。

s106中文件数据模型提供文件的本地查询功能和文件下载功能。

s107中unitywww先加载本地存储地址,若本地存储地址没有相应的文件,加载远程存储地址。

s108中process.start命令行是unity常用的命令行。

以上所述仅为本发明的较佳实施方式而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1