It might be late, but I haven’t seen a real solution for this issue yet. After much research, I found the solution.
The roughness of the Metahuman texture is generated from the normal map. As Eugene_Lin mentioned, there’s an option in the texture that allows extracting the roughness from the normal map, and in this case, for Metahumans, it specifies that the normal map should be placed in the green channel. However, when exporting, these parameters are not read by Unreal, resulting in a black texture.
When we export the roughness of the head, we get a red color. This still isn’t correct because it uses the same method to generate it, loading it onto the green channel. What we see as red upon exporting is actually the roughness data that belongs only to the makeup.
The solution is:
- Import all the textures into Substance Painter and use each one in its respective channel.
- In the roughness channel, use the normal map and add a curvature filter to adjust the contrast as needed.
- For the head, create a new fill layer with a grayscale filter that only takes the red channel, and add the roughness map exported from Unreal (the red-colored one).
- Then, in the Texture Set Settings panel, create a new channel called “Coat Roughness” and assign this to the newly created fill layer.
- Set up the export by creating a texture that combines the regular roughness (created from the normal map) in the green channel, and the Coat Roughness (created from the red texture) in the red channel. This way, you will get a texture containing both pieces of roughness information: the regular texture’s roughness in the green channel, and the makeup roughness for the Metahuman in the red channel.
It’s also important to note that the face texture consists of four other textures that simulate different facial expressions. These should also be combined with the roughness map we created earlier.
After doing all this, import and replace all the textures in the Metahuman materials in Unreal, and everything should work correctly.



