When joining several objects into one, there is one feature in Blender – if the names of the UV-map of the objects are different, in the new, joined object, each UV-map will be placed on a separate layer. In order for all the UV-maps in the joined object to also be combined into one, they must all have the same name.
We can quickly rename the UV-maps for all selected objects in Blender using a simple script.
Walk through all the selected objects in the scene in a loop:
|
1 |
for obj in bpy.context.selected_objects: |
We can get the name of the first object’s UV-map as follows:
|
1 2 3 4 5 6 |
if obj.data.uv_layers: print(obj.data.uv_layers[0].name) # Cube UVMap # ICO Shp UVMap # Suzanne UV |
After checking if the UV-map for the current object exists.
Since all the UV-maps have different names, when merging the selected objects, we will end up with three UV layers with separate UV maps.
To merge the object’s UV maps into one, we have to set them one common name, for example, the standard “UVMap”.
|
1 2 |
if obj.data.uv_layers: obj.data.uv_layers[0].name = 'UVMap' |
Full script code:
|
1 2 3 |
for obj in bpy.context.selected_objects: if obj.data.uv_layers: obj.data.uv_layers[0].name = 'UVMap' |
After executing this script, we can safely join objects, and as a result we will get a single UV-map for the final combined object.

.blend file on Patreon