Как рассчитать вращение, как в MotionBuilder - PullRequest
0 голосов
/ 11 апреля 2019

Проблема:

Моя цель - написать код, который вращает корневое соединение bvh, θ градусов вокруг глобальной оси y 3 и сохраняет значения в диапазоне -180 до 180 (как это делает MotionBuilder). Я пытался вращать соединение, используя эйлер, кватернионы, матрицы (учитывая порядок вращения bvh), но я еще не понял, как получить правильные значения. MotionBuilder вычисляет значения x,y,z, поэтому они действительны для файла bvh . Я хотел бы написать код, который вычисляет вращение x,y,z для соединения, как в MotionBuilder.

Пример:

Начальная буква: вращение корня: [x= -169.56, y=15.97, z=39.57]

Initial rotations of root joint (in motionbuilder)

После ручного поворота на 45 градусов: вращение корня: [x=-117.81, y=49.37, z=70.15]

rotations of root joint after rotating around y global axis

глобальная ось Y:

global axes

...