API

Получение координат точек Lattice

Модификатор Lattice используется для упрощения процесса деформации высокополигональных мешей при помощи несложных каркасных объектов с небольшим числом точек. Каркас накладывается на меш и связывается с ним, после чего манипулируя точками каркаса можно деформировать сам меш. Для получения координат точек каркаса через Blender Python API, нужно обратиться к свойству каркаса “points”.

Добавление новых пунктов в контекстное меню

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

Загружаем в сцену объекты по именам из внешнего blend-файла

Для того чтобы загрузить в сцену нужные меши по именам из внешнего blend-файла можно использовать оператор wm.append или же воспользоваться механизмом BlendDataLibraries.

Как выделить все объекты в коллекции

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

Как отследить переключение между объектным режимом и режимом редактирования объекта

Отслеживать переключение работы с объектами в режим редактирования и обратно в объектный режим через обычные обработчики в Blender нельзя, в bpy.app.handlers не предусмотрено обработчиков для такого события. Однако это можно отследить через шину передачи сообщений.

Правильное использование foreach_set

foreach_set – это удобная обертка в Blender Python API для быстрого присвоения каждому элементу коллекции bpy_prop_collection нужного значения. Однако при использовании этой функции разработчики скриптов часто сталкиваются с появлением не совсем очевидной ошибки.

Создание пользовательских панелей UI в Blender

При написании аддонов важно размещать элементы UI – кнопки, поля, переключатели и т.д. таким образом, чтобы пользователь легко находил их и имел к ним удобный доступ. Для размещения кастомного UI Blender предоставляет разработчикам аддонов следующие области:

Родительская коллекция

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

Фильтрация значений доступных для выбора в кастомном свойстве UILayout.prop()

При создании кастомных свойств, значения которых пользователь может выбирать из предлагаемого списка, часто бывает нужно ограничить перечень предлагаемых для выбора значений. Сделать предлагаемый список значений короче, убрав из него нежелательные элементы, можно при помощи функции poll.

Вывод текста в хедер окна Blender

При исполнении модальных операторов таких, как вращение (rotation), перемещение (translation) или масштабирование (scale), в хедер текущей рабочей области вьюпорта выводится текст с текущими значениями изменяемых параметров меша. При необходимости в хедер можно выводить любой требуемый текст.