API

Удаление слоя видимости при помощи Blender Python API

Для того чтобы удалить имеющийся слой видимости View Layer при помощи Blender Python API, нужно вызывать метод remove() для списка всех слоев видимости текущей сцены.

Получение всех возможных значений параметра bl_context для классов панелей UI

При размещении пользовательских панелей UI на нужной вкладке в рабочей области Properties используется параметр bl_context. Указываемое в этом параметре значение отвечает за то, на какой именно вкладке будет размещаться пользовательская панель.

Переопределение контекста в Blender версии 3.2 и более поздних

В Blender Python API определенные операторы можно вызывать только в той рабочей области, для которой они предназначены. Если вызвать такой оператор в другой рабочей области, он не будет выполнен или же Blender выдаст ошибку. Для того чтобы вызвать такой оператор из непредназначенной для него области, нужно переопределить для него контекст.

Выбираем все объекты с нужным модификатором в Blender

Для того чтобы выбрать все объекты в Blender, на которые наложен нужный модификатор при помощи Blender Python API, нужно пробежать в цикле по всем объектам сцены, проверить наличие нужного модификатора и установить флаг выборки объекта равным True.

Быстрое применение к объекту всех его модификаторов

Применить к объекту наложенные на него модификаторы можно последовательно проходя по списку модификаторов и вызывая оператор bpy.ops.object.modifier_apply() для применения каждого из них. Однако можно воспользоваться тем, что в depsgraph уже есть полностью просчитанные данные меша с уже примененными модификаторами и просто перестроить объект по этим данным.

Как проверить поддерживается ли в Blender нужный тип изображений

Открыть изображение/текстуру в Blender при помощи Python API можно вызывая оператор bpy.opa.image.open(…), или же напрямую через коллекцию изображений bpy.data.images.load(…).

Как выбрать слой UV через Blender Python API

Управлять доступом к слоям развертки объекта при помощи Blender Python API можно через список слоев разверток uv_layers. Обращаясь к любому слою из списка мы можем сделать его активным как для выбора, так и для рендера.

Получаем веса вертексов по вертекс-группам

Для того чтобы получить веса вертексов меша, как они распределяются по его вертекс-группам, при помощи Blender Python API нужно соотнести индекс вертекс-группы с индексом группы текущего вертекса.

Быстрое переключение (тогглинг) шейдинга flat – smooth

Для того чтобы быстро переключaть шейдинг геометрии из плоского режима flat в сглаженный режим smooth и обратно, нужно соответствующим образом менять значение свойства “smooth” для каждого полигона меша.

Видимость объекта во вьюпорте

В ряде случаев бывает необходимо определить, виден ли в данный момент определенный объект в окне 3D вьюпорта в Blender, или – нет. В общем случае определить видимость объекта во вьюпорте можно при помощи функции location_3d_to_region_2d из модуля view3d_utils.