Material Layer System
MLS is a shared library of base materials that are combined together in unique stacks using blend functions as masks, allowing for unique material results and variations derived from the same texture pool.
MLS is a versatile system with infinite possibilities that can be used to add new elements, masks, decals, and variations to any material in your scene.
Shared Tilling Materials
Layer Blend
Using the world direction layer blend we can make the Rust Material only show in the top of the geometry.
When Should I Use?
MLS can be used in any case, and it is lightweight since all the material data is being loaded from a single source, except for the textures.
However, MLS is best used when you need complex materials without the need to create new texture specifics for a given mesh with the ability to add several layers with different types of blends.
Getting Started
Find the MLS folder inside the Emperia Tools Plugin and open it
In this folder you will find 4 folders and 1 material:
- Blending Layer Folder -Contains all preset blending.
- Instanced Material Layers - Contains the Instances of different types of layers.
- Material Presets - Contains some preset material layers.
- Setup - Base structure of the system - do not tinker.
- MI_MLS_Base Material This material should be applied in your mesh, it holds the layer system.
Drag/apply the MI_MLS_Base to your mesh.
Right-click the MI_MLS_Base and select edit.
In the edit window, you will need to select “Layer Parameters” to access the Material Layer Properties.
Different from the conventional materials where all the parameters are editable through the “Details” tab, in the MSL the parameters are all condensed inside the “Layer Parameters” tab.
Then you can open the Background dropdown and select your material type or preset.
We will use the ML_I_Painted_Metal Preset in the example.
Next, we will click on the + icon next to Material Layers to add another Layer on top of the Painted Metal, and then we will select the ML_I_Rust preset.
Note that this layer already has nanite displacement active, so we will navigate to the displacement properties and we will disable it for now.
Note that the Rust material completely replaced the background material Painted Metal. Now we need to select a blending layer that will “mask” the rust layer on top of the painted metal.
Open the Blend Asset dropdown and choose a blending function for the Rust Layer
Now you can freely tweak the properties of the blending layer and the materials to achieve the desired look
Now you have set up your first Material Layer System. Next we will understand the custom material M_ML_Uber and how to use.
Custom Material Properties
The following video shows an overview of all the functionalities of the main Uber Shader.
IMPORTANT:
- When using packed textures from different sources we can encounter several different types of packaging order, ORM, ORDp, MR and others. To give more flexibility, we added the drop-down 07 - Packed Texture Channel Selector, where you will be able to select the from which channel of the texture map you will be using each properties.
- For cases where you have a texture map exclusively dedicated to a specific functionality, you can find that functionality drop-down and enable the exclusive texture map.
- For the Opacity Map, the source selector is a bit different. In the opacity drop-down you will find the parameter Opacity Source, that receives a scalar as input. As stated in the parameter we can get the opacity information from 3 different sources.
- From the Packed Texture Map - Keep the value at 0 and set the source channel in the 07 - Packed Texture Channel Selector drop-down.
- From a exclusive Mask/opacity Texture - Change the scalar value to 1 and assign a texture at the 08 - Textures drop-down.
- From the Albedo Texture Map Alpha Channel - Change the scalar value to 2 and provide an Albedo Texture Map with the mask/opacity in the Alpha Channel.
To make the opacity active, remember to set the Blend Mode to Translucent or Masked in the Details Tab > Material Property Overrides > Blend Mode
Note: As for the current version, Unreal Engine 5.4.1, Nanite Tesselation displacement is not supported by translucent blend mode. It is only supported by Masked blend mode.
Blending Layers Overview
The AR model allows you to visualize 3D models within the experience.
To create a new AR model, follow these steps:
- Right-click in the Content Browser.
- Go to Miscellaneous → Data Asset.
- Search for "ARModel" and select the corresponding type.
- Click "Create" to generate the asset.
- The AR Data Asset contains all necessary configurations for the AR Viewer.
Key | Description |
MeshURL | The URL or references for the 3D Mesh to display in the AR model. |
iFrame Model
The iFrame model allows you to embed websites or iframes within the experience.
To create a new iFrame model, follow these steps:
- Right-click in the Content Browser.
- Navigate to Miscellaneous → Data Asset.
- Search for "iFrame" and select the appropriate type.
- Click "Create" to generate the asset.
- The iFrame Data Asset contains all necessary configurations for the iFrame Viewer.
Key | Description |
URL | The URL or references for the web page to display in the iFrame model. |
Media Model
The Media model allows you to embed videos and images within the experience.
To create a new Media model, follow these steps:
- Right-click in the Content Browser.
- Navigate to Miscellaneous → Data Asset.
- Search for "Media" and select the appropriate type.
- Click "Create" to generate the asset.
- The Media Data Asset contains all necessary configurations for the Media Viewer.
Key | Description |
URLs | The URL or references for the Videos, Images to display in the Media model. |
Automated Action Model Creation Process
To streamline the process of creating action models, assets, and attaching them to interactables, we now support direct editing within the Details Panel of interactables placed in the scene.
Using the Action Type dropdown, you can specify the type of interactable action. Once selected, the relevant properties will appear below the dropdown for configuration. This automatically creates and attaches the corresponding action models and action type assets to the interactable, significantly reducing the number of steps required.
If you forget to save your action models or action type assets, you can simply clear the action models array on the interactable and make a slight modification to any Action Type property. This will automatically regenerate the entire asset.
Help & Support
If you have questions, suggestions, or feature requests, please join the Official Emperia Discord channel!
You can find support here through private support tickets or general conversation. You will also have the opportunity to showcase your work and chat with like-minded individuals across industries using Creator Tools, Unreal Engine, those creating immersive experiences, and more!
If you prefer, you can also reach out to us via email.