Python

Скрываем все входы-выходы на нодах в Blender при помощи Python API

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

Соответствие полигонов и треугольников при триангуляции меша в Blender

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

Создание входов и выходов для нода Capture Attribute в Blender Geometry Nodes

Начиная с версии Blender 4.2 нод Capture Attribute функционально изменился. Если раньше у этого нода всегда был только один вход Value и только один выход Attribute, кроме стандартного входа-выхода геометрии, предназначенные для записи атрибутов, то начиная с версии 4.2 количество входов-выходов для записи атрибутов сделано динамическим.

Выделяем ребра на границах меша в Blender

Часто бывает нужно выделить все граничные ребра меша – ребра, которые находятся на внешнем периметре меша, или расположены вокруг незакрытых полигонами областей меша. Такая операция может быть выполнена пользователем из пункта меню Select – Select Loops – Select Boundary Loop.

Привязка пользовательского оператора к инструменту

Мы можем привязывать к кнопкам на панели инструментов (T-Панель) не только системные операторы, но и пользовательские, созданные нами. Принцип подключения в Blender Python API – одинаковый, как для системных, так и для пользовательских операторов.

Создаем кастомное окно в Blender при помощи PySide

Blender Python API предоставляет разработчикам аддонов достаточно широкие возможности в проектировании пользовательского интерфейса UI. Однако иногда встроенных возможностей Blender API может оказаться недостаточно. Создать полностью независимое от встроенного API окно с UI можно, подключив к Blender модуль PySide.

Установка PySide в Blender

PySide – это модуль Python, расширяющий возможности разработки графического интерфейса UI. Лицензия позволяет использовать его как в открытых, так и в закрытых и коммерческих проектах. Модуль PySide не включен в базовый дистрибутив Blender, но его не сложно дополнительно установить.

Получаем значение свойства в Blender через контекст

Для определения текущего активного объекта в сцене в Blender мы обычно используем контекст и его свойство context.object (или context.active_object). Точно так же и при работе с интерфейсом мы можем обратиться к контексту, чтобы получить текущее активное свойство – значение поля в Blender UI над которым мы позиционируем курсор или по которому мы сделали клик мышкой. Для этого служит свойство context.property.

Быстрое переименование дата-блоков в соответствии с именами объектов в Blender

Когда мы присваиваем или изменяем имя объекта в Blender, мы работаем на уровне объекта. Однако у любого объекта есть еще и так называемый дата-блок – указатель на собственно данные объекта, у которого тоже есть имя. Имя дата-блока можно увидеть, кликнув на угловую стрелочку слева от имени объекта в аутлайнере.

Назначение индексов точкам, созданным в bmesh

Когда для создания новой геометрии мы работаем через Blender Python API с объектом bmesh, все создаваемые вертексы получают индекс равный -1. Хотя мы можем полноценно взаимодействовать и управлять созданными вертексами, отсутствие у них номерного индекса может несколько затруднить восприятие геометрии и отладку кода.