Latest news
TutorialsUnreal Engine

Creating a Material Instance in Unreal Engine: A Step-by-Step Guide

In Unreal Engine, a Material Instance lets you change properties defined as parameters in a parent material without reworking its node graph. This guide covers the workflow, from preparing a material to editing instances.

Realistic architectural visualization showing contemporary interior material optionsAI image
Representative image, generated with AI.Image: 3dsınıfı / FCA AI

In brief

  1. A Material Instance inherits properties from its parent material; only values defined as parameters can be edited.
  2. A Scalar Parameter holds a single numeric value, while a Vector Parameter holds a four-channel value.
  3. To create a material instance, first prepare a parent material with parameters, then create an instance in the Content Browser.
  4. Parameter groups help keep instances with many controls organized in the Material Instance Editor.

What will you learn in this guide?

When creating material variations in Unreal Engine, you don’t need to rebuild the node graph from scratch for every new look. A Material Instance inherits properties from a parent material and lets you change individual values defined as parameters in that parent. This makes it possible, for example, to create materials with different color, roughness, and metallic values from the same surface setup.

In this guide, you’ll learn how to set up a parent material with parameters, create and edit a Material Instance, and organize controls into groups. Epic Games documentation notes that this approach can speed up workflows by reducing the need to recompile standard materials. The preview updates when you edit parameters; if the instance is applied to an Actor in the example scene, you can see the changes there as well.

Requirements

The workflow uses the Material Editor, Content Browser, and Material Instance Editor in Unreal Engine. The Epic Games guides provided do not specify a particular Unreal Engine version, hardware level, or account requirement, so no version number or system recommendation is included here. You need to be able to create and save a Material and create a material instance.

Which properties can be changed in a material instance depends on how the parent material is set up. Standard material expressions do not automatically become editable controls: properties you want to change must be defined using parameter nodes. So it’s helpful to start by planning which values the parent material should expose to artists, rather than by opening the material instance first.

Step-by-step Material Instance workflow

  1. Create the parent material. Prepare a Material in the Material Editor. It will be the parent of the instances you create and define their base appearance. Decide which properties you want to be able to change, such as Base Color, Metallic, and Roughness.

  2. Turn editable values into parameters. You can add suitable parameter nodes by searching for “parameter” in the Material Palette or by using the Material Editor’s right-click menu. To add a Scalar Parameter, which holds a single numeric value, press S in the graph and left-click. To add a Vector Parameter, which contains four floating-point values, press V and left-click.

    Using a Vector Parameter for Base Color and Scalar Parameters for Metallic and Roughness is the basic example shown in the documentation. Give parameters descriptive names, such as “Roughness” and “Metallic.” Clear names make it easier to understand what each control affects when it appears in the Material Instance Editor.

  3. Set the default value and range. Select a parameter node in the graph to set its default value in the Details panel. In the Epic Games example, the expected range for Roughness is 0 to 1; you can enter these limits in the Slider Min and Slider Max fields. This sets the range available when adjusting the value in the instance. For other values, set limits according to the needs of the material rather than assuming ranges not provided by the source.

  4. Convert an existing expression to a parameter if needed. Select a Material Expression that is not a parameter, right-click, and choose Convert to Parameter. This option is not available for every expression; it can only be used for expressions that support conversion to a parameter. After converting it, give the node a unique, descriptive name.

  5. Apply and save the material. Once you’ve connected the parameters, click Apply in the upper-left corner of the Material Editor, then save the material with Save. The parent material with parameters forms the basis for its instances. You don’t have to turn values that should remain fixed into parameters; values that are not parameters won’t be available as editable controls in the instance editor.

  6. Create a Material Instance. In the Content Browser, right-click the parent material and select Create Material Instance. Select the new instance and rename it by pressing F2 or clicking once in the name field. The instance inherits the parent material’s properties; when first created, it looks the same as the parent unless its parameters are changed.

  7. Edit the instance values. Double-click the Material Instance in the Content Browser to open the Material Instance Editor. The controls appear in the Details panel under the parameter names used in the parent material. Check the box next to the parameter you want to edit, then enter a new value in the field or left-click and drag to adjust it. To change the color of a Vector Parameter, click its color swatch to open the color picker. Use the corresponding reset arrow to restore the default value.

  8. Group controls when there are many. Parameter groups are configured in the parent material, not the instance. Select a parameter node in the parent material’s graph and enter a group name in the Group field in the Details panel. For example, you can organize controls by the material properties they affect. Use the parameter node’s Sort Priority field to set the order within a group, and the parent material’s Group Sort Priority property to order groups. Epic Games documentation notes that groups are sorted alphabetically by default.

