Blender 3D

Делаем выбранные ребра в меше последовательно активными

Многие операторы в Blender Python API работают отталкиваясь от текущего активного элемента — точки, ребра или полигона. Но очень часто возникает необходимость выполнить такой оператор несколько раз для нескольких выделенных, а не активных, элементов. Чтобы это сделать, нужно последовательно в цикле делать каждый из выделенных элементов активным, и вызывать нужный оператор.

Добавляем HTML ссылку на пользовательскую панель в Blender

Раньше разработчики аддонов и расширений могли указывать ссылку, например, на форму обратной связи или на сайт с дополнительной информацией и документацией только в информации по самому аддону/расширению. Ссылка отображалась в виде кнопки в информационном блоке в рабочей области Preference — Add-ons. С версии Blender 5.2 разработчики сделали возможность размещения HTML-ссылок в любом месте на панелях UI.

Ищем самую верхнюю кость в риге при помощи Blender Python API

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

Выделяем висящую геометрию в Blender

Так называемая «не-манифолд» геометрия в 3D-объектах, это отдельные, висящие в пространстве, точки, ребра или полигоны, а так же отверстия в сплошном меше, выделяется в Blender через пункт меню 3D-вьюпорта: Select — Select All By Trait — Non Manifold. Также эту команду можно выполнить при помощи Blender Python API через оператор bpy.ops.mesh.select_non_manifold(). Если же мы работаем с геометрией через объект BMesh, в нем такого специального оператора не предусмотрено. Однако мы можем выделить такую не-манифолд геометрию самостоятельно.

Создаем полигон через BMesh и назначаем его точкам UV-координаты

Создавая новую геометрию в Blender при помощи Python API очень часто нужно не просто создавать новые полигоны, а еще и сразу присваивать им правильные координаты UV-развертки. При работе через объект BMesh это делается через связку точек геометрии с точками развертки мешлупами.