Version:

源资产

源资产是包含未处理数据的文件,您希望将其加载到Open 3D Engine (O3DE)编辑器启动器中。您可以在数字内容创建 (DCC) 应用程序中创建源资产,如模型、纹理、动画和音频文件。O3DE工具可创建.material, .inputbindings, 和 .scriptcanvas 文件等源资产。这些源资产必须通过资产管道进行处理,其产品资产必须存储在项目的资产缓存中才能被O3DE使用。

注意:
某些源资产,如.xml文件,可能不需要作为产品资产处理。资产处理器使用简单的复制操作将这些资产复制到资产缓存。

处理源资产

每种源资产类型都有一套可定制的规则,由其资产生成器用于生成产品资产。对于图形和动画源资产,O3DE 提供了场景设置纹理设置等工具,您可以使用这些工具为每个源资产创建自定义处理规则。通过 “纹理设置”,您可以指定纹理源资产的使用方式、mipmap 链以及采样和过滤方式。通过 “场景设置”,您可以指定从.fbx源资产中处理哪些网格、骨骼和运动,以及如何生成物理碰撞体。

自定义资产处理规则时,选项会存储在与源资产相同目录下的.assetinfo副卡文件中。如果资产处理器找到一个.assetinfo文件,就会根据.assetinfo文件中的选项处理相关源资产。否则,资产处理器会使用默认规则,根据源资产的类型对其进行处理。

如果您有许多源资产需要处理,您可能会发现使用 “纹理设置 ”和 “场景设置 ”工具非常耗时。.assetinfo sidecar 文件采用 JSON 格式,可以用 Python 生成和修改。例如,可以编写 DCC 应用程序导出过程的脚本,自动生成.assetinfo文件,或在源资产库上运行批量 Python 脚本,添加或修改.assetinfo文件中的选项。O3DE 中的许多资产都是 JSON 格式:例如,.material, .prefab, 和.physicsmaterial`文件都是 JSON 格式,可以用 Python 自动生成和修改。

Python 还可用于定制资产处理。在资产处理过程中,可以运行 Python 脚本来修改产品资产的生成方式。Python 资产生成器提供了一种创建自定义资产处理任务的方法。如需了解更多信息,请参阅 使用 Python 资产生成器自定义资产处理

利用 JSON 和 Python 脚本,可以对整个资产管道进行自定义和自动化,包括集成新的工具和资产类型。

资产再处理

源资产文件通过时间戳、文件哈希值和资产生成器指纹进行跟踪。为确保项目的产品资产始终是最新的,资产处理器会在以下情况下自动安排资产处理工作:

源资产的更改

如果源资产被修改,且源资产或其 .assetinfo的时间戳与上次处理任务的时间戳信息不匹配,资产处理器会添加一个任务来重新处理源资产。

注意:
资产处理器有一个选项,可以使用文件哈希值而不是时间戳来检测文件变化。不过,使用哈希值检测文件更改会大大增加源资产的分析时间。

更改工作依赖关系

有些资产有 工作依赖项。工作依赖关系的更改会触发 “资产处理器 ”安排工作,重新处理具有该依赖关系的源资产。例如,材质依赖于着色器。如果修改并重新处理了着色器,那么引用该着色器的所有材质也会自动重新处理。

资产生成器的更改

资产生成器使用其源代码中定义的指纹来识别资产生成器的版本。资产生成器指纹存储在生成产品资产的作业信息中。如果特定资产类型的资产创建器已更新,其指纹也已修改,那么它将与处理资产创建器支持的源资产的作业指纹不匹配。这会触发对使用资产创建器的所有源资产进行重新处理。

关键资产

某些源资产在其 “资产构建器 ”中被标记为关键资产,并在非关键资产之前进行处理。引擎需要关键资产,这样引擎才能正常运行。着色器就是关键资产。如果着色器尚未处理,则无法渲染使用该着色器的材质。关键资产在被处理之前无法启动 O3DE 编辑器和启动器。当您第一次启动 O3DE Editor 时,闪屏会显示有关资产处理的信息。在首次启动 O3DE 编辑器之前,可能需要几分钟来处理关键资产。