3.0

Группировка данных в подпанелях

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

Как получить доступ к кастомному атрибуту, созданному в Geometry Nodes

Механизм Geometry Nodes в Blender позволяет легко создавать для объектов дополнительные кастомные атрибуты и помещать в них нужные данные. Однако прямого доступа к таким атрибутам нет.

Как сделать копию объекта при помощи Blender Python API

Создать копию объекта в сцене можно двумя путями:

  1. Вызывая оператор дублирования объекта,
  2. Используя метод copy() самого объекта.

Как вынести на пользовательскую панель значения со входов Geometry Nodes

Входные параметры в Blender Geometry Nodes автоматически выносятся на панель модификатора “Geometry Nodes” в окне Properties на вкладке модификатора. Однако далеко не всегда нужная вкладка открыта, и не всегда удобно переключаться на нее для их регулировки. Для быстрого доступа к входным параметрам Geometry Nodes их можно продублировать в пользовательской панели в окне 3D Viewport.

Хоткей для выбора активной камеры

В большой сцене бывает сложно быстро найти и выбрать камеру, с которой осуществляется рендер, среди множества других объектов. Однако мы можем создать оператор и назначить его вызов на хоткей, чтобы находить активную камеру одним нажатием кнопки.

Оператор для скрытия объекта во всех сценах

Для того, чтобы скрыть объект в окне 3D Viewport только для текущей сцены мы все пользуемся оператором object.hide_view_set, вызов которого равносилен нажатию на иконку с глазом в аутлайнере. Однако для того, чтобы скрыть объект во вьюпорте сразу для всех сцен проекта – нажатие на иконку с изображением монитора, специального оператора не предусмотрено. Сделаем его сами.

Как вынести динамически заданное свойство объекта на пользовательскую панель

В Blender API рекомендуется задавать дополнительные свойства для объектов через классы, предопределенные в bpy.props. Например для добавления целочисленного свойства используется класс bpy.props.IntProperty. Такие свойства удобны, хорошо работают и легко выносятся на панели пользовательского интерфейса.

В чем разница между “глазом” и “монитором” при скрытии объектов

Для того, чтобы скрыть объекты в окне 3D Viewport можно нажать иконку с “глазом” в аутлайнере напротив нужного объекта (равнозначно нажатию клавиши “H” на клавиатуре), а можно нажать иконку с изображением монитора. И в том и в другом случае объект будет скрыт.

В чем же тогда разница между этими двумя вариантами?

На самом деле все очень просто:

Нажатие на иконку с “глазом” скрывает объекты только в текущей активной сцене blend-файла.

Нажатие на кнопку с “монитором” скрывает объекты сразу во всех сценах blend-файла.

Использование UV координат для работы с геометрией

При помощи UV-координат развертки можно манипулировать не только материалами, но и самой геометрией меша. Связать UV-координаты с геометрией в Blender можно при помощи “Geometry Nodes”.

Наложение материалов по UV

Координаты UV-развертки можно использовать для смешивания материалов на меше напрямую. Это может пригодиться если, например, форма меша цилиндрическая или замкнутая, т.е. границы развертки соответствуют границам меша.

Displacement на Geometry Nodes

Разберем на примере, как работает дисплейс (displacement) – выдавливание неровностей, в Blender на нодах геометрии “Geometry Nodes”.

Добавим в сцену цилиндр (диаметр 0.1, без верхнего и нижнего закрывающих полигонов): shift+a – Mesh – Cylinder.

Перейдем в режим редактирования (tab) и добавим промежуточных ребер так, чтобы сетка получилась равномерной: ctrl+r – 100 – Enter.