Необходимость разложить каждый объект сцены в свою собственную отдельную коллекцию возникает при оптимизации сцены, или же при создании библиотеки ассетов. Помочь быстро выполнить такую операцию может несложный скрипт.
Создадим отдельные коллекции и разложим по ним выделенные объекты сцены.
Пройдем в цикле по каждому выделенному объекту:
1 |
for obj in bpy.context.selected_objects: |
Для каждого объекта создадим новую коллекцию. Имя коллекции зададим таким же, как имя самого объекта:
1 2 |
name = obj.name col = bpy.data.collections.new(name=name) |
Созданные коллекции будем добавлять в текущую активную коллекцию сцены:
1 |
bpy.context.collection.children.link(col) |
Теперь нам осталось лишь поместить объект в созданную коллекцию:
1 |
col.objects.link(obj) |
Код целиком:
1 2 3 4 5 6 7 |
import bpy for obj in bpy.context.selected_objects: name = obj.name col = bpy.data.collections.new(name=name) bpy.context.collection.children.link(col) col.objects.link(obj) |