Issue: You might have created some objects in Blender to export into Unreal, and let’s say to optimize your scene even further, you are using an atlas. You checked your normals, your UVs, and how your materials look in material mode, and everything looks alright. However, before starting to export, to reduce the draw count, you decided to join all of the objects together by pressing CTRL + J. But the moment you did this, you realized that some of the textures turned grey or the UVs got messed up! Why is that?
Why It Happens and The Solution: This happens because when we join objects, their UV space becomes shared. If any of the objects have a different UV name than the others, they won’t be sharing the same UV space.
To put it differently, let’s say I have three objects, and two of them have the UV name “UVMap,” which is the default UV name in Blender. For some reason, during the modeling/painting process, I changed this UV name on the third object to something else. Now, if I join all three objects together, the objects that share the same UV name will occupy the same UV space, and the third one won’t be in the same UV space since its UV name is different.
So, before joining your objects, make sure that all UV maps have the same name. In any other way, the textures will not share the same UV space when they are assigned to a single object/mesh.