Нахождение соседних полигонов
Для того, чтобы получить все полигоны, соседние с нужным, можно воспользоваться модулем bmesh, который предоставляет доступ ко всем данным меша в Blender.
Для того, чтобы получить все полигоны, соседние с нужным, можно воспользоваться модулем bmesh, который предоставляет доступ ко всем данным меша в Blender.
Когда мы строим нодовое дерево Geometry Nodes при помощи скрипта, после построения самого нодового дерева, aтрибутам Geometry Nodes.нужно назначить имена для того, чтобы обращаться к этим атрибутам из других рабочих областей, например, из шейдерного дерева.
Как связать значение атрибута Geometry Nodes с выходным узлом его нодового дереваRead More »
set – это, условно говоря, ты наливаешь коньяк в стакан,
а update – это такое – “Вау, в стакане появился коньяк, надо его выпить!”,
а get – это у тебя товарищ спрашивает – “А что в стакане?”, и ты отвечаешь – “Коньяк”. Или – “Чай”.
Для применения (apply) модификатора объекта с помощью Blender Python API можно воспользоваться оператором bpy.ops.object.modifier_apply. Однако он обрабатывает только один активный объект.
Если нужно применить модификатор, например Subdivision Surface, для нескольких выделенных объектов, нужно сделать каждый из них активным, и после этого вызвать указанный оператор.
Как применить нужный модификатор у всех выделенных объектовRead More »
Для того, чтобы добавить в сцену все объекты из внешнего blend-файла, можно воспользоваться механизмом BlendDataLibraries.
Как импортировать в сцену все объекты из внешнего файла при помощи Blender Python APIRead More »
При передаче в параметры функции значения типа EnumProperty, точно так же, как и при непосредственном присваивании, всегда нужно точно указывать значение из заданного списка, иначе Blender выдаст ошибку.
Например, если при указании иконки для кнопки в параметр icon функции layout.operator задать неверное значение ее идентификатора,
1 2 3 4 5 |
self.layout.operator( "mesh.primitive_cube_add", icon='ICON', text="" ) |
Blender выдаст ошибку:
TypeError: UILayout.operator(): error with keyword argument “icon” – enum “ICON” not found in (‘NONE’, ‘QUESTION’, ‘ERROR’,…)
Как получить все возможные значения EnumProperty для передачи в функциюRead More »
Для того, чтобы создать несколько одинаковых панелей UI с одним и тем же набором полей и кнопок в разных окнах в Blender, проще всего скопировать код панели, заменив в нем параметры, определяющие, в каком именно окне панель будет показана.
Основной недостаток такого метода заключается в избыточном дублировании кода, что может создать сложности в дальнейшем – при редактировании панелей, изменения необходимо вносить в каждую копию кода, вместо того, чтобы поменять его разом для всех панелей.
Создание одинаковых панелей UI в разных окнах Blender без дублирования кодаRead More »
Иногда бывает необходимо зарегистрировать оператор так, чтобы пользователь не мог вызвать его напрямую. Например, если данный оператор предполагается вызывать только из другого оператора после выполнения ряда проверок или дополнительных действий.
При использовании обработчика depsgraph_update выполнение действий с объектами, переданными в обработчик, не дает полного результата. Например, изменяя какие-нибудь свойства объекта обращаясь к нему через object.id, они могут быть изменены не полностью.
Особенность обращения к объектам в depsgraph updateRead More »