2.91

Как найти, в какой коллекции размещен нужный объект

Если нужный объект расположен в скрытой коллекции, в больших сценах бывает сложно его найти.

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

Например для камеры:

Этот код вернет список камер и коллекций в которых они размещены.

Как подключить Python-модуль по абсолютному пути

Модули, используемые в скриптах и аддонах Blender, располагаются или в той же директории, что и сам скрипт или аддон, или в директории установки Blender по пути “версия_blender\python\lib\”. Однако возможно подключить для работы и модуль, расположенный в другом месте на жестком диске.

Для этого нужно подключить модуль по его абсолютному пути.

Расчет Bounding Sphere для объектов

Чаще всего для быстрых упрощенных расчетов с геометрией объектов используются их Bounding Box – минимальный параллелепипед, в который вписан данный объект. Однако. иногда большую точность и простоту в расчетах может дать Bounding Sphere – минимальная сфера, в которую можно вписать объект. И если размеры и расположение Bounding Box доступно в Blender для любого объекта сразу, Bounding Sphere необходимо рассчитывать самостоятельно.

Напишем функцию, которая на основании переданного объекта вернет нам координаты центра и радиус описывающей его Bounding Sphere.

Многострочный текст в панелях интерфейса Blender

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

Для начала создадим простейшую панель в N-панели окне вьюпорта 3D Viewport и разместим на ней текстовый элемент label с нужным текстом.

Аддон Blender: Freeze Transform

Freeze Transform – аддон для графического редактора Blender 3D позволяющий сохранять текущее положение объектов (расположение, поворот и масштаб) и затем быстро возвращать объект в это положение в любой момент времени.

Buy on Gumroad

Вертикальный и горизонтальный углы FOV камеры

Камера в Blender всегда определяется двумя углами поля видимости FOV – вертикальным и горизонтальным.

Один из них всегда задается пользователем через параметр камеры – Feild of View (или комбинации параметров Focal Length и Sensor Width).

Аддон Blender: Swords Constructor

Swords Constructor – аддон для графического редактора Blender 3D, с помощью которого можно легко создавать различные варианты мечей из библиотеки с набором компонентов и быстро менять их конфигурацию.

Buy on Gumroad

Особенности использования матрицы масштаба

Для того, чтобы манипулировать трансформациями объектов при помощи матриц в Blender включен модуль “mathutils” в котором определен класс “Matrix”. С помощью этого класса можно удобно создавать нужные матрицы трансформаций – перемещения, поворота и масштаба.

Для создания матрицы масштабирования используется следующая команда:

Локализация аддонов Blender – через API

Классический способ локализации аддона Blender (перевода аддона на разные языки) удобен тем, что для него требуется всего лишь одно обращение к Blender python API – получение текущей используемой локали. Он хорош своей независимостью, однако Blender не был бы Blender-ом, если бы не предоставил пользователям возможность локализации аддонов через свой API.

Принцип создания мультиязычных аддонов с использованием Blender python API по сути мало отличается от классического. Нам точно так же необходимо создать словарь со всеми вариантами перевода текстовых строк, используемых в нашем аддоне, и в дальнейшем пользоваться им для перевода.

Как получить данные меша с учетом модификаторов

При обращении к геометрии меша – его точкам, ребрам и полигонам, Blender оперирует исходными данными без учета наложенных на объект модификаторов.

Например количество точек для активного объекта, которое можно получить с помощью команды:

будет возвращено без учета наложенного на объект модификатора Subdivision, который подразделяет геометрию меша, увеличивая ее значения.

Как сделать кнопку перехода по url-адресу в интерфейсе Blender

Для того, чтобы выполнить переход по url-адресу из Blender – открыть нужный адрес в браузере, можно воспользоваться системным оператором wm.url_open.

Для демонстрации его работы создадим в N-панели простейшую вкладку с одной кнопкой, по нажатию на которую в браузере будет открываться нужная нам страничка.

Как получить данные сцены через контекст

Если нужно одновременно иметь доступ и к текущему контексту, например для работы с операторами, и к данным сцены, например для работы с мешами, мы обращаемся к двум предопределенным в Blender Python API структурам: “bpy.context” и “bpy.data”.

Например мы можем передать указатели на эти две структуры в функцию:

Однако в структуре контекста “bpy.context” уже есть ссылка с именем “blend_data”, которая указывает на данные сцены. С помощью этого указателя можно обращаться к данным сцены, не передавая его отдельно в явном виде.

Как снять выделение с точек меша

Для меша в Blender можно снимать и устанавливать выделение точек через свойство “select” для каждой точки.

Однако для снятия выделения с точки недостаточно установить значение свойства “select” точки равным “False”.

Локализация аддонов Blender – классическая

Если вы хотите, чтобы ваш аддон был доступен для всех пользователей Blender по всему миру, вам обязательно нужно предусмотреть его локализацию – перевод интерфейса на разные языки.

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

Удаление коллекций через Blender Python API

Удаление коллекций в Blender осуществляется через список коллекций в bpy.data.

Для того, чтобы удалить коллекцию нужно вызвать метод “remove” для списка коллекций сцены, указав в параметрах коллекцию, которую нужно удалить:

Как назначить на объект констрейнт при помощи Blender Python API

Назначение ограничителей (констрейнтов) на объекты производится через свойство объекта “constraints”.

Для того, чтобы назначить ограничитель на текущий активный объект, нужно создать новый констрейнт в списке “constraints” объекта, указав в параметрах его тип:

Аддон Blender “EEVEE Materials Override” v. 1.3.0.

Обновление аддона “EEVEE Materials Override” до версии 1.3.0.

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

Gumroad

Снятие выделения однократным нажатием клавиши А

Начиная с версии 2.80 в Blender функция деселекта – полного снятия выделения со всех объектов или геометрии, была переключена с однократного нажатия клавиши “a” на двойное “a-a” или комбинацию “alt+a”. Для того, чтобы вернуть функцию снятия выделения к однократному нажатию нужно отредактировать настройки операторов выделения. Или же, начиная с версии 2.81 в настройках клавиатурных сочетаний для этого предусмотрен специальный чекбокс.

  • Откройте окно “Preferences”
  • Перейдите в раздел “KeyMap”
  • Включите чекбокс “Select All Toggles” в подразделе “Preferences”
  • Сохраните настройки нажатием на кнопку “Save Preferences” в правом верхнем углу окна.

Теперь выделение всех объектов/геометрии и снятие выделения будет выполняться по однократному нажатию клавиши “a”.