API

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

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

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

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

Фильтрация значений доступных для выбора в кастомном свойстве 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, размещается по умолчанию в хедере рабочей области. При необходимости его можно так же разместить и в пользовательской панели.

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

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