Python

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

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

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

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

Как сделать коллекцию активной

Сделать коллекцию активной в Blender Python API за одно действие нельзя. Свойство bpy.context.collection доступно только для чтения, а bpy.context.view_layer.active_layer_collection является типом LayerCollection, которому нельзя присвоить стандартный тип коллекции Collection. Для того, чтобы назначить активную коллекцию, нужно по исходной коллекции Collection определить коллекцию слоя видимости LayerCollection и уже ее устанавливать в качестве активной.

Как изменить вид курсора в Blender

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

Как сделать текстуру в Blender скрытой

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

Размещение блока выбора изображений на панели пользователя

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

Перевод координат курсора мышки в координаты текстуры

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

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

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

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

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