Как удалить объект через Blender Python API
Для того, чтобы удалить объект из сцены Blender средствами Python API нужно выполнить следующие действия:
Откроем окно текстового редактора “Text Editor”.
Для того, чтобы удалить объект из сцены Blender средствами Python API нужно выполнить следующие действия:
Откроем окно текстового редактора “Text Editor”.
Получить все доступные шейдерные ноды в виде списка можно по их типу.
Для начала, добавим в сцену любой объект, например – куб, создадим для него материал и удалим из него все ноды. Сюда, в этот материал, мы выведем все имеющиеся в Blender ноды шейдеров.
Для добавления оператора в заголовок (header) окна используются функции append и prepend в которых параметром нужно указать функцию отрисовки кнопки вызова оператора.
Например, чтобы добавить в заголовок окна вьюпорта (3D View) кнопку вызова оператора добавления в сцену куба, нужно определить функцию отрисовки оператора:
1 2 |
def cube_add_fnc(self, context): self.layout.operator('mesh.primitive_cube_add', text='', icon='MESH_CUBE') |
и добавить ее в заголовок окна:
1 |
bpy.types.VIEW3D_HT_header.prepend(cube_add_fnc) |
Кнопка с оператором добавления куба в сцену появится в заголовке окна вьюпорта.
Просмотреть список всех функций, добавляющий операторы в заголовок окна можно с помощью свойства _draw_funcs метода draw.
1 2 |
bpy.types.VIEW3D_HT_header.draw._draw_funcs # [<function cube_add_fnc at 0x000000000FC8B8B8>, <function VIEW3D_HT_header.draw at 0x000000000F9C0678>, <function draw_pause at 0x0000000011633A68>] |
Обратите внимание, что свойство _draw_funcs определяется в методе draw только если в него добавлены пользовательские операторы. Если пользовательские операторы не в заголовок не добавлялись, будет выдана ошибка
AttributeError: ‘function’ object has no attribute ‘_draw_funcs’
Для того, чтобы создать и добавить в сцену камеру при помощи Blender Python API нужно:
1. Создать блок данных для камеры.
1 |
camera_data = bpy.data.cameras.new(name='Camera') |
2. Создать объект и связать его с созданным блоком данных.
1 |
camera_object = bpy.data.objects.new('Camera', camera_data) |
3. Поместить созданный объект в сцену.
1 |
bpy.context.scene.collection.objects.link(camera_object) |
Камера будет помещена в текущую сцену в ее главную коллекцию.
Финальный код:
1 2 3 4 5 |
import bpy camera_data = bpy.data.cameras.new(name='Camera') camera_object = bpy.data.objects.new('Camera', camera_data) bpy.context.scene.collection.objects.link(camera_object) |
Blender Python API предоставляет возможность добавления или линковки объектов из других *.blend файлов в сцену при помощи оператора append.
Для того, чтобы добавить (append) объект (например – меш) из другого blend-файла нужно:
Как добавить объект из другого blend-файла в сцену с помощью Blender Python APIRead More »
Для того чтобы зарегистрировать Blender для открытия файлов *.blend двойным кликом нужно:
Как быстро зарегистрировать Blender для открытия файлов blend по двойному кликуRead More »
Проверена работа моих аддонов в текущем релизе Blender 2.90 – все аддоны работают корректно.
Совместимость проверена для аддонов:
Area Switcher
Watermark Plus
Nodetree Source
Qr Signature
Eevee Materials Override
Print To Python Console
Specification Sheet
Accurate Region Border
Parent Plus
B-Presets
M-Cleaner
Wire
Parametrizer
Add-Ons Template Generator
Neoner
Colormatching
TimeMe
Select-Up
Environment Brute Force
BIS