Получаем значение свойства в Blender через контекст

Для определения текущего активного объекта в сцене в Blender мы обычно используем контекст и его свойство context.object (или context.active_object). Точно так же и при работе с интерфейсом мы можем обратиться к контексту, чтобы получить текущее активное свойство – значение поля в Blender UI над которым мы позиционируем курсор или по которому мы сделали клик мышкой. Для этого служит свойство context.property.

Быстрое переименование дата-блоков в соответствии с именами объектов в Blender

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

Назначение индексов точкам, созданным в bmesh

Когда для создания новой геометрии мы работаем через Blender Python API с объектом bmesh, все создаваемые вертексы получают индекс равный -1. Хотя мы можем полноценно взаимодействовать и управлять созданными вертексами, отсутствие у них номерного индекса может несколько затруднить восприятие геометрии и отладку кода.

Блокируем вынос развертки за границы области UV

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

Делаем отменяемый оператор в Blender неотменяемым

Проектируя новые операторы в Blender, мы можем делать их отменяемыми и не отменяемыми, указывая значение “UNDO” в параметре bl_options оператора. Но как быть, если нам нужно исключить из очереди отмены какой-либо уже существующий, например, системный оператор? Это очень просто сделать, переопределив оператор на собственный, без указания “UNDO” в его параметрах.