API

Как программно проверить, зарегистрирован ли установленный в Blender аддон

Для того, чтобы установленный в Blender аддон начал работу его необходимо зарегистрировать – отметить чекбокс рядом с названием аддона в окне User Preferences – Add-ons.

Чтобы узнать, зарегистрован ли нужный аддон, необходимо выполнить следующую команду:

где:

add-on_name – имя файла аддона (без расширения .py) или имя пакета аддона, если он установлен пакетом.

Отладка многофайлового аддона в Blender быстрой переустановкой

Для отладочного запуска разрабатываемого многофайлового аддона в Blender удобно использовать следующую систему. Однако описанный поход обладает одним недостатком: импортируемые в файле __init__.py модули становятся доступны только после выполнения самого файла (после того, как отработает функция register() ). Это означает, что любые обращения к импортируемым модулям до их регистрации вызовут ошибку. В большинстве случаев это не критично, однако вызовет проблемы, если в аддоне например используется наследование от класса, описанного в импортируемом модуле т.к. описание классов в модуле обрабатывается раньше инициализации аддона.

Чтобы получить больше свободы при работе с импортируемыми модулями, для отладки аддона можно использовать другой принцип – не запускать аддон непосредственно из директории разработки, а инсталлировать его в Blender и проверять работу сразу “на чистовую”. Однако ручная переустановка аддона требует выполнения определенного набора действий, что излишне затрудняет подобную отладку. Решить данную проблему можно проводя переустановку аддона для тестов в автоматическом режиме.

Как удалить и установить аддон Blender через python API

Установкой и удалением аддонов Blender можно управлять через python API. Для этого в скрипте нужно использовать следующие команды:

Деактивация аддона:

Удаление аддона:

Редактирование свойств Custom Properties меша через API Blender

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

где:

  • property_name – имя добавляемого свойства
  • property_value – значение, присваиваемое этому свойству

После выполнения команды новое свойство будет доступно в окне Properties панели Object подпанели Custom Properties.

Как и любое свойство объекта, созданное нами свойство обладает рядом параметров, просмотреть которые можно нажав на кнопку Edit. К этим параметрам также можно получить доступ через API.

Создание плавающей панели в аддонах Blender

Для размещения элементов пользовательского интерфейса при разработке аддонов Blender кроме обычных панелей (N/T/Properties) и их подпанелей можно использовать и так называемые плавающие панели – появляющиеся на экране в произвольном месте при нажатии пользователем определенного сочетания клавиш или при совершении им какого-либо действия. Простейшим примером таких панелей является панель, появляющаяся при нажатии клавиши f6 сразу после добавления в сцену какого-либо объекта (shift+a).

API Blender предоставляет разработчикам возможность создавать подобные панели для своих аддонов. Рассмотрим процесс создания плавающей панели на примере всплывающего окна с сообщением типа “Messagebox”.

Активные объекты

Как обращаться через Blender Python API к активным (выделенным) объектам при написании скриптов/аддонов:

  1. Активное окно (в котором происходит действие):

  1. Активная сцена:

  1. Активный (выделенный) меш:

  1. Активный (выделенный) нод материала (в окне NODE_EDITOR):

  1. Активный (выделенный) нод материала (в окне COMPOSITING):

  1. Текущий текст в окне TEXT_EDITOR:

  1. Текущая развертка (UV-Map):

Как получить структуру объекта Blender

При написании скриптов в Blender часто нужно узнать полный список свойств какого-либо объекта для того, чтобы обращаться к ним в дальнейшем через Blender API. Рассмотрим, как можно получить список свойств и методов, доступных для исследуемого объекта.

Подключение к базе данных MySQL из Blender

Хранение информации в удаленной базе данных стало обычной практикой при разработке программных продуктов. Blender – не исключение. При написании скриптов и аддонов, разработчик может столкнуться с необходимостью обращения к базе данных, чтобы получить из нее или записать в нее необходимые данные. MySQL на сегодня является одной из самых распространенных и общедоступных баз данных и хорошо подходит для работы с Blender.

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

Привязка к кадрам

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

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