Often we need ability to adjust normal map strength in Unreal after bringing in the maps. Normal map is a special map that contains vectors in color values, so it cannot simply be multiplied by itself to increase strength. This would cause issues.

We need to leave the blue channel unchanged while changing the intensity of R and G. Here is how we can can do this and expose a parameter for ease of use.

Now, I know there is normal flatten node, but in my experience it doesn’t work as well as it tends to also change the blue channel, so I rather do this instead.

Here are the nodes to normal map strength in Unreal
Here are the nodes to normal map strength in Unreal

So drag lines from R and G from the Normal Texture Sample. If you type “mul” you can get to multiply. You can also press m while left clicking to create multiply nodes fast. Make sure the line from R is connected to A of the Multiply node. Then right click B node and choose “promote to parameter”.

You have now made a parameter. Name that to NormalStrength for example. Give this a default value of 1.0.

Then do the same for the green G channel. Next, right click on the empty area to create MakeFloat3. This will combine the RGB values again to be fed into the normal channel. Last, connect MakeFloat3 to the normal input of the material.

Finally, save the material.

Congratulations. You have actually now created a material with a parameter in it. Yay!

Right click the newly created material and select “Create Material Instance”. This will be a child material of the master. You can now see the following Global Scalar Parameter in it.

Here is how to adjust normal map strength in Unreal using material instance.
The newly created Material Instance now has new Global Scaler Parameter values section with newly created parameter to adjust normal strength.

In this way you can adjust the strength of the material anytime, or even create several variations of it.

In next tutorial I will show how to create a material function of this, which helps to clean up the graph and can be reused easily.

Here is useful documentation on creating normal maps.