Substance & UE4 - Material variation on multiple objects


I created my own substance that I can easy use in few places. I exposed all settings that are needed to make my textures unique, but any changes i made are updated on all meshes I added material.

Do I need to import same Substance file again & change name, then use other settings and apply to my mesh? Or there is any other and better way to achieve that.

Cheers & sorry for poor English.

Instead of re-importing the substance, you could create a 2nd (3rd,4th as many as you need) material (or material instance) using the same substance file but with a different material name, and use that material to apply to the part of the mesh you need to be separated from the first material.

It depends on how the model is set up, but that should work as long as you have multiple material slots on the mesh.

Welcome to the forums! And I Hope that helps you! :slight_smile:

Substance doesn’t make materials, when inside of the engine the maps Substance produce works just like a regular texture/2d image and any changes done to them will affect all materials used by them. Only difference is that you don’t need to open Photoshop if you want to edit them and you can change them during runtime.
If you want different variations you’ll have to duplicate the substance or import another one and then change that one separately.

Thanks for warm Welcome DotCam :slight_smile:

I got answers that i was looking for, thanks Guys.

Hi Guys, I know this is an old thread, but i am having the same problem and i didn’t quite understand DotCam’s solution. I similarly have several objects which use the same material, however, i need to alter the materials in realtime. So how do i go about creating an instance of the original substance… ? is it just like an normal material instance. (i realize this may be a dumb question)

Hi libellum,

We provide C++ and blueprint functions that can duplicate a substance graph. Generally what I do is duplicate a graph instance, then create a material using those graph outputs, and then assign that material to the mesh I want, in blueprint. You can do this via an entity blueprint so it’s automatically done every time you place that object as well.


How can I assign duplicated Graph Instance to a mesh or material?