Для того чтобы понять что же произошло с параллелепипедом в …

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

1.  Выделите второй параллелепипед (т.е. объект Box02).

                       2.  Разверните иерархию треков в окне Track View вплоть до треков анимации вращения объекта Box02.

                       3.  Щелкните на кнопке Select and Rotate (Выделить и повернуть) и выберите вариант Gimbal (Рамочная система координат) из раскрывающегося списка Reference Coordinate System (Система опорных координат) на основной панели инструментов 3ds Max. Гизмо этой системы координат похож на гизмо локальной системы координат, но это сходство заканчивается, как только начинается вращение объекта.

                       4.  Поверните второй параллелепипед в любом видовом окне на 45° вокруг его оси X.

                       5.  Затем поверните второй параллелепипед на 45° вокруг его оси Y.

На треках анимации вращения данного объекта в окне Track View появятся значения 45, 45 и 0. Как видите, второй параллелепипед повернулся иначе, чем первый параллелепипед в локальной системе координат.

При вращении объектов в любой системе координат значения из текущей системы координат преобразуются внутри 3ds Max в значения рамочной системы координат для отображения на треках X Rotation, Y Rotation и Z Rotation, причем это делается совершенно незаметно для пользователя. А судить об этом можно лишь по соответствующим значениям на треках в окне Track View.

                       6.  Перейдите от локальной к рамочной системе координат и обратно, повернув в каждой из них оба параллелепипеда. Об отличиях во вращении в обоих системах координат можно судить по их гизмо. Так, в рамочной системе координат происходит следующее.

                                            Вслед за вращением вокруг оси Y поворачивается также гизмо оси X.

                                            Вслед за вращением вокруг оси Z поворачиваются также гизмо осей X и Y.

Объясняется это тем, что эйлерово вращение вокруг осей X, Y, Z должно выполняться поочередно и в определенном порядке. По умолчанию контроллер Euler XYZ выполняет соответствующие расчеты для вращения в следующем порядке: XYZ.

Из приведенного выше упражнения следует, что единственный способ точного расчета вращения вокруг нескольких осей состоит в использовании конкретных значений, представленных в рамочной системе координат. Вращение вокруг только одной оси (например, вокруг локальной оси Z параллелепипеда) можно достаточно точно выполнить в локальной системе координат. Но для вращения вокруг нескольких осей необходимо выбрать рамочную систему координат, чтобы получить точные значения углов вращения вокруг осей X, Y и Z.

Блокировка рамки

Из предыдущих упражнений напрашивается вывод, что для представления процесса вращения в MAXScript следует выбрать рамочную систему координат. Однако у этой системы координат имеется один существенный недостаток, который иллюстрирует следующее упражнение.

                       1.  Выберите вариант Gimbal из раскрывающегося списка Reference Coordinate System на основной панели инструментов 3ds Max.

                       2.  Выделите объект в любом видовом окне и поворачивайте его вокруг оси Y до тех пор, пока гизмо оси X не совпадет с гизмо оси Z.

Итак, существенный недостаток рамочной системы координат состоит в том, что при вращении вокруг оси Y на 90° положение гизмо осей X и Z совпадает, а следовательно, они обозначают одну и ту же ось вращения. Такая ситуация называется блокировкой рамки и в значительной степени ограничивает выбор видов вращения, которые можно выполнять.

Подобного осложнения можно в какой-то степени избежать, изменив порядок следования осей вращения. Так, если заранее известно, что объект должен, скорее всего, повернуться на 90° вокруг оси Y, порядок следования осей можно изменить на следующий: YZX или YXZ, чтобы первым выполнялось вращение вокруг оси Y. Это позволяет исключить блокировку рамки при вращении объекта на 90° вокруг оси Y. Но если затем повернуть объект на 90° вокруг оси Z или X, блокировки рамки избежать не удастся.

Это основная причина, ограничивающая применение рамочной системы координат для представления процесса вращения.

Понравилась статья? Поделиться с друзьями: