CN113987044A - 资产数据的导入处理方法、装置及电子设备 - Google Patents
资产数据的导入处理方法、装置及电子设备 Download PDFInfo
- Publication number
- CN113987044A CN113987044A CN202111265756.5A CN202111265756A CN113987044A CN 113987044 A CN113987044 A CN 113987044A CN 202111265756 A CN202111265756 A CN 202111265756A CN 113987044 A CN113987044 A CN 113987044A
- Authority
- CN
- China
- Prior art keywords
- asset
- import
- task
- file
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/252—Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/258—Data format conversion from or to a database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/12—Accounting
- G06Q40/125—Finance or payroll
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Development Economics (AREA)
- General Business, Economics & Management (AREA)
- Technology Law (AREA)
- Strategic Management (AREA)
- Marketing (AREA)
- Economics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种资产数据的导入处理方法、装置及电子设备,涉及计算机技术领域。其中方法包括:首先创建资产导入管线,资产导入管线包含不同导入类型分别对应的资产导入规则,资产导入规则包含至少一导入处理阶段,在每一导入处理阶段内执行至少一导入处理任务;然后通过资产导入管线根据待导入的资产数据中每一资产文件具有的唯一标识和每一种资产具有的唯一标识,确定资产数据的目标导入类型,并按照与目标导入类型对应的资产导入规则将资产数据导入至资产数据库。本申请把资产数据的导入过程提升为资产导入管线,进而可做到系统化和规范化。相当于提供一套可独立管理,又对资产有唯一标识和访问的系统,便于统一维护和扩展。
Description
技术领域
本申请涉及计算机技术领域,尤其是涉及到一种资产数据的导入处理方法、装置及电子设备。
背景技术
游戏引擎会涉及大量的不同资产数据,这些资产数据为资产导入管线提供数据来源,来自外部或编辑器生成,是通过资产数据库给运行期使用的文件数据。而怎样管理这些资产文件数据是比较复杂的事情。
目前,资产数据导入过程通常没有固定管线方案,不同的引擎有不同的处理方式,无法做到系统化和规范化。并且资产处理的过程会不断地调整变化,这种传统的导入处理方式不便于统一维护和扩展。
发明内容
有鉴于此,本申请提供了一种资产数据的导入处理方法、装置及电子设备,主要目的在于改善目前资产数据通过传统的导入处理方式,无法做到系统化和规范化,不便于统一维护和扩展的技术问题。
依据本申请的一个方面,提供了一种资产数据的导入处理方法,该方法包括:
创建资产导入管线,所述资产导入管线包含不同导入类型分别对应的资产导入规则,所述资产导入规则包含至少一导入处理阶段,其中,在每一导入处理阶段内执行至少一导入处理任务;
获取待导入的资产数据,所述资产数据包含至少一资产文件,所述资产文件包含至少一种资产;
通过所述资产导入管线根据每一资产文件具有的唯一标识和每一种资产具有的唯一标识,确定所述资产数据的目标导入类型,并按照与所述目标导入类型对应的资产导入规则将所述资产数据导入至资产数据库。
依据本申请的另一方面,提供了一种资产数据的导入处理装置,该装置包括:
创建模块,用于创建资产导入管线,所述资产导入管线包含不同导入类型分别对应的资产导入规则,所述资产导入规则包含至少一导入处理阶段,其中,在每一导入处理阶段内执行至少一导入处理任务;
获取模块,用于获取待导入的资产数据,所述资产数据包含至少一资产文件,所述资产文件包含至少一种资产;
导入模块,用于通过所述资产导入管线根据每一资产文件具有的唯一标识和每一种资产具有的唯一标识,确定所述资产数据的目标导入类型,并按照与所述目标导入类型对应的资产导入规则将所述资产数据导入至资产数据库。
依据本申请又一个方面,提供了一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述资产数据的导入处理方法。
依据本申请再一个方面,提供了一种电子设备,包括存储介质、处理器及存储在存储介质上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述资产数据的导入处理方法。
借由上述技术方案,本申请提供的一种资产数据的导入处理方法、装置及电子设备,与现有技术相比,通过本申请的资产数据导入处理方案,把资产数据的导入过程提升为资产导入管线,该资产导入管线包含不同导入类型分别对应的资产导入规则,资产导入规则包含至少一导入处理阶段,其中,在每一导入处理阶段内执行至少一导入处理任务,进而可做到系统化和规范化。在通过资产导入管线对待导入的资产数据进行导入处理的过程中,首先根据每一资产文件具有的唯一标识和每一种资产具有的唯一标识,确定该资产数据的目标导入类型,然后按照与该目标导入类型对应的资产导入规则将资产数据导入至资产数据库。通过应用本申请的技术方案,相当于提供一套可独立管理,又对资产有唯一标识和访问的系统,便于统一维护和扩展。使得在不同的系统或打包环境中的资产数据能够统一访问,提高了资产数据导入的性能,并且可方便用户定制化导入配置,用外部脚本驱动整体批量导入。
上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1示出了本申请实施例提供的一种资产数据的导入处理方法的流程示意图;
图2示出了本申请实施例提供的资产管线的示意图;
图3示出了本申请实施例提供的资产导入管线的组成示意图;
图4示出了本申请实施例提供的另一种资产数据的导入处理方法的流程示意图;
图5示出了本申请实施例提供的又一种资产数据的导入处理方法的流程示意图;
图6示出了本申请实施例提供的再一种资产数据的导入处理方法的流程示意图;
图7示出了本申请实施例提供的一种资产数据的导入处理装置的结构示意图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本申请。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
针对改善目前资产数据通过传统的导入处理方式,无法做到系统化和规范化,不便于统一维护和扩展的技术问题。本实施例提供了一种资产数据的导入处理方法,如图1所示,该方法包括:
步骤101、创建资产导入管线。
在本实施例中,创建独立于其他系统或平台的资产导入管线(AssetImportPipeline,用于把外部格式的资产转换为引擎内部专用格式的一系列流程。管线有特有的组织和编辑方式,通过配置管线可以满足不同资产的导入需求)。
其中,外部资产往往与引擎内部使用的资产有差异,需要有资产文件的转换,导入和存储过程。在运行期,还需要提供可以供引擎使用的内部专用格式数据的接口。这一系列的工作,称之为资产管线,其中与资产转换导入相关的流程,称之为资产导入管线。
对于本实施例的执行主体可为资产数据导入处理的装置或设备,可配置在客户端侧或者服务端侧。具体可通过本资产导入管线进行资产数据的导入处理。
本资产导入管线可包含不同导入类型分别对应的资产导入规则,资产导入规则可预先设置,每一导入类型均有各自对应的资产导入规则。资产导入规则具体可包含至少一导入处理阶段,即资产导入阶段(AssetImportStage,属于资产导入管线的组成部分,可调配,用流水线的方式完成资产导入管线的过程,阶段之间相互独立,上游为下游提供数据)。
在每一导入处理阶段内执行至少一导入处理任务,即资产导入任务(AssetImportTask,资产导入阶段的组成部分,代表一个具体导入工作。任务之间彼此独立,可以并行或串行执行)。
可选的,每一导入处理任务由至少一导入处理节点执行完成。导入处理节点即为资产导入节点(AssetImportNode,资产导入任务的组成部分,代表一个最小粒度的装配项,往往只实现单一功能,不保存内部数据,可扩展和派生,在资产导入管线的编辑过程中,通过连接资产导入节点组成完整的流程链)。
本资产导入管线,采用分层设计的思想,充分考虑了各种资产导入过程的特性,对串行化和并行化的采用不同处理,提高导入性能,又借鉴组件化的模式,利用反射的机制,方便用户使用,把需求转换数据驱动的自动化拼装流程。
步骤102、获取待导入的资产数据。
资产数据可包含至少一资产文件(AssetFile),这些资产文件可以是通过资产数据库(AssetDatabase,广义的用于存储和访问导入资产的管理器,用于维护导入资产和记录的关系,并为访问导入资产提供接口)给运行期使用的文件。例如,常用类型包括网格、材质、贴图、骨骼、动画、关卡、预制体等等资产文件,常用的文件格式如FBX、USD、TGA、PNG等等。资产文件可包含至少一种资产。
步骤103、通过资产导入管线根据每一资产文件具有的唯一标识和每一种资产具有的唯一标识,确定待导入的资产数据的目标导入类型,并按照与目标导入类型对应的资产导入规则将资产数据导入至资产数据库。
在本实施例中,每一资产文件均具有唯一标识(GUID),以及资产文件中每一种资产均具有唯一标识。
导入类型可包括:单一资产文件中单一资产的导入类型、单一资产文件中多种资产的导入类型、多个资产文件中多种资产的导入类型、或者根据实际需求确定的其他导入类型等。具体可根据资产数据中每一资产文件具有的唯一标识和每一种资产具有的唯一标识,确定该资产数据的目标导入类型。
按照与目标导入类型对应的资产导入规则将待导入的资产数据导入至资产数据库,以便于在运行期提供对资产数据的访问。如图2所示,资产数据库作为打通编辑期和运行期的数据桥梁。在编辑期,负责导入资产并存储,在运行期提供对资产数据的访问。
与现有技术相比,通过本实施例的资产数据导入处理方案,把资产数据的导入过程提升为资产导入管线,该资产导入管线包含不同导入类型分别对应的资产导入规则,资产导入规则包含至少一导入处理阶段,其中,在每一导入处理阶段内执行至少一导入处理任务,进而可做到系统化和规范化。在通过资产导入管线对待导入的资产数据进行导入处理的过程中,首先根据每一资产文件具有的唯一标识和每一种资产具有的唯一标识,确定该资产数据的目标导入类型,然后按照与该目标导入类型对应的资产导入规则将资产数据导入至资产数据库。通过应用本实施例的技术方案,相当于提供一套可独立管理,又对资产有唯一标识和访问的系统,便于统一维护和扩展。使得在不同的系统或打包环境中的资产数据能够统一访问,提高了资产数据导入的性能,并且可方便用户定制化导入配置,用外部脚本驱动整体批量导入。
运行期的资源对象(Resource)通过资产数据库获取资产数据,在编辑期通过实施例中的资产导入管线负责导入资产,并把资产存储到资产数据库中。资产数据库可提供两种实现方式,一种是基于SQLite数据库,二种是基于记录的映射文件。
其中,SQLite数据库主要分成三张表,资产文件表(AssetFileTable),资产导入文件表(AssetImportFileTable)和资产关系表(AssetRelationTable)。AssetFileTable记录的是资产文件的信息,包括资产文件的相对路径,GUID,修改时间,MD5以及引用其他资产文件的GUID;AssetImportFileTable记录的是资产文件内导入后各个资产的记录,包括资产导入文件的相对路径,GUID,修改时间和MD5;AssetRelationTable关系表,记录的是一个资产文件的GUID与多个导入文件的GUID的对应关系。
映射文件的内容和SQLite数据库相同,只是把SQLite数据库里的字段保存成文件中文本形式,便于维护人员阅读和通过对比工具查找差异。
示例性的,资产导入管线的组成图从下到上按照分层设计,如图3所示,最下层是整个资产导入管线,可以把整个管线当作黑盒函数,不必关系具体的实现细节,以资产文件为输入,以资产数据库(即存储导入资产和资产信息记录的管理)为输出。
上层是由一组串行的资产导入阶段组成,每个阶段顺次执行,先执行的阶段为后执行的阶段提供数据,但应保证阶段之间没有耦合,这样可以根据需要调整或增减不同的阶段。
资产导入阶段由若干的资产导入任务组成,导入任务代表了一项具体的工作。在导入任务这个层面,可有并行和串行的区分(并行任务一般是指任务之间没有关联关系,同时存在大量的类似的任务时,用多线程或多进程的方式可以同时执行的任务。串行任务一般是指任务之间有先后依赖关系,如先执行任务A才能执行任务B,那么AB就需要串行执行)。因为有可能有大量类似又相互独立的导入工作,比如可以认为资产文件之间相互独立,每个文件导入可以认为是一个任务,这样如果按并行方式处理可以提高导入效率,又或可以把资产文件内若干的资产子项当作独立任务分别导入。资产导入阶段有开始(Begin)和结束(End)的接口,对于串行的任务,这两个函数无特别意义;对于并行的任务,Begin里需要开启多任务的线程或进程,End则根据需求可以选择同步等待或异步回调。
每一项的导入任务可以选择不同的资产导入节点。导入节点具有春函数的特点,也就是不保存内部数据,不访问全局函数,只按一定的输入处理得当输出。导入节点是资产导入管线的最小粒度。
为了保证资产系统与文件系统的解耦,每个资产在程序内部都是以全局唯一标识区分的,GUID保存在资产元文件(AssetMetaFile,与资产文件有对应关系,保存在相同目录下,用以辅助记录资产文件的一些信息。常用的包括资产文件的唯一标识,文件内资产的名称和GUID,导入设置以及资产内容简介等等)和资产数据库中,元文件同时还保存了该资产的导入设置。同时编辑器还有一份全局的导入设置,用户可以在两种不同的设置之间进行选择,从而提高了导入设置的灵活性。
在本实施例中,资产导入管线中涉及的类可以都是支持反射的,这样可以方便通过编辑器进行添加、编辑和保存。而且除了这些组件化的部件,每种对象还可以派生,从而重复利用了组合和继承的设计优势。任务之间也可以嵌套,比如可以把一个资产文件的导入组为一组导入资产的一项任务,而一个资产文件内部又可以分成很多自己的任务,极大的提高了设计的灵活性和复用性。
其中,派生就是利用类的继承关系,比如已有实现某个功能的导入处理任务,如检测资产文件的有效性CheckAssetValid,可以派生具体资产类型的有效性检测任务,如果CheckFBXValid,或CheckUSDValid,这是指派生。组合就是前面提到的导入处理任务由若干的导入处理节点组合而成,导入处理节点修改了导入处理任务的功能也随之改变。组合和继承是两种设计方式。
进一步的,作为上述实施例具体实施方式的细化和扩展,为了完整说明本实施例的实施方式,下面给出三种导入类型相应的示例导入过程,就资产导入管线的落地情况按照从简单到复杂的情况做出说明,以充分体现在本发明在现有的各种需求下扩展和应用的效果。作为其中一种可选实施例,以单一资产文件中单一资产的导入类型为例,提供了另一种资产数据的导入处理方法,如图4所示,该方法包括:
步骤201、获取待导入的资产数据。
步骤202、通过资产导入管线根据每一资产文件具有的唯一标识和每一种资产具有的唯一标识,确定资产数据的目标导入类型。
步骤203、若目标导入类型为单一资产文件中单一资产的导入类型,则获取与目标导入类型对应的资产导入规则。
资产导入规则包含第一导入阶段,其中,在第一导入阶段内执行第一导入任务。
步骤204、通过执行第一导入任务先将该单一资产进行格式转换,再将格式转换后的资产保存在资产数据库中,并生成节点生成资产信息。
导入管线中只有单一的导入阶段和导入任务,可有三个连接节点,分别用于转换资产,保存导入的资产和生成资产信息,保存导入资产需要访问文件系统,生成资产信息需要访问数据库。这种一般是如图片这种文件即最小粒度的资产。例如,适用于一个资产文件中只有一个资产,如图片文件就只导出一份图片资产。
例如,第一导入任务由第一转换节点(AssetConvertNode)、第一保存节点(AssetSaveNode)和第一信息生成节点(AssetCreateInfoNode)执行完成。先通过第一转换节点将单一资产进行格式转换;再将格式转换后的资产通过第一保存节点保存在资产数据库中,并通过第一信息生成节点生成资产信息。
通过上述实施例提出的方案,可实现单一资产文件中单一资产的准确导入,便于在运行期准确提供对资产数据的访问。
作为其中另一种可选实施例,以单一资产文件中多种资产的导入类型为例,提供了又一种资产数据的导入处理方法,如图5所示,该方法包括:
步骤301、获取待导入的资产数据。
步骤302、通过资产导入管线根据每一资产文件具有的唯一标识和每一种资产具有的唯一标识,确定资产数据的目标导入类型。
步骤303、若目标导入类型为单一资产文件中多种资产的导入类型,则获取与目标导入类型对应的资产导入规则。
资产导入规则可包含解析内容阶段、对比修改阶段、第二导入阶段、收集信息阶段。其中,在解析内容阶段内执行多个解析子任务,每个解析子任务各自对应解析一种资产;在对比修改阶段内执行多个对比修改任务,每个对比修改任务各自对应分析一种资产;在第二导入阶段内执行多个第二导入任务,每个第二导入任务各自对应导入一种资产;在收集信息阶段执行多个信息生成任务,每个信息生成任务各自对应生成一种资产的资产信息。
对于此导入类型(单一资产文件中多种资产的导入类型),可指的是一个资产文件中导出多个资产,如常见的是FBX资产文件,可能导出网格、材质、贴图、骨骼或动画等多种资产。相对于单一文件单一资产的导入过程,主要有以下几点变化:
A、增加了资产解析内容阶段(AssetParseStage),用于预解析内部各个复合资产的信息,主要是分析子资产的结构是否变换,计算资产子项的MD5等。解析的目的是为了区分出来有哪些子资产,同时找出相对于数据库中记录的子资产,哪些发生了变化,发生了怎样的变化。针对各个子资产,添加不同的并行的资产解析子任务(AssetParseSubTask),需要说明的是,每个并行的阶段有Begin和End方法,类型于启动多个线程和同步等待。
B、增加了资产对比修改阶段(AssetCompareModifStage),用于将预解析的子资产与数据库中的信息进行对比是否有修改,并收集修改项,因为数据库在主线程访问,这个过程不能串行化。
C、资产导入任务(AssetImportTask)由一个变成多个,这是因为导入和保存子资产是相互独立的,可以派发不同的任务并行导入。
D、把之前的导入的创建AssetCreateInfo的过程(资产信息,保存从资产文件中获取的各个资产的信息,如名称和GUID,这些资产信息是要写入数据库的)放到一个专门的资产收集信息阶段(AssetCollectInfoStage),用于访问数据库。
步骤304、通过执行解析子任务解析每种资产的资产结构和/或MD5值。
步骤305、通过执行对比修改任务基于每种资产的资产结构和/或MD5值,判断每种资产与资产数据库中的信息是否发生修改,并收集修改项。
步骤306、通过执行第二导入任务和信息生成任务,先将每种资产进行格式转换,再将格式转换后的每种资产保存在资产数据库中,并生成每种资产的资产信息,其中,若存在修改项,则资产信息中包含修改项信息。
例如,在解析内容阶段内执行多个解析子任务,每个解析子任务各自对应解析一种资产,解析子任务由解析节点执行完成;在对比修改阶段内执行多个对比修改任务,每个对比修改任务各自对应分析一种资产,对比修改任务由分析节点执行完成;在第二导入阶段内执行多个第二导入任务,每个第二导入任务各自对应导入一种资产,第二导入任务由第二转换节点、第二保存节点执行完成;在收集信息阶段执行多个信息生成任务,每个信息生成任务各自对应生成一种资产的资产信息,该信息生成任务由第二信息生成节点执行完成。
在资产数据具体导入的过程中,先通过解析节点解析每种资产的资产结构和/或MD5值;再通过分析节点基于该资产结构和/或MD5值,判断每种资产与资产数据库中的信息是否发生修改,并收集修改项;最后通过第二转换节点将每种资产进行格式转换,将格式转换后的每种资产通过第二保存节点保存在资产数据库中,并通过第二信息生成节点生成每种资产的资产信息,其中,若存在修改项,则资产信息中包含修改项信息。
通过上述实施例提出的方案,可实现单一资产文件中多种资产的准确导入,便于在运行期准确提供对资产数据的访问。
作为其中又一种可选实施例,以多个资产文件中多种资产的导入类型为例,提供了再一种资产数据的导入处理方法,如图6所示,该方法包括:
步骤401、获取待导入的资产数据。
步骤402、通过资产导入管线根据每一资产文件具有的唯一标识和每一种资产具有的唯一标识,确定资产数据的目标导入类型。
步骤403、若目标导入类型为多个资产文件中多种资产的导入类型,则获取与目标导入类型对应的资产导入规则。
资产导入规则可包含解析依赖阶段、复合导入阶段。其中,在解析依赖阶段内执行检测依赖任务、占位任务、注册修复代理任务;在复合导入阶段内执行多个第三导入任务,每个第三导入任务各自对应导入一个资产文件。
对于本实施例,最复杂的资产包里有多个资产文件,资产文件又包含多个资产的情况。如USD是这种场景。USD是一个资产文件包,而不是一个资产文件,文件包中有一个主场景文件,该主场景文件又会用到很多其他的USD文件,其他的USD文件又会用到若干资产文件,如图片,所以这种情况是最复杂的。
具体的,首先增加资产解析依赖阶段(AssetParseDependStage),作用是分析主资产文件对其他资产文件的依赖关系,以及其他资产文件的依赖关系。主要包括三个任务:(1)检测依赖任务(CheckDependTask),用于检验直接依赖了哪些资产文件,并存储到数据库中;(2)占位任务(PlanceHolderTask),根据主文件和依赖关系在数据库中预先占位一定的资产记录(主要填充GUID),此时的资产记录是不完整的;(3)注册修复代理任务(RegistRepairDelegetTask),在资产数据库中注册修复阶段,用于导完依赖的资产回调资产导入管线。
复合导入阶段(ComplexImportStage)用于把各个资产(包括主资产和关联资产)按照复合资产管线的方式导入,这个过程是并行的,不确定资产文件的导入顺序,每次导入完一个资产文件后,尝试从资产数据库中找到可能修复的数据,回调下一个修复阶段(RepaireStage)。需要说明的是,ComplexImportStage只有开始各个任务,没有同步等待和转进入下一个Stage,RepaireStage是由资产数据库调用的。
依赖其他资产文件的资产文件都要修复,不只限于主资产文件,因为资产文件导入是独立的,顺序不确定,但是主资产文件又依赖于其他资产文件的导入,否则数据就是不完整的,所以要等到依赖的资产文件都导入完,进行修复。
修复阶段不断尝试修复数据,重新导入主资产文件,直到所有依赖的资产都导完,或者中间发生失败,通知数据库清除主资产文件的导入数据。
步骤404、通过执行检测依赖任务,检测多个资产文件之间的依赖关系信息。
依赖关系信息可包括:主资产文件对其他资产文件的依赖关系,以及这些其他资产文件之间的依赖关系。
步骤405、通过执行占位任务,实现根据多个资产文件和依赖关系信息在资产数据库中预先占位一定的资产记录。
步骤406、通过执行注册修复代理任务,在资产数据库中注册多个修复阶段。
步骤407、通过执行第三导入任务,实现将多个资产文件导入至资产数据库,其中,每当导入完一个资产文件后,通过执行修复阶段内的修复任务,实现根据资产记录进行修复,以尝试从资产数据库中获取可能修复的数据。
可选的,步骤407具体可包括:针对每一资产文件的导入过程,通过与单一资产文件中单一资产的导入类型对应的资产导入规则、或与单一资产文件中多种资产的导入类型对应的资产导入规则进行导入。
例如,针对于每一资产文件的导入过程,如果是单一资产文件中单一资产的导入类型,可执行如步骤201至204所示的过程;而如果是单一资产文件中多种资产的导入类型,可执行如步骤301至306所示的过程。
为了说明如图6所示方法的实现过程,给出如下应用示例,但不限于此:
例如,USD是复合资产文件的情况,main.usd是主资产文件,它依赖关联资产文件depend1.usd和depend2.usd,而depend1.usd又依赖另一个资产文件depend3.usd,depend3.usd又用到了图片资产image.png。所以在导入的时候,首先记录各个资产文件的依赖关系,然后执行各个资产文件的导入,顺序不确定,如果image.png导入完,通知depend3.usd修复,因为它依赖的资产导入完成了,depend3导入完,通知depend1.usd修复,而depend1和depend2导入完,会通知main.usd进行修复,这样才能保证最后的资产都导入完并且是完整的。
通过上述实施例提出的方案,可实现多个资产文件中多种资产的准确导入,便于在运行期准确提供对资产数据的访问。
本实施例方法设计一套独立于其他系统或平台的资产导入管线。该管线通过采用分层设计的思想,充分考虑了各种资产导入过程的特性,对串行化和并行化的采用不同处理,提高导入性能,又借鉴组件化的模式,利用反射的机制,本着方便用户使用,把需求转换数据驱动的自动化拼装流程。
进一步的,作为图1至图6所示方法的具体实现,本实施例提供了一种资产数据的导入处理装置,如图7所示,该装置包括:创建模块51、获取模块52、导入模块53。
创建模块51,用于创建资产导入管线,所述资产导入管线包含不同导入类型分别对应的资产导入规则,所述资产导入规则包含至少一导入处理阶段,其中,在每一导入处理阶段内执行至少一导入处理任务;
获取模块52,用于获取待导入的资产数据,所述资产数据包含至少一资产文件,所述资产文件包含至少一种资产;
导入模块53,用于通过所述资产导入管线根据每一资产文件具有的唯一标识和每一种资产具有的唯一标识,确定所述资产数据的目标导入类型,并按照与所述目标导入类型对应的资产导入规则将所述资产数据导入至资产数据库。
在具体的应用场景中,可选的,若所述目标导入类型为单一资产文件中单一资产的导入类型,则对应的资产导入规则包含第一导入阶段,其中,在所述第一导入阶段内执行第一导入任务;
相应的,导入模块53,具体用于通过执行所述第一导入任务先将所述单一资产进行格式转换,再将格式转换后的资产保存在资产数据库中,并生成节点生成资产信息。
在具体的应用场景中,可选的,若所述目标导入类型为单一资产文件中多种资产的导入类型,则对应的资产导入规则包含解析内容阶段、对比修改阶段、第二导入阶段、收集信息阶段;其中,在所述解析内容阶段内执行多个解析子任务,每个解析子任务各自对应解析一种资产;在所述对比修改阶段内执行多个对比修改任务,每个对比修改任务各自对应分析一种资产;在所述第二导入阶段内执行多个第二导入任务,每个第二导入任务各自对应导入一种资产;在所述收集信息阶段执行多个信息生成任务,每个信息生成任务各自对应生成一种资产的资产信息。
相应的,导入模块53,具体用于通过执行所述解析子任务解析每种资产的资产结构和/或MD5值;通过执行所述对比修改任务基于所述资产结构和/或MD5值,判断每种资产与资产数据库中的信息是否发生修改,并收集修改项;通过执行所述第二导入任务和所述信息生成任务,先将每种资产进行格式转换,再将格式转换后的每种资产保存在资产数据库中,并生成每种资产的资产信息,其中,若存在修改项,则资产信息中包含修改项信息。
在具体的应用场景中,可选的,若所述目标导入类型为多个资产文件中多种资产的导入类型,则对应的资产导入规则包含解析依赖阶段、复合导入阶段;其中,在所述解析依赖阶段内执行检测依赖任务、占位任务、注册修复代理任务;在所述复合导入阶段内执行多个第三导入任务,每个第三导入任务各自对应导入一个资产文件。
相应的,导入模块53,具体用于通过执行所述检测依赖任务,检测所述多个资产文件之间的依赖关系信息,所述依赖关系信息包括:主资产文件对其他资产文件的依赖关系,以及所述其他资产文件之间的依赖关系;通过执行所述占位任务,实现根据所述多个资产文件和所述依赖关系信息在资产数据库中预先占位一定的资产记录;通过执行所述注册修复代理任务,在资产数据库中注册多个修复阶段;通过执行所述第三导入任务,实现将所述多个资产文件导入至资产数据库,其中,每当导入完一个资产文件后,通过执行所述修复阶段内的修复任务,实现根据所述资产记录进行修复,以尝试从资产数据库中获取可能修复的数据。
在具体的应用场景中,导入模块53,具体还用于针对每一资产文件的导入过程,通过与单一资产文件中单一资产的导入类型对应的资产导入规则、或与单一资产文件中多种资产的导入类型对应的资产导入规则进行导入。
在具体的应用场景中,可选的,每一导入处理任务由至少一导入处理节点执行完成。
需要说明的是,本实施例提供的一种资产数据的导入处理装置所涉及各功能单元的其它相应描述,可以参考图1至图6中的对应描述,在此不再赘述。
基于上述如图1至图6所示方法,相应的,本实施例还提供了一种存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述如图1至图6所示的资产数据导入处理方法。
基于这样的理解,本申请的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施场景的方法。
基于上述如图1至图6所示的方法,以及图7所示的虚拟装置实施例,为了实现上述目的,本申请实施例还提供了一种电子设备,具体可以为个人计算机、笔记本电脑、智能手机、服务器或其他网络设备等,该设备包括存储介质和处理器;存储介质,用于存储计算机程序;处理器,用于执行计算机程序以实现上述如图1至图6所示的资产数据导入处理方法。
可选的,上述实体设备还可以包括用户接口、网络接口、摄像头、射频(RadioFrequency,RF)电路,传感器、音频电路、WI-FI模块等等。用户接口可以包括显示屏(Display)、输入单元比如键盘(Keyboard)等,可选用户接口还可以包括USB接口、读卡器接口等。网络接口可选的可以包括标准的有线接口、无线接口(如WI-FI接口)等。
本领域技术人员可以理解,本实施例提供的上述实体设备结构并不构成对该实体设备的限定,可以包括更多或更少的部件,或者组合某些部件,或者不同的部件布置。
存储介质中还可以包括操作系统、网络通信模块。操作系统是管理上述实体设备硬件和软件资源的程序,支持信息处理程序以及其它软件和/或程序的运行。网络通信模块用于实现存储介质内部各组件之间的通信,以及与信息处理实体设备中其它硬件和软件之间通信。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本申请可以借助软件加必要的通用硬件平台的方式来实现,也可以通过硬件实现。通过应用本实施例的方案,把资产数据的导入过程提升为资产导入管线,进而可做到系统化和规范化。通过应用本实施例的技术方案,相当于提供一套可独立管理,又对资产有唯一标识和访问的系统,便于统一维护和扩展。使得在不同的系统或打包环境中的资产数据能够统一访问,提高了资产数据导入的性能,并且可方便用户定制化导入配置,用外部脚本驱动整体批量导入。
本领域技术人员可以理解附图只是一个优选实施场景的示意图,附图中的模块或流程并不一定是实施本申请所必须的。本领域技术人员可以理解实施场景中的装置中的模块可以按照实施场景描述进行分布于实施场景的装置中,也可以进行相应变化位于不同于本实施场景的一个或多个装置中。上述实施场景的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本申请序号仅仅为了描述,不代表实施场景的优劣。以上公开的仅为本申请的几个具体实施场景,但是,本申请并非局限于此,任何本领域的技术人员能思之的变化都应落入本申请的保护范围。
Claims (11)
1.一种资产数据的导入处理方法,其特征在于,包括:
创建资产导入管线,所述资产导入管线包含不同导入类型分别对应的资产导入规则,所述资产导入规则包含至少一导入处理阶段,其中,在每一导入处理阶段内执行至少一导入处理任务;
获取待导入的资产数据,所述资产数据包含至少一资产文件,所述资产文件包含至少一种资产;
通过所述资产导入管线根据每一资产文件具有的唯一标识和每一种资产具有的唯一标识,确定所述资产数据的目标导入类型,并按照与所述目标导入类型对应的资产导入规则将所述资产数据导入至资产数据库。
2.根据权利要求1所述的方法,其特征在于,若所述目标导入类型为单一资产文件中单一资产的导入类型,则对应的资产导入规则包含第一导入阶段,其中,在所述第一导入阶段内执行第一导入任务;
所述按照与所述目标导入类型对应的资产导入规则将所述资产数据导入至资产数据库,包括:
通过执行所述第一导入任务先将所述单一资产进行格式转换,再将格式转换后的资产保存在资产数据库中,并生成节点生成资产信息。
3.根据权利要求1所述的方法,其特征在于,若所述目标导入类型为单一资产文件中多种资产的导入类型,则对应的资产导入规则包含解析内容阶段、对比修改阶段、第二导入阶段、收集信息阶段;
其中,在所述解析内容阶段内执行多个解析子任务,每个解析子任务各自对应解析一种资产;
在所述对比修改阶段内执行多个对比修改任务,每个对比修改任务各自对应分析一种资产;
在所述第二导入阶段内执行多个第二导入任务,每个第二导入任务各自对应导入一种资产;
在所述收集信息阶段执行多个信息生成任务,每个信息生成任务各自对应生成一种资产的资产信息。
4.根据权利要求3所述的方法,其特征在于,所述按照与所述目标导入类型对应的资产导入规则将所述资产数据导入至资产数据库,包括:
通过执行所述解析子任务解析每种资产的资产结构和/或MD5值;
通过执行所述对比修改任务基于所述资产结构和/或MD5值,判断每种资产与资产数据库中的信息是否发生修改,并收集修改项;
通过执行所述第二导入任务和所述信息生成任务,先将每种资产进行格式转换,再将格式转换后的每种资产保存在资产数据库中,并生成每种资产的资产信息,其中,若存在修改项,则资产信息中包含修改项信息。
5.根据权利要求1所述的方法,其特征在于,若所述目标导入类型为多个资产文件中多种资产的导入类型,则对应的资产导入规则包含解析依赖阶段、复合导入阶段;
其中,在所述解析依赖阶段内执行检测依赖任务、占位任务、注册修复代理任务;
在所述复合导入阶段内执行多个第三导入任务,每个第三导入任务各自对应导入一个资产文件。
6.根据权利要求5所述的方法,其特征在于,所述按照与所述目标导入类型对应的资产导入规则将所述资产数据导入至资产数据库,包括:
通过执行所述检测依赖任务,检测所述多个资产文件之间的依赖关系信息,所述依赖关系信息包括:主资产文件对其他资产文件的依赖关系,以及所述其他资产文件之间的依赖关系;
通过执行所述占位任务,实现根据所述多个资产文件和所述依赖关系信息在资产数据库中预先占位一定的资产记录;
通过执行所述注册修复代理任务,在资产数据库中注册多个修复阶段;
通过执行所述第三导入任务,实现将所述多个资产文件导入至资产数据库,其中,每当导入完一个资产文件后,通过执行所述修复阶段内的修复任务,实现根据所述资产记录进行修复,以尝试从资产数据库中获取可能修复的数据。
7.根据权利要求6所述的方法,其特征在于,所述通过执行所述第三导入任务,实现将所述多个资产文件导入至资产数据库,具体包括:
针对每一资产文件的导入过程,通过与单一资产文件中单一资产的导入类型对应的资产导入规则、或与单一资产文件中多种资产的导入类型对应的资产导入规则进行导入。
8.根据权利要求1至7中任一项所述的方法,其特征在于,每一导入处理任务由至少一导入处理节点执行完成。
9.一种资产数据的导入处理装置,其特征在于,包括:
创建模块,用于创建资产导入管线,所述资产导入管线包含不同导入类型分别对应的资产导入规则,所述资产导入规则包含至少一导入处理阶段,其中,在每一导入处理阶段内执行至少一导入处理任务;
获取模块,用于获取待导入的资产数据,所述资产数据包含至少一资产文件,所述资产文件包含至少一种资产;
导入模块,用于通过所述资产导入管线根据每一资产文件具有的唯一标识和每一种资产具有的唯一标识,确定所述资产数据的目标导入类型,并按照与所述目标导入类型对应的资产导入规则将所述资产数据导入至资产数据库。
10.一种存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至8中任一项所述的方法。
11.一种电子设备,包括存储介质、处理器及存储在存储介质上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111265756.5A CN113987044A (zh) | 2021-10-28 | 2021-10-28 | 资产数据的导入处理方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111265756.5A CN113987044A (zh) | 2021-10-28 | 2021-10-28 | 资产数据的导入处理方法、装置及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113987044A true CN113987044A (zh) | 2022-01-28 |
Family
ID=79743722
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111265756.5A Pending CN113987044A (zh) | 2021-10-28 | 2021-10-28 | 资产数据的导入处理方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113987044A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115757275A (zh) * | 2022-11-22 | 2023-03-07 | 宁畅信息产业(北京)有限公司 | 一种资产信息管理方法、装置、电子设备及存储介质 |
CN116089987A (zh) * | 2023-04-07 | 2023-05-09 | 北京元数智联技术有限公司 | 数据泄漏防护方法、装置和设备 |
-
2021
- 2021-10-28 CN CN202111265756.5A patent/CN113987044A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115757275A (zh) * | 2022-11-22 | 2023-03-07 | 宁畅信息产业(北京)有限公司 | 一种资产信息管理方法、装置、电子设备及存储介质 |
CN116089987A (zh) * | 2023-04-07 | 2023-05-09 | 北京元数智联技术有限公司 | 数据泄漏防护方法、装置和设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10579344B2 (en) | Converting visual diagrams into code | |
US10579638B2 (en) | Automating extract, transform, and load job testing | |
US8112388B2 (en) | Dependency processing of computer files | |
US7472378B2 (en) | Breakpoint management and reconciliation for embedded scripts in a business integration language specified program process | |
US7945902B1 (en) | Detection of non-standard application programming interface usage via analysis of executable code | |
EP2110781A1 (en) | Method and system for automatic tracing of a computerized process using a relationship model | |
US10140355B2 (en) | Compiling extract, transform, and load job test data cases | |
WO2018036342A1 (zh) | 基于csar的模型文件的可视化设计方法及装置 | |
CN111399853A (zh) | 机器学习模型与自定义算子的模板化部署方法 | |
US20110185339A1 (en) | Automating the creation of an application provisioning model | |
US11762654B2 (en) | Processing framework for in-system programming in a containerized environment | |
CN113987044A (zh) | 资产数据的导入处理方法、装置及电子设备 | |
CN112559525B (zh) | 数据检查系统、方法、装置和服务器 | |
US20090178026A1 (en) | Self-describing re-usable software components | |
CN116302930A (zh) | 应用测试方法和装置 | |
CN109284222B (zh) | 软件单元、数据处理系统中的项目测试方法、装置及设备 | |
US11755458B2 (en) | Automatic software behavior identification using execution record | |
US11106526B1 (en) | Architecture-based root cause analysis | |
CN111752806B (zh) | 一种云环境下虚拟磁盘io指标采集的方法 | |
US20110246967A1 (en) | Methods and systems for automation framework extensibility | |
CN111488144A (zh) | 一种数据处理方法以及设备 | |
CN114115982A (zh) | 代码发布方法、装置、设备及存储介质 | |
US11593325B2 (en) | Systems and methods of data migration in multi-layer model-driven applications | |
CN118819531A (zh) | 依赖关系的确定方法、装置、计算机设备和存储介质 | |
CN114385159A (zh) | 文件处理方法、装置、电子设备及计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
EE01 | Entry into force of recordation of patent licensing contract |
Application publication date: 20220128 Assignee: Beijing Xuanguang Technology Co.,Ltd. Assignor: Perfect world interactive (Beijing) Technology Co.,Ltd. Contract record no.: X2022990000255 Denomination of invention: Method, device and electronic equipment for importing and processing asset data License type: Exclusive License Record date: 20220610 |
|
EE01 | Entry into force of recordation of patent licensing contract |