Python

Как повернуть объект в Blender Python API

Для управления поворотом объекта служит свойство “rotation_euler”. Оно представляет собой список из трех значений, каждое из которых соответствует повороту вокруг координатных осей в радианах. В rotation_euler[0] хранится поворот вокруг оси X, в rotation_euler[1] – вокруг оси Y и в rotation_euler[2] – вокруг оси Z. Для того, чтобы повернуть объект вдоль нужной оси на нужный угол, нужно задать значение поворота в радианах в соответствующем нужной оси поле rotation_euler.

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

math.radians удобно использовать для преобразования угла из градусов в радианы.

Как переключать flat – smooth шейдинг через Blender Python API

Режим отображения flat/smoot моделей регулируется через свойство “use_smooth” для каждого полигона модели.

Для того, чтобы включить режим сглаженного (smooth) отображения полигонов, нужно для каждого полигона установить свойство “use_smooth” равным True.

Для активного объекта:

Чтобы установить режим отображения флэт (flat) – для каждого полигона нужно установить “use_smooth” равным False.

Чтобы изменение отобразилось на экране, нужно вызвать обновление данных объекта.

Переключение на вид из камеры через Python API

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

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

Преобразование между системами координат

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

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

Ссылки на объекты ломаются при использовании отмены ctrl+z

В линейке Blender 2.8x система отмены операций undo/redo (ctrl+z / ctrl+shift+z) была полностью переделана по сравнению с линейкой 2.7x. Одним из результатов такого изменения API является то, что при выполнении операции отмены все объекты в сцене перестраиваются заново – текущий объект уничтожается, а вместо него создается совершенно новый объект. Ссылки, которые указывали на старый объект, до выполнения операции отмены, после нее указывают на невалидный объект с которым больше нельзя работать.

Куда пропало автозавершение кода в python-консоли Blender 2.82

В Blender 2.81 и более ранних версиях в python-консоли можно было просмотреть возможные варианты завершения набираемого кода, нажав “ctrl + пробел”. В Blender 2.82 эта возможность исчезла.

На самом деле этот функционал в 2.82 не удален, его просто перенесли на нажатие клавиши “tab“.

Выравнивание элементов пользовательского интерфейса по колонкам

Часто элементы интерфейса, размещаемые в пользовательских панелях, не соответствуют друг другу по размерам, в результате чего общая компоновка панели выглядит не красиво. В качестве наглядного примера создадим пользовательскую панель и разместим на ней кнопку оператора и текстовое поле ввода.

Выровнять размеры кнопки и поля ввода здесь напрашивается само собой.

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

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