logo search
3ds Max Лабораторные работы

Анимация зависимостей

Задание 5

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

  1. Создайте новую сцену.

  2. С помощью сплайна Star в окне проекции Top создайте шестеренку с параметрами: Radius 1=50; Radius 2=40; Points=40; Fillet Radius 1=3; Fillet Radius 2=3.

  3. Создайте вторую шестеренку с параметрами Radius 1=20; Radius 2=10; Points=10; Fillet Radius 1=3; Fillet Radius 2=3.

  4. Создайте третью шестеренку с параметрами Radius 1=30; Radius 2=40; Points=40; Fillet Radius 1=3; Fillet Radius 2=3.

  5. Разместите шестеренки по оси Х.

  6. Примените к сплайнам модификатор Extrude с параметром Amount=4. Должно получиться аналогичное изображение.

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

  1. Выделите большую шестеренку. Выполните команду Graph Editors \ Track ViewCurve Editor.

  2. Найдите в левой части открывшегося окна Track View — Curve Editor нужный объект (в нашем случае это StarO1 — именно так называется большая шестеренка).

  3. Если нужный объект активизирован в окне проекции, то в левой части редактора кривых вы увидите развернутый список доступных для анимации параметров, если нет, то щелкните на кружочке с плюсом внутри, расположенном рядом с названием объекта, чтобы развернуть список. В списке доступных для анимации параметров выберите контроллер поворота по оси Z (если вы строили объекты в окне проекции Тор).

  4. После этого щелкните на кнопке Add Keys на панели инструментов окна Track View — Curve Editor. Теперь можно добавлять ключевые кадры и создавать первую часть анимации.

  1. В правой части редактора кривых щелкните на пунктирной линии, чтобы создать первый ключевой кадр функциональной кривой. Затем немного сместитесь вправо и снова щелкните, чтобы создать еще один кадр. В данном случае их положение на функциональной кривой не имеет значения, так как оно будет скорректировано вместе со значением величины. Чтобы сделать это, щелкните на кнопке Move Keys , расположенной на панели инструментов окна Track View — Curve Editor, а затем на первой точке функциональной кривой, сделав ее активной. После этого введите в поля диалогового окна, вызываемого щелчком правой кнопки мыши, значение 0 в первое поле, определяющее номер кадра, и значение 0 во второе поле, задающее величину поворота. Таким образом, вы создали ключевой кадр в начале анимации, где еще ничего не происходит.

  2. Выберите вторую точку на функциональной кривой и задайте в поле номера кадра значение, равное 50 (так получится половина временной шкалы, если вы не меняли установки временной шкалы, заданные по умолчанию), и 360 для угла поворота. Это означает, что за 50 кадров шестеренка сделает полный оборот вокруг своей оси. При желании можете поэкспериментировать со значениями времени и величины угла поворота для второй точки. Просмотрите анимацию в видовом окне Perspective.

  3. После создания и настройки положения ключей на функциональной кривой нужно сделать так, чтобы вращение шестеренки в начале и в конце анимационного ролика происходило без ускорения и замедления. Для этого выделите два созданных ключа анимации и щелкните на кнопке Set Tangents to Linear. В результате линия между ключами станет прямой.

  1. Если сейчас запустить воспроизведение анимации, то вы увидите, что первая шестеренка в диапазоне временной шкалы от 1 до 50 кадра делает полный оборот и останавливается. Чтобы этого не происходило, нужно щелкнуть на кнопке Parameter Curve Out-of-Range Types панели инструментов окна Track View — Curve Editor. В появившемся одноименном окне можно задать, каким образом будет выполняться анимация параметра, соответствующего выделенному треку, за пределами заданного диапазона кадров. Здесь необходимо выбрать значение Relative Repeat, при котором все значения параметра смещаются на величину, соответствующую концу диапазона. Иначе говоря, шестеренка будет непрерывно вращаться против часовой стрелки.

  2. Если вы, выравнивая относительное положение зубьев шестеренок, поворачивали их вокруг своей оси, то необходимо заморозить трансформацию вращения для этих шестеренок. В противном случае при использовании выражений шестеренки вернутся в свое первоначальное значение, то есть в 0. Чтобы это сделать, удерживая клавишу Alt, щелкните правой кнопкой мыши на шестеренке и в появившемся контекстном меню выберите Freeze Rotation.

  3. Выделите большую шестеренку (которой уже задано вращение). Выполните команду Animation \ Wire Parameters \ Parameter Wire Dialog, после чего откроется диалоговое окно Parameter Wiring. В левой части этого окна должен быть выделен первый объект, то есть уже анимированная шестеренка с подсвеченным контроллером анимации вращения по оси Z. Если это не так, выделите его. В правой части диалогового окна нужно выбрать второй объект (Star02). Для этой шестеренки вы также должны выделить контроллер анимации вращения по оси Z. После этого щелкните на кнопке со стрелкой вправо, под которой написано control direction (Направление контроля). Таким образом мы задали, что первая шестеренка будет управлять вращением второй.

  4. Измените выражение, расположенное в правом нижнем поле таким образом, чтобы получилось

-Z_Rotation*4, и нажмите кнопку Connect. После этого контроллер поворота по оси Z в левом окне окрасится в зеленый цвет, указывая на то, что он выступает в роли управляющего, а в правом окне — в красный цвет, что говорит о том, что этим контроллером управляют.

Разберемся в том, что означает добавленная запись. Минус говорит о том, что вращение ведомой шестеренки будет происходить в направлении, противоположном ведущей. Цифра 4 — это число, означающее, во сколько раз у первой шестеренки больше зубьев, чем у второй (40 / 10 = 4), то есть вращение второй шестеренки должно происходить в четыре раза быстрее, чтобы синхронизировать зацепление зубьев. То же самое можно получить, рассчитав угол поворота для каждого зубца у первой и второй шестеренок, где у второй угол поворота получится в четыре раза больше (9 и 36° соответственно).

  1. Если сейчас воспроизвести анимацию, щелкнув на кнопке Play Animation, расположенной в правом нижнем углу программы, то вы увидите, как вращаются первые две шестеренки.

  2. Для третьей шестеренки последовательность действий та же, что и для второй, с той лишь разницей, что в роли ведущей теперь будет выступать вторая шестеренка, а выражение, используемое для передачи движения, будет таким: -Z_Rotation/2. В данном случае делим на 2, так как третья шестеренка имеет в два раза больше зубьев, чем вторая, соответственно, будет вращаться в два раза медленнее.

  3. Воспроизведите анимацию. Сохраните выполненную сцену в файле Шестеренки.max