Blender 3D

Как переместить кость арматуры на место кости другой арматуры

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

Для этого нужно выполнить следующий код:

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

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

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

Особенности инвертирования матриц

Попытка инвертировать матрицу преобразования при помощи метода inverted() может привести к ошибке, если, например, на объект, для которого вычисляется исходная матрица оказывает влияние какой-нибудь ограничитель.

В этом случае Blender сгенерирует ошибку вида:

ValueError: Matrix.invert(ed): matrix does not have an inverse

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

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

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

Аддон Blender: Freeze Transform

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