API

Оператор для переключения чекбоксов

Оператор wm.context_toggle предназначен для переключения состояния чекбоксов в интерфейсе Blender. С его помощью можно настроить быстрое переключение любых чекбоксов в любых окнах и панелях.

Для примера настроим включение/выключение отображения сетки (wireframe) во вьюпорте.

Как найти, в какой коллекции размещен нужный объект

Если нужный объект расположен в скрытой коллекции, в больших сценах бывает сложно его найти.

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

Например для камеры:

Этот код вернет список камер и коллекций в которых они размещены.

Переопределение контекста

Некоторые операторы в Blender можно вызывать только в той рабочей области, для которой они предназначены.

Если вызывать, например, оператор, предназначенный только для работы в области 3D вьюпорта в Python-консоли, оператор или просто не выполнится:

или вернет сообщение о неверном контексте:

Однако выполнить операторы в “не родной” рабочей области все же можно. Для этого в любой оператор можно передать первым неявным параметром указание на контекст рабочей области, в которой должен быть выполнен этот оператор. Этот параметр обычно называют “переопределенный контекст”.

Данный метод подходит для Blender версии 3.1 и более ранних. Для версии Blender 3.2 и более поздних необходимо использовать метод temp_override().

Как сменить текущий инструмент при помощи Blender Python API

Для того, чтобы переключить активный инструмент из Т-панели в окне 3D вьюпорта нужно вызвать соответствующий оператор в параметре “name” которого нужно передать идентификатор idname требуемого инструмента.

Например для того, чтобы включить выделение окружностью Select Circle нужно вызвать оператор:

Как подключить Python-модуль по абсолютному пути

Модули, используемые в скриптах и аддонах Blender, располагаются или в той же директории, что и сам скрипт или аддон, или в директории установки Blender по пути “версия_blender\python\lib\”. Однако возможно подключить для работы и модуль, расположенный в другом месте на жестком диске.

Для этого нужно подключить модуль по его абсолютному пути.

Как привязать меш к кости с сохранением текущего положения

Если требуется привязать меш к кости арматуры так, чтобы меш сохранил свое текущее положение, при помощи Blender Python API, нужно выполнить следующие действия:

Как переместить кость арматуры на место кости другой арматуры

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

Для этого нужно выполнить следующий код: