API

Переопределение списка выбранных объектов для оператора transform.translate

Для того чтобы оператор, вызванный из непредназначенного для него контекста, правильно выполнил свою работу, для него необходимо переопределить контекст при помощи bpy.context.temp_override.() Однако при помощи temp_override можно переопределять не только контекст вызова оператора, но и, например, стек выбранных объектов.

Выделение вертексов по цвету

У вертексов нет свойства “цвет”. Цвета вертексов, задаваемые раскраской в режиме Vertex Paint или любым другим способом, хранятся в атрибуте – отдельном списке значений. Для того чтобы выделить точку по цвету, назначенному ей в атрибуте, нужно связать индексы атрибута с индексом вертекса.

Создание кастомных иконок для инструментов Blender

Базовые иконки, использующихся в UI и операторах, прошиты внутри Blender, и поэтому мы не можем отредактировать или добавить новые иконки без полной перекомпиляции Blender. Иконки для панелей инструментов не привязаны сборке Blender, хранятся в отдельных файлах, и мы можем заменять или создавать и добавлять в Blender новые иконки инструментов.

Получение id для иконок инструментов

Id иконок инструментов соответствуют называниям файлов, в которых они хранятся и их можно получить просто посмотрев в соответствующую папку Blender. Однако идентификаторы иконок можно получить и через Blender Python API при помощи класса ToolSelectPanelHelper.

Создание кастомного инструмента в Blender

В Blender, начиная с версии 2.8x, появилась новая панель инструментов, расположенная в рабочей области 3D вьюпорта с левой стороны. Создавать пользовательские инструменты и добавлять их в эту панель можно при помощи Blender Python API.

Адаптивная метрика

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

Выравнивание текста по центру в ячейках табличного UI

Вывести данные в форме таблицы в пользовательском интерфейсе Blender можно при помощи функций row() и column() элемента layout в классе Panel, от которого мы наследуем классы панелей пользовательского UI.

Создание связей между нодами Blender при помощи Python API

Обычно связь между двумя нодами в Blender создается простым перетаскиванием между нужными входными и выходными точками. Однако при необходимости соединять ноды можно и кодом в Blender Python API.

Удаление слоя видимости при помощи Blender Python API

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

Получение всех возможных значений параметра bl_context для классов панелей UI

При размещении пользовательских панелей UI на нужной вкладке в рабочей области Properties используется параметр bl_context. Указываемое в этом параметре значение отвечает за то, на какой именно вкладке будет размещаться пользовательская панель.