API

Переключение вкладок в окне Properties при помощи Blender Python API

Переключится на нужную вкладку в окне Properties при помощи Blender Python API можно, изменив значение context в нужной рабочей области.

Доступ к свойству face_strength из Blender Python API

Параметр “face_strength” используется в модификаторе Weighted Normal для расчета нормалей. Задавать и изменять его значение можно, вызывая специальный оператор, или напрямую получая и записывая его значения через Blender Python API.

Выключение ноды по ее типу

Если необходимо исключить из расчета шейдера все ноды определенного типа, их можно заглушить (mute). Заглушенные ноды остаются в дереве нодов, сохраняя все связи, но не влияют на итоговый результат.

Динамическое задание Max и Min значений для свойства в Blender Python API

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

Для того, чтобы задать минимальное и максимальное ограничения нужно указать в создаваемом свойстве параметры “min” и “max” и присвоить им нужные ограничивающие значения.

Как связать значение атрибута Geometry Nodes с выходным узлом его нодового дерева

Когда мы строим нодовое дерево Geometry Nodes при помощи скрипта, после построения самого нодового дерева, aтрибутам Geometry Nodes.нужно назначить имена для того, чтобы обращаться к этим атрибутам из других рабочих областей, например, из шейдерного дерева.

get, set, update

set – это, условно говоря, ты наливаешь коньяк в стакан,
а update – это такое – “Вау, в стакане появился коньяк, надо его выпить!”,
а get – это у тебя товарищ спрашивает – “А что в стакане?”, и ты отвечаешь – “Коньяк”. Или – “Чай”.

Как применить нужный модификатор у всех выделенных объектов

Для применения (apply) модификатора объекта с помощью Blender Python API можно воспользоваться оператором bpy.ops.object.modifier_apply. Однако он обрабатывает только один активный объект.

Если нужно применить модификатор, например Subdivision Surface, для нескольких выделенных объектов, нужно сделать каждый из них активным, и после этого вызвать указанный оператор.

Как импортировать в сцену все объекты из внешнего файла при помощи Blender Python API

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

Как получить все возможные значения EnumProperty для передачи в функцию

При передаче в параметры функции значения типа EnumProperty, точно так же, как и при непосредственном присваивании, всегда нужно точно указывать значение из заданного списка, иначе Blender выдаст ошибку.

Например, если при указании иконки для кнопки в параметр icon функции layout.operator задать неверное значение ее идентификатора,

Blender выдаст ошибку:

TypeError: UILayout.operator(): error with keyword argument “icon” – enum “ICON” not found in (‘NONE’, ‘QUESTION’, ‘ERROR’,…)