CN114443306A - 资源处理方法、装置、电子设备及计算机可读存储介质 - Google Patents
资源处理方法、装置、电子设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN114443306A CN114443306A CN202210112291.8A CN202210112291A CN114443306A CN 114443306 A CN114443306 A CN 114443306A CN 202210112291 A CN202210112291 A CN 202210112291A CN 114443306 A CN114443306 A CN 114443306A
- Authority
- CN
- China
- Prior art keywords
- resource
- plug
- package
- file
- target
- 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
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
- A63F13/35—Details of game servers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
- G06F9/44526—Plug-ins; Add-ons
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44594—Unloading
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Stored Programmes (AREA)
Abstract
本申请实施例提供了一种资源处理方法、装置、电子设备及计算机可读存储介质,涉及计算机软件领域。该方法包括:接收调用目标插件的调用操作;响应于调用操作,获取引擎资源包中与目标插件对应的目标资源文件;其中,目标资源文件从与目标插件对应的插件资源包导入;引擎资源包中的项目资源文件从项目资源包导入。本申请实施例通过插件资源包和项目资源包,分别将资源导入引擎资源包,增强了目标插件与游戏引擎的适配性。
Description
技术领域
本申请涉及计算机软件技术领域,具体而言,本申请涉及一种资源处理方法、装置、电子设备及计算机可读存储介质。
背景技术
一个游戏项目可以分为游戏引擎和游戏资源两大部分。游戏资源包括图像,声音,动画等部分,游戏引擎则是按游戏设计的要求顺序地调用这些游戏资源。
通常游戏项目需要使用大量的游戏资源,这些游戏资源的格式各不相同。故在游戏项目开发过程中会将这些游戏资源进行预处理,并导入指定目录,以便游戏引擎识别和调用。
现有技术中,当基于插件为游戏项目导入新增资源时,在导入过程中新增资源往往会影响原始项目资源的处理逻辑,影响了游戏插件的开发效率。
发明内容
本申请实施例提供了一种资源处理方法、装置、电子设备及计算机可读存储介质,可以解决现有技术中游戏插件开发效率低下的问题。所述技术方案如下:
根据本申请实施例的一个方面,提供了一种资源处理方法,该方法包括:
接收调用目标插件的调用操作;
响应于调用操作,获取引擎资源包中与目标插件对应的目标资源文件;其中,目标资源文件从与目标插件对应的插件资源包导入;引擎资源包中的项目资源文件从项目资源包导入。
可选的,上述插件资源包中的原始资源文件导入引擎资源包的过程,包括:
启动目标插件;
扫描插件资源包,确定待导入的原始资源文件;
将待导入的原始资源文件导入引擎资源包中。
可选的,上述方法还包括:
为各目标插件对应配置一插件资源包;其中,项目资源包的导入优先级高于插件资源包的导入优先级。
可选的,上述扫描插件资源包,确定待导入的原始资源文件,包括:
扫描插件资源包,获取原始资源文件的属性信息;
确定插件资源包所对应的导入信息;
当属性信息与导入信息相匹配,则将原始资源文件作为待导入的原始资源文件。
可选的,上述将待导入的原始资源文件导入引擎资源包中,包括:
按照预设格式解析待导入的原始资源文件,生成目标资源文件;
将目标资源文件保存到引擎资源包中。
可选的,上述方法还包括:
当接收到针对目标插件的关闭通知,删除目标插件对应的插件资源包。
可选的,上述方法还包括:
各插件资源包对应配置一缓存文件包,当插件资源包对应存在缓存数据,则将缓存数据保存到引擎资源包和缓存文件包中;其中,缓存数据包括插件资源包在资源导入时所产生的中间数据和临时数据中的至少一项。
根据本申请实施例的另一个方面,提供了一种资源处理装置,该装置包括:
接收模块,用于接收调用目标插件的调用操作;
获取模块,用于响应于调用操作,获取引擎资源包中与目标插件对应的目标资源文件;其中,目标资源文件从与目标插件对应的插件资源包导入;引擎资源包中的项目资源文件从项目资源包导入。
可选的,上述装置还包括,导入模块,用于:
启动目标插件;
扫描插件资源包,确定待导入的原始资源文件;
将待导入的原始资源文件导入引擎资源包中。
可选的,上述装置还包括,配置模块,用于:
为各目标插件对应配置一插件资源包;其中,项目资源包的导入优先级高于插件资源包的导入优先级。
可选的,上述导入模块,还用于:
扫描插件资源包,获取原始资源文件的属性信息;
确定插件资源包所对应的导入信息;
当属性信息与导入信息相匹配,则将原始资源文件作为待导入的原始资源文件。
可选的,上述导入模块,还用于:
按照预设格式解析待导入的原始资源文件,生成目标资源文件;
将目标资源文件保存到引擎资源包中。
可选的,上述装置还包括,删除模块,用于:
当接收到针对目标插件的关闭通知,删除目标插件对应的插件资源包。
可选的,上述装置还包括,缓存模块,用于:
各插件资源包对应配置一缓存文件包,当插件资源包对应存在缓存数据,则将缓存数据保存到引擎资源包和缓存文件包中;其中,缓存数据包括插件资源包在资源导入时所产生的中间数据和临时数据中的至少一项。
根据本申请实施例的另一个方面,提供了一种电子设备,该电子设备包括:存储器、处理器及存储在存储器上的计算机程序,上述处理器执行计算机程序以实现本申请实施例第一方面所示方法的步骤。
根据本申请实施例的再一个方面,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现本申请实施例第一方面所示方法的步骤。
根据本申请实施例的一个方面,提供了一种计算机程序产品,其包括计算机程序,该计算机程序被处理器执行时实现本申请实施例第一方面所示方法的步骤。
本申请实施例提供的技术方案带来的有益效果是:
本申请实施例通过响应于目标插件的调用操作,以获取游戏引擎包中与目标插件对应的目标资源文件;同时,目标插件配置有对应的插件资源包,该插件资源包与保存原始项目资源的项目资源包相互独立;本申请实现了基于插件资源包和项目资源包,分别将资源导入引擎资源包,减少了目标插件开发过程中出现bug(程序错误)的概率;此外,针对目标插件需要动态注册资源的情况,目标插件配置有独立的插件资源包,达到了插件资源与原始项目资源隔离的目的,本申请可以实现在不影响游戏项目原始项目资源的情况下,基于目标插件动态的挂载、卸载资源集合的技术效果。相比于现有技术在导入过程中,新增资源往往会影响原始项目资源的处理逻辑,本申请增强了目标插件与游戏引擎的适配性,提高了游戏插件的开发效率,减少了开发成本。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍。
图1为本申请实施例提供的一种资源处理方法的应用场景示意图;
图2为本申请实施例提供的一种资源处理方法的流程示意图;
图3为本申请实施例提供的一种资源处理方法中的确定待导入的原始资源文件的流程示意图;
图4为本申请实施例提供的一种资源处理方法中的导入插件资源包的流程示意图;
图5为本申请实施例提供的一个示例的资源处理方法的流程示意图;
图6为本申请实施例提供的一种资源处理装置的结构示意图;
图7为本申请实施例提供的一种资源处理电子设备的结构示意图。
具体实施方式
下面结合本申请中的附图描述本申请的实施例。应理解,下面结合附图所阐述的实施方式,是用于解释本申请实施例的技术方案的示例性描述,对本申请实施例的技术方案不构成限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请实施例所使用的术语“包括”以及“包含”是指相应特征可以实现为所呈现的特征、信息、数据、步骤、操作、元件和/或组件,但不排除实现为本技术领域所支持其他特征、信息、数据、步骤、操作、元件、组件和/或它们的组合等。应该理解,当我们称一个元件被“连接”或“耦接”到另一元件时,该一个元件可以直接连接或耦接到另一元件,也可以指该一个元件和另一元件通过中间元件建立连接关系。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的术语“和/或”指示该术语所限定的项目中的至少一个,例如“A和/或B”可以实现为“A”,或者实现为“B”,或者实现为“A和B”。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
游戏引擎是指一些已编写好的可编辑电脑游戏系统或者一些交互式实时图像应用程序的核心组件。这些系统为游戏设计者提供各种编写游戏所需的各种工具,其目的在于让游戏设计者能容易和快速地做出游戏程式而不用由零开始。大部分都支持多种操作平台,如Linux、Mac OS X、微软Windows。游戏引擎包含以下系统:渲染引擎(即“渲染器”,含二维图像引擎和三维图像引擎)、物理引擎、碰撞检测系统、音效、脚本引擎、电脑动画、人工智能、网络引擎以及场景管理。
引擎相当于游戏的框架,框架搭好后,关卡设计师、建模师、动画师只要往里填充内容就可以了。因此,在3D游戏的开发过程中,引擎的制作往往会占用非常多的时间。正是出于节约成本、缩短周期和降低风险这三方面的考虑,越来越多的开发者倾向于使用第三方的现成引擎制作自己的游戏,一个庞大的引擎授权市场已经形成。
在游戏项目开发过程中,当基于插件为游戏项目添加新增资源,需要将新增资源按照预设格式从原始资源包导入引擎资源包中,以便游戏引擎直接从引擎资源包调用该资源。发明人发现:
(1)常规方案中的原始资源(包括项目的资源和插件的新增资源)都存放在同一个原始资源包中,当原始资源包中存在多个重名插件的新增资源,原始资源导入时会发生冲突,导致插件开发中会出现异常。
(2)在上述资源导入过程中产生的临时数据,也会直接导入引擎资源包中;在资源更新时,导入器需要对该临时数据进行管理,增加了资源相关功能的代码复杂度。
本申请提供的资源处理方法、装置和编译器,旨在解决现有技术的如上技术问题。
本申请实施例提供了一种资源处理方法,该方法可以由终端或服务器实现。本申请实施例涉及的终端或服务器,通过响应于目标插件的调用操作,以获取游戏引擎包中与目标插件对应的目标资源文件;同时,目标插件配置有对应的插件资源包,该插件资源包与保存原始项目资源的项目资源包相互独立,实现了基于插件资源包和项目资源包,分别将资源导入引擎资源包中,优化了资源导入流程,提高了游戏插件的开发效率。
下面通过对几个示例性实施方式的描述,对本申请实施例的技术方案以及本申请的技术方案产生的技术效果进行说明。需要指出的是,下述实施方式之间可以相互参考、借鉴或结合,对于不同实施方式中相同的术语、相似的特征以及相似的实施步骤等,不再重复描述。
如图1所示,本申请的资源处理方法,可以应用于图1所示的场景中,具体的,服务器101可以从客户端102接收目标插件的调用操作,响应于该调用操作获取引擎资源包中与目标插件对应的目标资源文件;其中,目标资源文件从插件资源包导入,引擎资源包中的项目资源文件从项目资源包导入。
图1所示的场景中,上述资源处理方法可以在服务器中进行,在其他的场景中,也可以在终端中进行。
本技术领域技术人员可以理解,这里所使用的“终端”可以是手机、平板电脑、PDA(Personal Digital Assistant,个人数字助理)、MID(Mobile Internet Device,移动互联网设备)等;“服务器”可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
本申请实施例中提供了一种资源处理方法,如图2所示,该方法包括:
S201,接收调用目标插件的调用操作。
其中,调用操作可以是基于用户的调用指令生成的。
具体的,用于进行资源处理的终端或服务器,可以接收用户的调用指令,并基于调用指令确定调用操作。
在本申请实施例中,上述调用指令可以基于如下至少一种操作触发:
将调用操作对应的界面元素组件拖拽或移动至当前界面的预设范围内的操作;
针对调用操作对应的界面元素组件的点击操作;
在预设的输入控件中针对调用操作对应的标识的输入操作。
S202,响应于调用操作,获取引擎资源包中与目标插件对应的目标资源文件;其中,目标资源文件从与目标插件对应的插件资源包导入;引擎资源包中的项目资源文件从项目资源包导入。
具体的,用于进行资源处理的终端或服务器,可以根据所确定的调用操作,获取引擎资源包中的目标资源文件。其中,目标资源文件导入自与目标插件对应的插件资源包,且目标资源文件已经经过预处理,故该资源文件可供游戏引擎直接识别并使用。
在一些实施方式中,可以基于调用操作与目标插件的对应关系,获取引擎资源包中与目标插件对应的目标资源文件;还可以基于调用操作的标识查询引擎资源包中的索引表,得到目标资源文件。
同时,插件资源包和项目资源包中的资源可以基于资源管理器导入引擎资源包;一方面,用于进行资源处理的终端或服务器可以结合资源管理对资源进行导入操作,另一方面,可以将资源管理器集成到用于进行资源处理的终端或服务器,根据用于进行资源处理的终端或服务器来对资源进行导入操作,在本申请实施例中不做具体限定。
本申请实施例通过响应于目标插件的调用操作,以获取游戏引擎包中与目标插件对应的目标资源文件;同时,目标插件配置有对应的插件资源包,该插件资源包与保存原始项目资源的项目资源包相互独立;本申请实现了基于插件资源包和项目资源包,分别将资源导入引擎资源包,减少了目标插件开发过程中出现bug的概率;此外,针对目标插件需要动态注册资源的情况,目标插件配置有独立的插件资源包,达到了插件资源与原始项目资源隔离的目的,本申请可以实现在不影响游戏项目原始项目资源的情况下,基于目标插件动态的挂载、卸载资源集合的技术效果。相比于现有技术在导入过程中,新增资源往往会影响原始项目资源的处理逻辑,本申请增强了目标插件与游戏引擎的适配性,提高了游戏插件的开发效率,减少了开发成本。
本申请实施例中提供了一种可能的实现方式,上述方法还包括:
为各目标插件对应配置一插件资源包;其中,项目资源包的导入优先级高于插件资源包的导入优先级。
在本申请实施例中,目标插件的数量可以为至少一个,每一目标插件对应配置有一插件资源包,该插件资源包独立于项目资源包;其中,插件资源包中可以包括插件附带的原始资源文件,项目资源包中可以包括原始项目资源。当基于目标插件注册原始资源文件之前,可以先检测项目资源包是否导入,当项目资源包导入成功之后,再进行各个目标插件的原始资源文件的导入。当基于目标插件注册原始资源文件时,需要资源管理器对原始资源文件进行导入操作,也就是将原始资源文件进行相应的预处理并保存到对应的引擎资源包中,以便游戏引擎调用。
在本申请实施例中,目标插件的数量为至少一个,每一目标插件对应一插件资源包,插件资源包与项目资源包之间相互独立。例如,项目资源包可以命名为“assetsdatabase”,当目标插件为A插件,对应的插件资源包可以命名为“A database”。项目资源包与插件资源包的导入流程相同,导入流程的详细步骤将在下文,以插件资源包为例进行具体说明。
本申请实施例中提供了一种可能的实现方式,上述插件资源包中的原始资源文件导入引擎资源包的过程,包括:
(1)启动目标插件。
具体的,用于进行资源处理的终端或服务器,可以根据用户的选择操作,启动目标插件。
(2)扫描插件资源包,确定待导入的原始资源文件。
具体的,用于进行资源处理的终端或服务器,可以对目标插件对应的插件资源包进行扫描,检测插件资源包中的资源的导入状态,并基于导入状态确定待导入的原始资源文件。
本申请实施例中提供了一种可能的实现方式,如图3所示,上述扫描插件资源包,确定待导入的原始资源文件,包括:
a、扫描插件资源包,获取原始资源文件的属性信息。
其中,上述属性信息包括原始资源文件的文件名、文件类型、文件大小、修改时间等。
具体的,用于进行资源处理的终端或服务器,可以对插件资源包进行扫描,得到原始资源文件的文件名、文件类型、文件大小、修改时间等。
b、确定插件资源包所对应的导入信息。
具体的,用于进行资源处理的终端或服务器,可以从插件资源包所对应的缓存文件包中获取导入信息。其中,导入信息可以包括原始资源文件的历史导入记录。
c、当属性信息与导入信息相匹配,则将原始资源文件作为待导入的原始资源文件。
在本申请实施例中,用于进行资源处理的终端或服务器,从缓存文件包中获取导入信息,导入信息包括但不限于该原始资源文件的修改时间、上一次导入所使用的导入器、上一次是否导入成功、上一次导入成功后的生成文件信息等。根据上述导入信息,可以优化当前的导入流程,比如可以将属性信息与导入信息中的文件修改时间进行比对,如果一致,则说明资源没有修改;接着再判断上一次导入生成的文件是否丢失,如果生成文件也正常,则可以跳过这一次的导入流程,否则继续后续的导入流程。
本申请通过匹配原始资源文件的属性信息和插件资源包所对应的导入信息,确定待导入的原始资源文件,当检测得到资源文件已在之前导入成功且导入生成的文件正常,则无需重复进行导入操作,提高了资源导入的效率。
(3)将待导入的原始资源文件导入引擎资源包中。
具体的,用于进行资源处理的终端或服务器,可以对待导入的原始资源文件进行转换得到目标资源文件,并将目标资源文件存入引擎资源包中,具体的导入过程将在下文详细说明。
本申请实施例中提供了一种可能的实现方式,上述将待导入的原始资源文件导入引擎资源包中,包括:
a、按照预设格式解析待导入的原始资源文件,生成目标资源文件。
具体的,用于进行资源处理的终端或服务器,可以根据原始资源文件的属性信息,为原始资源文件配置对应的导入器,每一原始资源文件对应一导入器。导入器按照预设格式解析待导入的原始资源文件,并生成对应的目标资源文件。
b、将目标资源文件保存到引擎资源包中。
具体的,用于进行资源处理的终端或服务器,可有将目标资源文件保存到引擎资源包中,并将当前的导入信息保存到缓存文件包。
本申请实施例中,基于原始资源文件所对应的导入器,将原始资源文件按照预设格式导入引擎资源包中,得到目标资源文件。在导入过程中目标资源文件经过了格式解析,能够被游戏引擎直接识别和使用。
本申请实施例中,如图4所示,在导入插件资源包之前,如果项目资源包中的资源还未导入,则先导入项目资源包中的原始项目文件,原始项目资源文件导入引擎资源包的过程与插件资源包中的原始资源文件的导入过程相同,在本申请中不再赘述。本申请中,引擎资源包中的导入路径至少有两个,即项目资源包和至少一个插件资源包,通过至少两个导入路径,可以实现目标插件之间、目标插件与原始项目资源之间的资源隔离,针对目标插件需要动态注册资源的情况,本申请支持多个插件资源包同时启动,可以在不影响游戏项目原始项目资源的情况下,达到基于目标插件动态的挂载、卸载资源集合的技术效果。
本申请实施例中提供了一种可能的实现方式,上述方法还包括:
当接收到针对目标插件的关闭通知,删除目标插件对应的插件资源包。
在本申请实施例中,插件资源包能够随着插件删除或者关闭而自动去除,不影响项目内原有的资源。以目标插件为A插件,插件资源包为Adatabase为例进行说明:当目标插件被删除的时候,用于进行资源处理的终端或服务器会先接收到目标插件的关闭通知;在收到关闭通知后,用于进行资源处理的终端或服务器会将之前启动的A database从资源包索引列表里去除,然后将A database从内存中移除。这样就达到了删除A database,但不影响其他插件资源包或项目资源包的效果。
与此同时,在游戏引擎的编辑器中,当目标插件开启,编辑器中会自动挂载一个插件资源包,并在预设界面显示该插件资源包的标识;当该目标插件被关闭,该预设界面中所显示的上述标识将被隐藏,以便用户能够直观的理解目标插件的开启或关闭状态。
本申请实施例中提供了一种可能的实现方式,上述方法还包括:
各插件资源包对应配置一缓存文件包,当插件资源包对应存在缓存数据,则将缓存数据保存到引擎资源包和缓存文件包中;其中,缓存数据包括插件资源包在资源导入时所产生的中间数据和临时数据中的至少一项。
本申请实施例中,用于进行资源处理的终端或服务器,可以将插件资源包在导入时所产生的中间数据或临时数据同时保存到缓存文件包和引擎资源包,实现了缓存数据与资源数据的统一管理。当某一原始资源文件需要重新导入时,用于进行资源处理的终端或服务器,会自动删除该原始资源文件所对应的缓存数据(保存在缓存文件包中)与目标资源数据(保存在引擎资源包中)。可以使得导入流程更加纯粹,减少代码和逻辑复杂度。
以原始资源文件为“fbx”资源为例,导入器需要先将“fbx”转成中间数据“gltf”,再解析“gltf”进而得到对应的目标资源文件。由于本申请实施例中,每个原始资源文件都预留有一个缓存文件包temp,导入器只需要从temp中查询“gltf”,如果不存在就生成,而不需要关心中间数据“gltf”是否需要生成。
此外,本申请还能够处理很多非临时性的文件数据,例如原始资源是一个png(一种采用无损压缩算法的位图格式)文件,我们需要生成的目标资源文件为缩略图。现有技术中,在游戏项目需要使用缩略图的地方,资源管理器会获取原始资源文件并生成缩略图,同时记录原始资源文件的属性数据如导入生成、资源修改时间等,用于下次使用缩略图的时候判断是否需要重新生成;上述判断过程显然会增加资源相关程序的逻辑步骤。而本申请中,因为导入流程开始前,就会将缓存文件包清空,所以只要文件包中存在数据,该数据就是最新的数据。故,用于进行资源处理的终端或服务器可以将缩略图同步保存到对应的缓存文件包中,游戏引擎每次获取的时候,只要存在就能使用,不存在就生成,极大的简化了这种和资源相关的功能里的代码逻辑。
在本申请实施例中,针对资源导入过程中所生成的缓存数据,用于进行资源处理的终端或服务器,提供了两个导出位置即引擎资源包和缓存文件包;每当原始资源文件发生改变,会将该资源对应的缓存文件包删除,且资源文件在发生改动需重新导入时,引擎资源包中的相应数据也会被删除,故本申请中的资源管理方案中只需要负责生成缓存数据即可,而不需判断该缓存数据是否为最新的缓存数据,达到了简化资源处理流程的目的。
为了更好的理解上述资源处理方法,下面结合图5详细阐述一个本申请的资源处理方法的示例,该方法可以应用于资源管理器中;其中,资源管理器用于为游戏引擎提供相匹配的资源。该方法包括如下步骤:
S501,确定目标插件;其中,该目标插件用于注册原始资源文件;上述原始资源文件存储于与目标插件对应的插件资源包中。
在一些实施方式中,资源管理器可以基于用户的插件操作指令确定目标插件以及目标插件对应的原始资源文件。
在另一些实施方式中,资源管理器可以直接从预设数据库获取目标插件以及目标插件对应的原始资源文件。
其中,上述原始资源文件可以是待导入引擎资源包的资源;原始资源文件可以包括图像文件、音频文件、动画文件中的至少一项。
本申请实施例中,由于原始资源文件的形式和内容不统一,难以被游戏引擎直接识别;当基于目标插件注册原始资源文件时,需要资源管理器对原始资源文件进行导入操作,也就是将原始资源文件进行相应的预处理并保存到对应的引擎资源包中,以便游戏引擎调用。
S502,当检测到项目资源包中的原始项目资源还未导入,则扫描项目资源包,并将原始项目资源导入引擎资源包中。
其中,项目资源包中可以包括原始项目资源。项目资源包的导入优先级高于插件资源包的导入优先级。
具体的,资源管理器可以对引擎资源包进行检测,当在引擎资源包中无法检测到原始项目资源所对应的项目资源文件,则扫描项目资源包,将原始项目资源导入引擎资源包中。
在本申请实施例中,目标插件的数量为至少一个,每一目标插件对应一插件资源包,插件资源包与项目资源包之间相互独立。例如,项目资源包可以命名为“assetsdatabase”,当目标插件为A插件,对应的插件资源包可以命名为“A database”。项目资源包与插件资源包的导入流程相同,导入流程的详细步骤将在下文,以插件资源包为例进行具体说明。
S503,扫描插件资源包,获取原始资源文件的属性信息。
其中,上述属性信息包括原始资源文件的文件名、文件类型、文件大小、修改时间等。
具体的,资源管理器可以对插件资源包进行扫描,得到原始资源文件的文件名、文件类型、文件大小、修改时间等。
S504,确定插件资源包所对应的导入信息;当属性信息与导入信息相匹配,则将原始资源文件作为待导入的原始资源文件。
具体的,资源管理器可以从插件资源包所对应的缓存文件包中获取导入信息。其中,导入信息可以包括原始资源文件的历史导入记录。
在本申请实施例中,资源管理器从缓存文件包中获取导入信息,导入信息包括但不限于该原始资源文件的修改时间、上一次导入所使用的导入器、上一次是否导入成功、上一次导入成功后的生成文件信息等。根据上述导入信息,可以优化当前的导入流程,比如可以将属性信息与导入信息中的文件修改时间进行比对,如果一致,则说明资源没有修改;接着再判断上一次导入生成的文件是否丢失,如果生成文件也正常,则可以跳过这一次的导入流程,否则继续后续的导入流程。
S505,按照预设格式解析待导入的原始资源文件,生成目标资源文件,并将目标资源文件保存到引擎资源包中。
具体的,资源管理器可以根据原始资源文件的属性信息,为原始资源文件配置对应的导入器,每一原始资源文件对应一导入器。导入器按照预设格式解析待导入的原始资源文件,并生成对应的目标资源文件,资源管理器将目标资源文件保存到引擎资源包中,并将当前的导入信息保存到缓存文件包。
在一些实施方式中,当接收到针对目标插件的关闭通知,删除目标插件对应的插件资源包。
在本申请实施例中,插件资源包能够随着插件删除或者关闭而自动去除,不影响项目内原有的资源。以目标插件为A插件,插件资源包为Adatabase为例进行说明:当目标插件被删除的时候,资源管理器会先接收到目标插件的关闭通知;资源管理器在收到关闭通知后,会将之前启动的A database从资源包索引列表里去除,然后将A database从内存中移除。这样就达到了删除A database,但不影响其他插件资源包或项目资源包的效果。
S506,每一插件资源包对应配置一缓存文件包;当插件资源包对应存在缓存数据,则将缓存数据保存到引擎资源包,以及缓存文件包中;其中,缓存数据包括插件资源包在导入时所产生的中间数据和临时数据中的至少一项。
本申请实施例中,资源管理器可以将插件资源包在导入时所产生的中间数据或临时数据同时保存到缓存文件包和引擎资源包,实现了缓存数据与资源数据的统一管理。当某一原始资源文件需要重新导入时,资源管理器会自动删除该原始资源文件所对应的缓存数据(保存在缓存文件包中)与目标资源数据(保存在引擎资源包中)。可以使得导入流程更加纯粹,减少代码和逻辑复杂度。
以原始资源文件为“fbx”资源为例,导入器需要先将“fbx”转成中间数据“gltf”,再解析“gltf”进而得到对应的目标资源文件。由于本申请实施例中,每个原始资源文件都预留有一个缓存文件包temp,导入器只需要从temp中查询“gltf”,如果不存在就生成,而不需要关心中间数据“gltf”是否需要生成。
在本申请实施例中,每当原始资源文件发生改变,资源管理器会将该资源对应的缓存文件包删除,资源管理器只需要负责生成缓存数据即可,而不需判断该缓存数据是否为最新的缓存数据,达到了简化资源处理流程的目的。
S507,接收调用目标插件的调用操作。
其中,调用操作可以是基于用户的调用指令生成的。
具体的,资源管理器可以接收用户的调用指令,并基于调用指令确定调用操作。
S508,响应于调用操作,获取引擎资源包中与目标插件对应的目标资源文件。
具体的,资源管理器可以根据所确定的调用操作,获取引擎资源包中的目标资源文件,目标资源文件导入自与目标插件对应的插件资源包,且目标资源文件已经经过预处理,故该资源文件可供游戏引擎直接识别并使用。
本申请实施例通过响应于目标插件的调用操作,以获取游戏引擎包中与目标插件对应的目标资源文件;同时,目标插件配置有对应的插件资源包,该插件资源包与保存原始项目资源的项目资源包相互独立;本申请实现了基于插件资源包和项目资源包,分别将资源导入引擎资源包,减少了目标插件开发过程中出现bug的概率;此外,针对目标插件需要动态注册资源的情况,资源管理器支持多个插件资源包同时启动,目标插件配置有独立的插件资源包,达到了插件资源与原始项目资源隔离的目的,本申请可以实现在不影响游戏项目原始项目资源的情况下,基于目标插件动态的挂载、卸载资源集合的技术效果。相比于现有技术在导入过程中,新增资源往往会影响原始项目资源的处理逻辑,本申请增强了目标插件与游戏引擎的适配性,提高了游戏插件的开发效率,减少了开发成本。
本申请实施例提供了一种资源处理装置,如图6所示,该资源处理装置60可以包括:接收模块601和获取模块602;
其中,接收模块601,用于接收调用目标插件的调用操作;
获取模块602,用于响应于调用操作,获取引擎资源包中与目标插件对应的目标资源文件;其中,目标资源文件从与目标插件对应的插件资源包导入;引擎资源包中的项目资源文件从项目资源包导入。
本申请实施例中提供了一种可能的实现方式,上述装置还包括,导入模块,用于:
启动目标插件;
扫描插件资源包,确定待导入的原始资源文件;
将待导入的原始资源文件导入引擎资源包中。
本申请实施例中提供了一种可能的实现方式,上述装置还包括,配置模块,用于:
为各目标插件对应配置一插件资源包;其中,项目资源包的导入优先级高于插件资源包的导入优先级。
本申请实施例中提供了一种可能的实现方式,上述导入模块,还用于:
扫描插件资源包,获取原始资源文件的属性信息;
确定插件资源包所对应的导入信息;
当属性信息与导入信息相匹配,则将原始资源文件作为待导入的原始资源文件。
本申请实施例中提供了一种可能的实现方式,上述导入模块,还用于:
按照预设格式解析待导入的原始资源文件,生成目标资源文件;
将目标资源文件保存到引擎资源包中。
本申请实施例中提供了一种可能的实现方式,上述装置还包括,删除模块,用于:
当接收到针对目标插件的关闭通知,删除目标插件对应的插件资源包。
本申请实施例中提供了一种可能的实现方式,上述装置还包括,缓存模块,用于:
各插件资源包对应配置一缓存文件包,当插件资源包对应存在缓存数据,则将缓存数据保存到引擎资源包和缓存文件包中;其中,缓存数据包括插件资源包在资源导入时所产生的中间数据和临时数据中的至少一项。
本申请实施例的装置可执行本申请实施例所提供的方法,其实现原理相类似,本申请各实施例的装置中的各模块所执行的动作是与本申请各实施例的方法中的步骤相对应的,对于装置的各模块的详细功能描述具体可以参见前文中所示的对应方法中的描述,此处不再赘述。
本申请实施例通过响应于目标插件的调用操作,以获取游戏引擎包中与目标插件对应的目标资源文件;同时,目标插件配置有对应的插件资源包,该插件资源包与保存原始项目资源的项目资源包相互独立;本申请实现了基于插件资源包和项目资源包,分别将资源导入引擎资源包,减少了目标插件开发过程中出现bug(程序错误)的概率;此外,针对目标插件需要动态注册资源的情况,目标插件配置有独立的插件资源包,达到了插件资源与原始项目资源隔离的目的,本申请可以实现在不影响游戏项目原始项目资源的情况下,基于目标插件动态的挂载、卸载资源集合的技术效果。相比于现有技术在导入过程中,新增资源往往会影响原始项目资源的处理逻辑,本申请增强了目标插件与游戏引擎的适配性,提高了游戏插件的开发效率,减少了开发成本。
本申请实施例中提供了一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,该处理器执行上述计算机程序以实现资源处理方法的步骤,与相关技术相比可实现:本申请实施例通过响应于目标插件的调用操作,以获取游戏引擎包中与目标插件对应的目标资源文件;同时,目标插件配置有对应的插件资源包,该插件资源包与保存原始项目资源的项目资源包相互独立;本申请实现了基于插件资源包和项目资源包,分别将资源导入引擎资源包,减少了目标插件开发过程中出现bug(程序错误)的概率;此外,针对目标插件需要动态注册资源的情况,目标插件配置有独立的插件资源包,达到了插件资源与原始项目资源隔离的目的,本申请可以实现在不影响游戏项目原始项目资源的情况下,基于目标插件动态的挂载、卸载资源集合的技术效果。相比于现有技术在导入过程中,新增资源往往会影响原始项目资源的处理逻辑,本申请增强了目标插件与游戏引擎的适配性,提高了游戏插件的开发效率,减少了开发成本。
在一个可选实施例中提供了一种电子设备,如图7所示,图7所示的电子设备700包括:处理器701和存储器703。其中,处理器701和存储器703相连,如通过总线702相连。可选地,电子设备700还可以包括收发器704,收发器704可以用于该电子设备与其他电子设备之间的数据交互,如数据的发送和/或数据的接收等。需要说明的是,实际应用中收发器704不限于一个,该电子设备700的结构并不构成对本申请实施例的限定。
处理器701可以是CPU(Central Processing Unit,中央处理器),通用处理器,DSP(Digital Signal Processor,数据信号处理器),ASIC(Application SpecificIntegrated Circuit,专用集成电路),FPGA(FieldProgrammable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器701也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
总线702可包括一通路,在上述组件之间传送信息。总线702可以是PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA(ExtendedIndustry Standard Architecture,扩展工业标准结构)总线等。总线702可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器703可以是ROM(Read Only Memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,RAM(Random Access Memory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM(Electrically ErasableProgrammable Read Only Memory,电可擦可编程只读存储器)、CD-ROM(Compact DiscRead Only Memory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质、其他磁存储设备、或者能够用于携带或存储计算机程序并能够由计算机读取的任何其他介质,在此不做限定。
存储器703用于存储执行本申请实施例的计算机程序,并由处理器701来控制执行。处理器701用于执行存储器703中存储的计算机程序,以实现前述方法实施例所示的步骤。
其中,电子设备包括但不限于:诸如移动电话、笔记本电脑、PAD等等移动终端以及诸如数字TV、台式计算机等等固定终端。
本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时可实现前述方法实施例的步骤及相应内容。
本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行时实现如下情况:
接收调用目标插件的调用操作;
响应于调用操作,获取引擎资源包中与目标插件对应的目标资源文件;其中,目标资源文件从与目标插件对应的插件资源包导入;引擎资源包中的项目资源文件从项目资源包导入。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”、“1”、“2”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除图示或文字描述以外的顺序实施。
应该理解的是,虽然本申请实施例的流程图中通过箭头指示各个操作步骤,但是这些步骤的实施顺序并不受限于箭头所指示的顺序。除非本文中有明确的说明,否则在本申请实施例的一些实施场景中,各流程图中的实施步骤可以按照需求以其他的顺序执行。此外,各流程图中的部分或全部步骤基于实际的实施场景,可以包括多个子步骤或者多个阶段。这些子步骤或者阶段中的部分或全部可以在同一时刻被执行,这些子步骤或者阶段中的每个子步骤或者阶段也可以分别在不同的时刻被执行。在执行时刻不同的场景下,这些子步骤或者阶段的执行顺序可以根据需求灵活配置,本申请实施例对此不限制。
以上所述仅是本申请部分实施场景的可选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请的方案技术构思的前提下,采用基于本申请技术思想的其他类似实施手段,同样属于本申请实施例的保护范畴。
Claims (10)
1.一种资源处理方法,其特征在于,包括:
接收调用目标插件的调用操作;
响应于所述调用操作,获取引擎资源包中与所述目标插件对应的目标资源文件;其中,所述目标资源文件从与所述目标插件对应的插件资源包导入;所述引擎资源包中的项目资源文件从项目资源包导入。
2.根据权利要求1所述的方法,其特征在于,所述插件资源包中的原始资源文件导入所述引擎资源包的过程,包括:
启动所述目标插件;
扫描所述插件资源包,确定待导入的原始资源文件;
将所述待导入的原始资源文件导入所述引擎资源包中。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
为各所述目标插件对应配置一所述插件资源包;其中,所述项目资源包的导入优先级高于所述插件资源包的导入优先级。
4.根据权利要求2所述的方法,其特征在于,所述扫描所述插件资源包,确定待导入的原始资源文件,包括:
扫描所述插件资源包,获取所述原始资源文件的属性信息;
确定所述插件资源包所对应的导入信息;
当所述属性信息与所述导入信息相匹配,则将所述原始资源文件作为待导入的原始资源文件。
5.根据权利要求2所述的方法,其特征在于,所述将所述待导入的原始资源文件导入所述引擎资源包中,包括:
按照预设格式解析所述待导入的原始资源文件,生成目标资源文件;
将所述目标资源文件保存到所述引擎资源包中。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当接收到针对所述目标插件的关闭通知,删除所述目标插件对应的所述插件资源包。
7.根据权利要求3所述的方法,其特征在于,所述方法还包括:
各所述插件资源包对应配置一缓存文件包,当所述插件资源包对应存在缓存数据,则将所述缓存数据保存到所述引擎资源包和所述缓存文件包中;其中,所述缓存数据包括插件资源包在资源导入时所产生的中间数据和临时数据中的至少一项。
8.一种资源处理装置,其特征在于,包括:
接收模块,用于接收调用目标插件的调用操作;
获取模块,用于响应于所述调用操作,获取引擎资源包中与所述目标插件对应的目标资源文件;其中,所述目标资源文件从与所述目标插件对应的插件资源包导入;所述引擎资源包中的项目资源文件从项目资源包导入。
9.一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,其特征在于,所述处理器执行所述计算机程序以实现权利要求1-7任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-7任一项所述方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210112291.8A CN114443306A (zh) | 2022-01-29 | 2022-01-29 | 资源处理方法、装置、电子设备及计算机可读存储介质 |
PCT/CN2023/073636 WO2023143545A1 (zh) | 2022-01-29 | 2023-01-29 | 资源处理方法、装置、电子设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210112291.8A CN114443306A (zh) | 2022-01-29 | 2022-01-29 | 资源处理方法、装置、电子设备及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114443306A true CN114443306A (zh) | 2022-05-06 |
Family
ID=81371216
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210112291.8A Pending CN114443306A (zh) | 2022-01-29 | 2022-01-29 | 资源处理方法、装置、电子设备及计算机可读存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN114443306A (zh) |
WO (1) | WO2023143545A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023143545A1 (zh) * | 2022-01-29 | 2023-08-03 | 厦门雅基软件有限公司 | 资源处理方法、装置、电子设备及计算机可读存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10104086B2 (en) * | 2015-04-24 | 2018-10-16 | Oracle International Corporation | Techniques for fine grained protection of resources in an access management environment |
CN113157306A (zh) * | 2021-04-16 | 2021-07-23 | 上海米哈游璃月科技有限公司 | 一种资源打包管理方法、装置、设备及存储介质 |
CN113076122B (zh) * | 2021-04-16 | 2024-08-09 | 上海米哈游璃月科技有限公司 | 一种资源文件管理方法、装置、设备及存储介质 |
CN113101643B (zh) * | 2021-04-16 | 2024-08-13 | 上海米哈游璃月科技有限公司 | 一种资源文件管理方法、装置、设备及存储介质 |
CN114443306A (zh) * | 2022-01-29 | 2022-05-06 | 厦门雅基软件有限公司 | 资源处理方法、装置、电子设备及计算机可读存储介质 |
-
2022
- 2022-01-29 CN CN202210112291.8A patent/CN114443306A/zh active Pending
-
2023
- 2023-01-29 WO PCT/CN2023/073636 patent/WO2023143545A1/zh unknown
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023143545A1 (zh) * | 2022-01-29 | 2023-08-03 | 厦门雅基软件有限公司 | 资源处理方法、装置、电子设备及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2023143545A1 (zh) | 2023-08-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109542399B (zh) | 软件开发方法、装置、终端设备及计算机可读存储介质 | |
CN113065656B (zh) | 一种规则引擎配置方法、装置、服务器及可读存储介质 | |
CN108228188A (zh) | 一种视图组件处理方法、电子设备及可读存储介质 | |
CN107526623B (zh) | 一种数据处理方法及装置 | |
CN110471701B (zh) | 图像渲染的方法、装置、存储介质及电子设备 | |
EP4300303A1 (en) | Animation resource information processing method and apparatus, device, medium and product | |
CN112817657A (zh) | 一种应用程序启动项加载方法、装置、系统及存储介质 | |
CN110599581B (zh) | 图像模型数据处理方法、装置以及电子设备 | |
WO2023143545A1 (zh) | 资源处理方法、装置、电子设备及计算机可读存储介质 | |
CN110806913A (zh) | 网页截图方法、装置及设备 | |
CN113391811A (zh) | 函数编译方法、装置、电子设备及计算机可读存储介质 | |
CN110619204A (zh) | 一种邀请码生成方法、装置、终端设备及存储介质 | |
CN114040189A (zh) | 多媒体测试方法、装置、存储介质及电子设备 | |
CN111813407B (zh) | 游戏开发方法、游戏运行方法、装置和电子设备 | |
CN113220446A (zh) | 一种图像或视频数据处理方法及终端设备 | |
CN117065357A (zh) | 媒体数据处理方法、装置、计算机设备和存储介质 | |
CN113805854A (zh) | 基于Linux系统的应用层Hook实现方法、系统、装置及存储介质 | |
CN116204201B (zh) | 业务处理方法和装置 | |
CN113849157B (zh) | 动画播放管理的方法、装置、设备及存储介质 | |
CN116824018B (zh) | 渲染异常检测方法、装置、存储介质及电子设备 | |
CN118605883A (zh) | 元数据解析方法、装置、设备及介质 | |
CN117235318A (zh) | 数据处理方法、装置、电子设备及可读存储介质 | |
CN118708225A (zh) | 应用系统的配置方法、数据处理方法及相关装置 | |
CN115421650A (zh) | 数据的存储方法、装置、电子设备以及存储介质 | |
CN118642704A (zh) | 一种基于Cglib实现Bean对象拷贝的方法和装置 |
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 |