При необходимости быстро переименовать имя слоя развертки UV Layer сразу у всех выделенных в Blender объектов, можно использовать несложный скрипт.
В общем случае доступ к имени слоя развертки объекта можно получить через его свойство data.uv_layers, в котором хранится список всех слоев развертки объекта.
Так для текущего активного объекта:
1 2 3 |
bpy.context.object.data.uv_layers[:] # [bpy.data.meshes['Suzanne.002'].uv_layers["UVMap"], bpy.data.meshes['Suzanne.002'].uv_layers["UVMap.001"], ...] |
Слои UV развёртки отсортированы в списке в том же порядке, в котором они отображаются в панели интерфейса.
Получить указатель на конкретный слой развертки можно по его имени
1 2 3 |
bpy.context.object.data.uv_layers["UVMap.001"] # bpy.data.meshes['Suzanne.002'].uv_layers["UVMap.001"] |
или по индексу в списке
1 2 3 |
bpy.context.object.data.uv_layers[1] # bpy.data.meshes['Suzanne.002'].uv_layers["UVMap.001"] |
Не забудьте, что индексы начинаются с 0.
Имя слоя развертки доступно через свойство “name”
1 2 3 |
bpy.context.object.data.uv_layers[1].name # 'UVMap.001' |
Для того чтобы переименовать слой развертки, нужно просто присвоить его свойству “name” новое значение.
1 2 3 4 5 |
bpy.context.object.data.uv_layers[1].name = "New UV Layer Name" bpy.context.object.data.uv_layers[1].name # 'New UV Layer Name' |
Для того чтобы проделать это со всеми выделенными объектами, можно пройти по выделенным объектам в цикле и присвоить нужному слою развертки нужное имя.
1 2 3 4 5 |
import bpy for ob in bpy.context.selected_objects: if len(ob.data.uv_layers) >= 2: ob.data.uv_layers[1].name = 'New UV Layer Name' |
Этот простой скрипт назначит каждому второму слою UV развертки новое имя “New UV Layer Name” у всех выделенных объектов.
Дополнительное условие проверяет, что количество слоев UV развертки у текущего объекта не меньше двух, чтобы не выпадать с ошибкой, если второго слоя развертки у какого-то из выбранных объектов не существует.