Выключение ноды по ее типу
Если необходимо исключить из расчета шейдера все ноды определенного типа, их можно заглушить (mute). Заглушенные ноды остаются в дереве нодов, сохраняя все связи, но не влияют на итоговый результат.
Если необходимо исключить из расчета шейдера все ноды определенного типа, их можно заглушить (mute). Заглушенные ноды остаются в дереве нодов, сохраняя все связи, но не влияют на итоговый результат.
Для кастомных свойств в Blender Python API можно задать определенные максимальное и минимальное значения. В этом случае пользователь, вводя нужное значение в поле, не сможет указать для него величину, выходящую за указанные пределы.
Для того, чтобы задать минимальное и максимальное ограничения нужно указать в создаваемом свойстве параметры “min” и “max” и присвоить им нужные ограничивающие значения.
Динамическое задание Max и Min значений для свойства в Blender Python APIRead More »
Для того, чтобы получить все полигоны, соседние с нужным, можно воспользоваться модулем 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 »
Иногда бывает необходимо зарегистрировать оператор так, чтобы пользователь не мог вызвать его напрямую. Например, если данный оператор предполагается вызывать только из другого оператора после выполнения ряда проверок или дополнительных действий.