API

Блокировка курсора мышки в границах рабочей области Blender

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

Работа с базой данных PostgreSQL из Blender

Удаленное хранение данных становится все более распространенным. Все популярнее и востребованее становятся различные онлайн-библиотеки моделей, материалов, текстур и ассетов. Для хранения данных в таких библиотеках чаще всего используются базы данных.  PostgreSQL – одна из наиболее продвинутых и функциональных свободных баз данных с открытым исходным кодом, с которой можно соединяться и работать через Blender Python API.

Как изменить размер изображения в Blender

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

Получение расширения выходного файла для рендера анимации через Blender Python API

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

Как вынести кнопку “Purge” в заголовок окна 3D вьюпорта в Blender

Нажатие на кнопку “Purge” чистит текущую открытую сцену – удаляет из нее все неиспользуемые объекты (меши, ноды, материалы, текстуры и т.д.). Однако эта кнопка расположена очень неудобно, в хедере Аутлайнера и видна только в режиме “Orphan Data”. Для быстрого доступа к этой кнопке ее можно вынести в хедер 3D вьюпорта.

Добавление объектов в сцену с учетом вероятности

Если нужно добавить несколько разных объектов в сцену, и при этом, каждый объект должен появляться в сцене с большей или меньшей вероятностью, можно воспользоваться методом генерации случайных наборов “random.choice” из модуля “numpy”.

Динамические описания в операторах

Обычно при создании оператора в Blender Python API его описание задается через параметр “bl_description”. Однако достаточно часто один и тот же оператор выполняет различные действия в разных случаях и единое описание не отражает всех возможностей оператора. В этом случае оператору можно задать динамическое описание.

Поиск пересечений

Одной из частых задач при построении сцены в Blender является контроль пересечения мешей. Определить пересекаются ли два меша между собой можно, используя технологию ограничивающих объемов (Bounding Volume).

Список выделенных в Аутлайнере коллекций

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