This section we focus on how to set up a simple entity from an imported
You will learn the basics about:
- What the creation graph is
- How the asset pipeline works
- How to create (rigg) an Entity from an imported asset
There are lots of things you might want to do to an imported asset coming from a DCC-tool. For example, extracting images and materials into a representation that can be further tweaked by your artists or rigging (create) an entity from the meshes present in the asset. In The Machinery, we provide full control over how data enters the engine and what data-processing steps that get executed, allowing technical artists to better optimize content and set up custom, game-specific asset pipelines.
This is handled through Creation Graphs. A Creation Graph is essentially a generic framework for processing arbitrary data on the CPUs and GPUs, exposed through a graph front-end view. While we can use Creation Graphs for any type of data processing.
For more information visit the Creation Graphs section.
Tip: if you wish to see other use cases such as particle systems, sky rendering and sprite sheets, then have a look in the
creation_graphssample that we provide.
You can import an asset by selecting File > Import... in the main menu, pressing Ctrl-I, or dropping a DCC file on the Asset Browser tab. When you do this, it ends up in our data-model as a
For a more in detail explanation about how to import assets checkout the Asset Import Part.
If you click on a
dcc_asset that contains a mesh in the Asset Browser, you will be presented
with importer settings in the Properties tab:
The Preview tab does just enough to show you what the
dcc_asset contains, but what you probably
want is an
entity that contains child entities representing the meshes found inside the
dcc_asset. Also, you probably want it to extract the images and materials from the
you can continue to tweak those inside The Machinery. There are two ways to do this. Either you drag
the DCC asset onto the Scene Tab, or you click the Import Asset button. The Import Assets
button will automatically create a prototype Entity Asset in your project, while dropping it into
the scene will rig the entity inside the scene, without creating a prototype.
In either case, we will for our
door.dcc_asset get a
door.resources directory next to it. This
directory will contain materials and images extracted from the DCC asset. If you prefer dropping
the assets into the scene directly, but also want an entity prototype, then you can check the
Create Prototype on Drop check box.
Each image and material in the resources folder is a Creation Graph, which is responsible for the data-processing of those resources. You can inspect these graphs to see what each one does. They are described in more detail below.
In The Machinery, there are no specific asset types for images or materials, instead, we only have
Creation Graphs (
.creation assets). To extract data from a
dcc_asset in a creation graph, the
dcc_asset-plugin exposes a set of helper nodes in the DCC Asset category:
DCC Asset/DCC Image-- Takes the source
dcc_assettogether with the name of the image as input and outputs a
GPU Imagethat can be wired into various data processing nodes (such as mipmap generation through the
Image/Filter Imagenode) or directly to a shader node.
DCC Asset/DCC Material-- Takes the source
dcc_assettogether with the name of the material as input and outputs all properties of the material model found inside the
dcc_asset. This material representation is a close match to GLTF 2.0's PBR material model. Image outputs are references to other
.creationassets which in turn output
DCC Asset/DCC Mesh-- Takes the source
dcc_assettogether with the name of the mesh as input and outputs a
GPU Geometrythat can be wired to an
Output/Draw Calloutput node for rendering together with the minimum and maximum extents of the geometry that can be wired to an
Output/Bounding Volumeoutput node for culling.
The steps for extracting images and material
.creation assets from a
dcc_asset involve deciding
what data-processing should be done to the data before it gets wired to an output node of the graph.
This can either be done by manually assembling creation graphs for each image and material, or by
building a generic creation graph for each asset type and use that as a prototype when running a
batch processing step we refer to as Resource Extraction.
Here's an example of what a generic creation graph prototype for extracting images might look like:
To quickly get up and running we provide a number of pre-authored creation graphs for some of the more common operations:
import-image-- Operations applied to images imported directly into the editor (not as part of a
dcc-image-- Operations applied to images extracted from an imported
dcc-material-- Shader graph setup to represent materials extracted from an imported
dcc-mesh-- Operations for generating a draw call that represents a mesh from an imported
drop-image-- Operations for generating a draw call to display the image output of another creation graph in the context of an entity, making it possible to drag-and-drop images into the Scene Tab.
These pre-authored creation graphs are shipped as part of our Core project which is automatically
copied into new projects. How they are used when working with assets is exposed through the
By exposing these settings through an asset it is possible to easily change the default behavior of how imported assets are treated when placed under a specific folder.
Note: It's worth noting that this is somewhat of a power-user feature and not something you need to have a detailed understanding of to get started working with The Machinery.