Python

Операторы с возможностью отмены (Ctrl + z) и без нее

Проектируя операторы, чаще всего мы предусматриваем возможность отмены выполненного ими действия – если после исполнения оператора пользователь нажмет комбинацию клавиш Ctrl + z, все воздействие нашего оператора на сцену должно быть отменено. Однако в некоторых случаях может понадобиться определить оператор, который будет игнорироваться при попытке отмены пользователем его действий. API в Blender предоставляет нам возможность создавать оба вида операторов, просто указывая возможность или запрет отмены в их параметрах.

Кастомные иконки в EnumProperty в Blender

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

Онлайн расширения Blender

В Blender версии 4.1 и ниже, все аддоны устанавливались локально. Чтобы установить аддон, нужно было скачать его на компьютер, открыть рабочую область Preferences, перейти на вкладку Add-ons и инсталлировались аддон нажав на кнопку Install. Начиная с версии 4.2 открылись Extensions – для установки стали доступны аддоны, размещенные онлайн.

Вынос регуляторов Max/Min сокетов в Geometry Nodes на пользовательскую панель

Для того чтобы в Blender вынести значение сокета на панель модификатора Geometry Nodes нужно просто создать линк и соединить нужный сокет на нужном ноде с пустым сокетом на ноде Group Input. После этого в панели модификатора появляется поле, в котором можно менять значение нужного сокета. Далее это поле мы можем вынести на пользовательскую панель, обратившись к нему как к динамическому свойству.

Изменение порядка сокетов в нодовых группах Geometry Nodes

Изменить порядок сокетов в нодовой группе вручную можно простым перетаскиванием – в N-панели во вкладке Group – Interface зажимаем нужный сокет и перетягиваем его мышкой на нужное место. Переместить сокет в групповом ноде на новое место при помощи Blender Python API можно, используя функцию move объекта interface.

Заголовки для нодов Reroute в Blender Geometry Nodes

А вы знаете, что для нодов Reroute в Blender Geometry Nodes можно задавать собственные текстовые заголовки? Так как ноды Reroute чаще всего используются для упрощения и улучшения читаемости нодовых деревьев в Geometry Nodes, помечать такие ноды заголовком с короткой информационной надписью может оказаться очень удобным – не нужно будет запоминать или каждый раз прокручивать дерево нод, чтобы узнать, откуда на данный Rerout идет линк.

Быстрая установка точки, в которую направлены источники освещения в сцене

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

Быстрое перемещение модификатора Auto Smooth в конец списка модификаторов

С версии 4.1 оператор сглаживания нормалей в Blender был полностью заменен на модификатор, реализованный на механизме Geometry Nodes. Это удобно для решения ряда проблем, однако если модификатор Auto Smooth располагается в стеке модификаторов не на последнем месте, до других модификаторов, изменяющих геометрию меша, это приводит к появлению артефактов. Чтобы быстро переместить модификатор в конец стека, можно использовать несложный скрипт.

Работа с Mean Bevel Weight ребрами через Blender Python API

Для взаимодействия с модификатором Bevel, создающим фаску на заданных ребрах, каждому из выбранных ребер должен быть задан определенный числовой вес в пределах от 0.0 до 1.0. В ручном режиме вес для фаски задается в N-панели на вкладке Item – Edges Data – Mean Bevel Weight. Так же этот вес можно считывать и задавать через Blender Python API.

Работа с sharp ребрами через Blender Python API

В Blender мы можем пометить ребра меша как sharp – чтобы они оставались острыми и не сглаживались даже при включении smooth-шейдинга. В ручную это можно сделать выделив нужные ребра и выбрав в главном меню Edge – Mark Sharp. Ребра можно пометить как sharp так же и через Blender Python API.