Mutable for Unreal Engine | Create a basic Customizable Object
Overview
This page features the creation of the most basic examples of a Customizable Object. These examples consist in the set up of a base character, with its skeletal mesh and material.
The following examples don’t have customizable elements but are the base structure for more complex examples explained in other pages.
The resulting Customizable Objects of this page will be ready to create Customizable Object Instances from them.
Basic Object
In this example, a Skeletal Mesh and its Material are set up.
Assets required
- One material asset or material instance without any parameter (it can have textures but not converted to parameters)
- One skeletal mesh with only one material Slot
Steps
- The first step for this example is to create a Customizable Object asset inside Unreal Engine. You can check the Basic Concepts page on how to do this.
The Customizable Object asset in the Unreal Engine Content Browser. In this example, the Customizable Object asset is named "TestMarc_Basic_Object"
- Double-click the Customizable Object asset to open the Mutable Editor.
- Inside the Customizable Object, a Reference Skeletal Mesh must be set. You can set it in the Object Properties tab, under Customizable Object. This mesh will be used as reference for Unreal Engine settings (such as skeleton, volumes, shadow properties, etc).
In this example, the Reference Skeletal Mesh used is "BaseObject_SingleMaterial"
- Name the Base Object node in the Graph Node Properties tab. Leave the rest of the parameters as default.
In this example, the node is named "Base Object"
- Create a Material node. To do it you can click and drag the "LOD 0" connection from the Base Object node to any empty space in the graph and then writing "Material" in the contextual menu.
The Material node is now connected to the Base Object node
- Set a material asset or a material instance to the Material node. To do this, select the Material node and set the material in the Graph Node Properties tab.
In this example, "BaseObject_NoParam" has been used
- Create a Skeletal Mesh node.
- With the Skeletal Mesh node selected, set a skeletal mesh in the Graph Node Properties tab.
In this example, "BaseObject_SingleMaterial" has been used
- The Skeletal Mesh node should have been updated and now it incorporates two slots. Link the "Unnamed Material Mesh" to the"Mesh" connection of the Material node.
- Compile the Customizable Object by clicking on the Compile button in the top bar of Mutable Editor.
Result
The resulting mesh in the Preview Instance Viewport tab
The result of this example is a Customizable Object ready to have its own Instances. As there are no customizations or parameters created, the object has the same visual result as the source skeletal mesh with the assigned material asset.
Materials with parameters
When working with material assets or material Instances which have parameters, the parameters are shown in the Material nodes. In this example, a Material node is set with a material instance with a base color texture parameter.
Assets required
- One material asset or material instance with a texture parameter
- One skeletal mesh (in this case, it has assigned the material instance used in the example)
Steps
- Create a new Customizable Object.
- Inside Mutable Editor, set a Reference Skeletal Mesh in the Object Properties tab.
In this example the mesh is "BaseObject_SingleMaterial_Param".
- Name the Base Object node.
In this example it is called "Material with parameter".
- Create a Material node and connect it to the Base Object node.
- Set the material asset with the parameter in the Material node in the Graph Node Properties tab. The parameter should now appear as a new soft blue connection in the Material node.
In this example, the material asset used is "BaseObject_Param". This material has a parameter called "Base Color" which appears in the Material node.
- Create a Skeletal Mesh node.
- Set a skeletal mesh in the Skeletal Mesh node in the Graph Node Properties tab. If the source skeletal mesh set has a material asset with a parameter assigned, Mutable detects it and shows its parameter as a new connection in the Skeletal Mesh node. This connection can be used to get the parameter value from the assigned material from the source skeletal mesh. Link its mesh connection to the Material node's one.
In this example, the skeletal mesh is "BaseObject_SingleMaterial_Param".
The source skeletal mesh has a material asset assigned. The material has one parameter called "Base Color".
- Connect the "Base Color" connection of the Skeletal Mesh node to the "Base Color" connection of the Material node. Compile the Customizable Object.
This example gets the value for the "Base Color" parameter from the value in the source skeletal mesh material.
Setting the value of the parameter
As the Material node has a connection from the parameter of the set material, it can be now connected to other nodes to change its value. In this bonus example, another texture is set as "Base Color".
- From the "Base Color" connection in the Material node, create a Texture node.
- With the Texture node selected, set a texture value in the Graph Node Properties tab.
In this example, the texture selected is a color bar called "BaseObject_Colorful".
- Compile the Customizable Object.
The resulting mesh with the new texture value.
Objects with more than one material
In case a skeletal mesh used in a Customizable Object has more than one material, the Skeletal Mesh node will detect it and set its inner connections with its values. In this case, there must be one Material node for each material used. Any number of Material nodes can be connected from the Base Object node.
The following image shows the most basic example of this. A Customizable Object with a skeletal mesh with two materials.
Once the skeletal mesh is set in the Skeletal Mesh node, the node is updated with its material connections. In this case, there are two materials without any parameters
The resulting mesh. Notice that the character now have eyelashes.
- Last Author
- gerard
- Last Edited
- Sep 30 2021, 3:50 PM