IN THIS ARTICLE
Asset Types
The table below describes some of the most common source asset types supported by the Asset Pipeline in Open 3D Engine (O3DE) and lists the product assets generated by Asset Processor for each source asset type. The table also lists which builders process specific source asset types, and the location of the builders in the source code. Builders can be located in the O3DE engine code, Gems, or project code.
Note:Some source assets are simply copied to the Asset Cache, so the product asset type is identical to the source asset type.
Asset Builders
Source Asset | Builder | Builder Location | Description | Product Assets |
---|---|---|---|---|
.animgraph | AnimGraphBuilderWorker | EMotionFX Gem | Animation graphs define animation behavior for characters. | .animgraph |
.attimage , .azasset , .azbuffer | Any Asset Builder | Atom Gem | - | Same as the source asset, .attimage generates an .attimage product asset. |
.texatlas | Atlas Worker Builder | Texture Atlas Gem | Texture atlases are used to reduce draw calls in user interfaces. | .texatlasidx and .streamingimage |
.bmp , .dds , .exr , .gif , .jpeg , .jpg , .png , .tga , .tiff , .tif | Atom Image Builder | Atom Gem | Processes images for use in O3DE, primarily for use as Textures. | Product assets generated depend on settings, but will generally include .imagemipchain and .streamingimage . |
.materialtype , .material | Atom Material Builder | Atom Gem | Materials contain properties to define how objects are rendered. | .materialtype outputs .material and .azmaterialtype products. .material outputs .azmaterial products. |
.resourcepool | Atom Resource Pool Asset Builder | Atom Gem | - | .pool or .streamingimagepool |
.benchmarksettings , .benchmark | Benchmark Asset Worker Builder | LmbrCentral Gem | - | - |
.blast | Blast Scene Builder | Blast Gem | - | .blast , .assetinfo.generated |
.cfg | CFG Builder Worker | LmbrCentral Gem | - | .cfg |
.emfxworkspace | EmfxWorkspaceBuilderDescriptor | LmbrCentral Gem | - | .emfxworkspace |
.fontfamily , .font | FontBuilderWorker | LmbrCentral Gem | Fonts are used to render text. | Same as the source asset, .font generates a .font product asset. |
.tfx | HairAssetBuilder | AtomTressFX Gem | TressFX provides realistic hair and fur simulation. | .tfxhair |
.lua | Lua Worker Builder | LmbrCentral Gem | Lua is a scripting language that can be used to author logic for your project. | .luac |
.mock | Mock Builder | Automated Testing Project | This builder assists in automated testing, run with the AutomatedTesting project. It’s a useful example for teams that wish to author builders in Python for custom asset types in their own project. | .mock_asset |
.motionset | MotionSetBuilderWorker | EmotionFX Gem | A motion set contains a list of motions. | .motionset |
.pass | Pass Asset Builder | Atom Gem | Passes are logical groupings of render work with a defined input and output. | .pass |
.precompiledshader | Precompiled Shader Builder | Atom Gem | - | .azshader |
.prefab | Prefab Builder | Prefab Gem | Prefabs are a foundational element for building an O3DE project, a prefab is a collection of entities. | .spawnable |
.ts | Qt Translation File Builder | LmbrCentral Gem | Qt translation files. Qt is only enabled in Editor tools, so these can be useful for translating tools, but not projects, to different languages. | .qm |
.fbx , .glb , gltf , stl | Scene Builder | SceneProcessing Gem | Scene files are used to define 3D content, such as meshes and animations. | .motion , .procprefab , .azmaterial , .azbuffer , .azlod , .azmodel , .blast_chunks , .pxmesh , .skinmeta , .actor |
.xmlschema | SchemaBuilderWorker | LmbrCentral Gem | XML Schema files assist with finding product dependencies in XML files. The XML Schema Editing tool in O3DE Editor can define patterns to match XML format files, and patterns search for product dependencies in those files. | .xmlschema |
.scriptcanvas | Script Canvas Builder | ScriptCanvas Gem | Script Canvas is a general purpose, visual scripting environment for O3DE. | .luac , .scriptcanvas_compiled , .scriptcanvas_fn_compiled |
.scriptevents | Script Events Builder | ScriptEvents Gem | Script Events allow scripts to communicate with each other. | .scriptevents |
.seed | SeedBuilderDescriptor | LmbrCentral Gem | Seed asset lists are used in the asset bundling process, which is how content is packaged up for distributing projects to end users. | .seed |
engine.json | Settings Registry Builder | Asset Processor | - | engine.json , .setreg |
.shader | Shader Asset Builder | Atom Gem | Shaders are used by the rendering system to determine how 3D geometry is rendered. | .json , .azslin , .azshadervariant , .hlsl |
.shadervariantlist | Shader Variant Asset Builder | Atom Gem | Shader variants are shader constants that are only used in conditional statements that can be statically optimized. | .azshadervarianttree , .azshadervariant |
.uicanvas | UI Canvas Builder | LyShine Gem | UI Canvas files define two dimensional visual elements for your project, usually used for user interfaces. | .uicanvas |
.ent , .vegdescriptorlist , and anything matching the regular expression:(?!.*libs\/gameaudio\/).*\.xml | XmlBuilderWorker | LmbrCentral Gem | XML files are copied directly to the cache as product assets. The XML Builder provides an entry point for scanning XML files for product dependencies, used during Asset Bundling, for packaging up content when distributing projects to end users. | .xml |
Copy Jobs
A copy job is used for assets that have no additional processing requirements, they copy the source asset directly to the asset cache. In these cases, the product asset is identical to the source asset. Copy jobs are defined via the settings registry, the engine’s default copy jobs can be found in AssetProcessorPlatformConfig.setreg .