Impact on architecture, interior design, and archviz workflows

This method can be useful for architecture and interior visualization teams that need to create multiple options from the same base surface. For example, color or roughness variations for surfaces in a scene can be managed through a parameterized parent material and its instances. Values are edited in the Material Instance Editor, so there’s no need to rebuild the node graph for every variation.

Another use is making visual changes within a scene. Epic Games notes that Dynamic Material Instances, which can be changed during gameplay, can be used in architectural visualization for examples such as changing a paint color. However, this is a different workflow from creating a parameterized material and a Material Instance in the Content Browser: Dynamic Instances are created using scripts or Blueprints and can be updated at runtime. The source does not include a detailed tutorial for this workflow, so no additional node connections or code steps are provided here.

For team use, keep control names and groups clear; having many parameters in a single list can make editing harder. Static Parameters are also applied at compile time, and different combinations may require new material compilations. Epic Games warns that a large number of static parameter combinations can lead to an excessive number of shader compilations. Licensing, fees, and hardware requirements are not covered in the provided documentation; verified information on these should be obtained separately during project planning.

Common mistakes

  • Not parameterizing a property you want to change: If the parent material uses a standard value, it won’t appear as an editable control in the instance. Use the appropriate parameter node for the property you want to change.

  • Giving a parameter an unclear name: Descriptive names make it easier to find the right value when you have multiple controls.

  • Turning every value into a parameter: Expose only the controls that need to change in instances; values that should remain fixed can be left as standard expressions.

  • Creating too many Static Parameter combinations: Static parameters are applied at compile time, not at runtime. Compiling many different combinations can increase the number of materials that need to be compiled.

  • Overlooking the impact of changing the parent material: Changing an instance’s Parent material can affect its appearance and available parameters. There is no guarantee that the new parent material will contain the previous parameters.

Next steps

Start with a basic parent material that has a small number of parameters, then create a Material Instance to check how changes look in the preview. As the number of controls grows, organize and sort the parameters. If values need to change while the scene is running, keep in mind that Constant and Dynamic instances have different uses; setting up runtime instances with Blueprints or code needs to be covered separately.

Source and license

This tutorial has been adapted into Turkish from Epic Games’ “Instanced Materials in Unreal Engine” and “Creating and Using Material Instances in Unreal Engine” documentation. In the provided source records, both pages are marked “license=free.”

Sources

2 sources
D
dev.epicgames.comdev.epicgames.com/documentation/en-us/unreal-engine/instanced-materials-in-unreal-engine
Summary
D
dev.epicgames.comdev.epicgames.com/documentation/en-us/unreal-engine/creating-and-using-material-instances-in-unreal-engine
Summary

Source texts are not republished; short quotes are marked, everything else is our own summary and commentary.

3dsınıfı’s take
3dEditor’s assessment

The Material Instance approach offers architecture firms and visualization teams in Turkey a practical way to quickly present different color and roughness options for the same surface. Setting up the parent material once reduces the need to rebuild the node graph for recurring variations.

However, the benefits depend on preparing the parameterized parent material in an organized way. Using consistent control names and groups across a team makes the file easier for someone else to take over. The sources do not specify license fees or hardware requirements, so these should be verified separately. Also keep in mind that increasing the number of Static Parameter combinations can have consequences, and changes to the parent material may alter the appearance of its instances.

Frequently asked questions

How do you create a Material Instance in Unreal Engine?

First, prepare and save a parent material with the properties you want to edit defined as parameters. Then right-click the parent material in the Content Browser and choose Create Material Instance.

Which values can you change in a Material Instance?

Properties defined as parameters in the parent material can be edited in the Material Instance Editor. A Scalar Parameter holds a single numeric value, while a Vector Parameter holds a four-channel value.

What is the difference between a Material Instance and a Dynamic Material Instance?

A Material Instance Constant is calculated before runtime and does not change during gameplay. A Material Instance Dynamic can be created and edited at runtime using a script or Blueprint.

Comments and the forum are in Turkish.Join the discussion
+

Related news