2,928 views

Автоматическая склейка дублированных материалов в Blender

04.03.2021

После повторного импорта объектов Blender создает дубликаты материалов и присваивает им имена оканчивающиеся на .001, .002 и т.д.

Так например, если объект импортированный повторно имел материал с именем My_Material, то ему будет назначен новый материал с именем My_Material.001.

Если новому объекту необходимо вернуть оригинал материала My_Material вместо дубликата, можно сделать эту в ручную, переназначив материал.

Однако это может быть весьма трудоемкий процесс, когда таких дубликатов в сцене много. В таком случае можно воспользоваться небольшим скриптом.

import bpy
mats = bpy.data.materials

for obj in bpy.data.objects:
    for slt in obj.material_slots:
        part = slt.name.rpartition('.')
        if part[2].isnumeric() and part[0] in mats:
            slt.material = mats.get(part[0])

Данный скрипт переназначит всем объектам сцены оригинальные материалы вместо дублированных.

Чтобы выполнить скрипт переключитесь в Text Editor, создайте новый скрипт (кнопка New), скопируйте туда код, и выполните его (кнопка Run Script).

5 2 votes
Article Rating
Subscribe
Notify of
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x