3dsMax. Урок №1. Прямая кинематика

Июль 5, 2010 в категории 3dsMax. Анимация

Урок адаптирован под версию 3dsMax 2009.

1. Объекты могут быть объединены в группы, и тогда они являются подчиненными этой группе и равноправными между собой. Другой способ объединения объектов – это создание иерархий, или иерархических связей. Иерархия – это набор объектов со связями между ними по принципу «предок-потомок» (другое название таких связей: «родительский объект – дочерний объект»). Предок контролирует поведение одного или более потомков. В то же время предки могут контролироваться другими предками, имеющими более высокий уровень иерархии. Потомок, контролируемый некоторым предком, может оказаться предком для других потомков, находящихся по иерархии ниже него. У каждого предка может быть несколько потомков, однако каждый потомок имеет только одного предка. Самый верхний объект иерархии управляет всеми объектами иерархии и называется корневым.

Связывание следует производить от потомкам к предкам, т.е. от младших в иерархии объектов к старшим. Для связывания объектов вначале активизируется инструмент Select and Link (Выделить и связать) Select and Link (Выделить и связать). Затем выделяется самый младший в предполагаемой структуре объект и при нажатой левой кнопке мыши указывается объект, который должен стать предком. Затем выделяется второй снизу в структуре объект, и в отношении него выполняется та же самая операция, и так до тех пор, пока не будет установлена связь с корневым объектом. Чтобы разорвать связь, следует выделить объект, связь которого с вышестоящим в иерархии объектом должна быть уничтожена, и щелкнуть на кнопке Unlink Selection (Разорвать связь выделенных объектов) Unlink Selection (Разорвать связь выделенных объектов).

2. Для примера рассмотрим модель настольной лампы, представленной на рис.  1.1  (файл Table_lamp1.max).

Прямая кинематика - 3d уроки и упражнения

Рис. 1.1

В этом примере присутствуют две группы — Support и Reflector, однако иерархические связи не установлены. Включите инструмент Select and Link (Выделить и связать) Select and Link (Выделить и связать). Щелкните  курсором на объекте Reflector, который должен стать самым младшим объектом иерархической цепочки, и, удерживая мышку нажатой, перетащите курсор к объекту Lever03. При этом за курсором будет тянуться пунктирная линия. Отпустите кнопку мыши. Связь меду данными объектами установлена. Снова щелкните над объектом Lever03 и перетащите мышку к объекту

. Повторяйте эти действия, чтобы установить иерархические связи, как показано на рис. 1.2   (файл Table_lamp2.max).

Прямая кинематика - 3d уроки и упражнения

Рис. 1.2

Чтобы отобразить указанную структуру установленных связей, щелкните на кнопке  Select by Name (Выделить по имени) Select by Name (Выделить по имени) основной панели инструментов или нажмите клавишу <H>. Это окно позволяет визуально убедиться в правильности создания структуры объекта.

3. Преобразования перемещения и поворота объектов, связанных в иерархические цепочки, происходят по определенным правилам – правилам прямой или инверсной (обратной) кинематики. По умолчанию устанавливаются правила прямой кинематики. Это означает, что преобразования любого предка автоматически распространяются на все его потомки, но не касаются объектов-предков преобразуемого объекта. Выделите объект Hinge02 и поверните его на произвольный угол. Вместе с ним на тот же угол повернутся  его дочерние объекты, имеющие более низкий приоритет в иерархической цепочке (рис.  1.3).

Прямая кинематика - 3d уроки и упражнения

Рис. 1.3

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

Прямая кинематика - 3d уроки и упражнения

Рис. 1.4

Объекты, имеющие самый низкий уровень иерархии (в данном случае – это объект Reflector), наследуют преобразования всех объектов-предков, однако преобразования этих объектов не влияют ни на один другой объект.

5. Восстановите сцену. Выделите объект Lever02 и установите локальную систему координат (Local). Поверните выделенный рычаг на произвольный угол (рис.   1.5).

Прямая кинематика - 3d уроки и упражнения

Рис. 1.5

Как видите, конструкция разрушилась. Чтобы обеспечить целостность этой конструкции при вращении ее звеньев, следует перенести их точки опоры (Pivot) в центры вращения. Проделаем это с объектом Lever02. Восстановите сцену. Выделите объект Lever02, перейдите в закладку Hierarchy (Иерархия) Hierarchy (Иерархия), щелкните там на кнопке Pivot (Точка опоры), а затем ниже на кнопке Affect Pivot Only (Воздействовать только на опорную точку). После этого щелкните на кнопке Align (Выровнять) Align (Выровнять), а затем на объекте Hinge02. Выровняйте положение объектов по координатам X, Y, Z и опорным точкам (Pivot Point) и снова щелкните на кнопке Affect Pivot Only (Воздействовать только на опорную точку), чтобы отключить действие этой команды. Теперь вращение объекта Lever02 не будет приводить к разрушению конструкции. Аналогичные действия проделайте с другими рычагами (см. файл Table_lamp3.max).

6. Перемещение объектов в иерархической цепочке может быть ограничено. Для примера выделите рычаг Lever02 и в командной панели Hierarchy (Иерархия) Hierarchy (Иерархия) щелкните на кнопке Link Info (Информация о связях) Link Info (Информация о связях). Появятся свитки Locks (Блокировки) и Inherit (Наследование) (рис.  1.6).

Прямая кинематика - 3d уроки и упражнения

Рис. 1.6

Установите локальную систему координат (Local). Для блокировки вращений, которые могут быть применены к выделенному объекту, в свитке Locks (Блокировки) в области Rotation (Вращение) установите флажки для осей X и Y. Включите команду Select and Rotate (Выделить и повернуть) Select and Rotate (Выделить и повернуть) и попробуйте повернуть рычаг Lever02 вокруг разных осей. Во всех случаях рычаг будет поворачиваться только вокруг оси Z локальной системы координат. Теперь выделите рычаг Lever01 и поверните его вокруг разных осей. Вместе с ним будет поворачиваться и рычаг Lever02. Это означает, что блокировка (Locks) действует только в том случае, если вы перемещаете тот объект, для которого эта блокировка установлена, и она не распространяется на преобразования дочернего объекта вместе с родительским.

7. В свитке Inherit (Наследование) указываются преобразования, которые наследуются дочерним объектом от объекта-предка. По умолчанию установлены флажки всех преобразований по всем осям координат. Если, например, для рычага Lever02 сбросить флажок в области Rotation (Вращение) для оси Y, то при вращении рычага Lever01 вокруг оси Z его локальной системы координат рычаг Lever02 будет перемещаться поступательно, всегда оставаясь параллельным своему первоначальному положению (рис.  1.7).

Прямая кинематика - 3d уроки и упражнения

Рис. 1.7

8. Трансформацию цепочки объектов можно анимировать. Восстановите сцену. Войдите в режим Auto Key (Автоматическая установка ключей анимации) создания анимации с автоматической генерацией ключей, переместите ползунок на 50 кадр и в окне Front (Вид спереди) поверните рычаг Lever03 по часовой стрелке на угол в 30 градусов. Затем переместите ползунок к  кадру с номером 75 и поверните Lever02 в ту же сторону еще на 30 градусов. Выделите Lever02 и скопируйте 0-ой кадр в кадр с номером 50.  Переместите ползунок к кадру 100 и поверните Lever02 в обратную сторону. Отключите режим Auto Key (Автоматическая установка ключей анимации) и проиграйте анимацию (файл Table_lamp4.max).

9. Рассмотрим еще один пример с настройками блокировок и наследований. Создайте сцену с механическим манипулятором (рис.  1.8, файл Manipulator.max).

Прямая кинематика - 3d уроки и упражнения

Рис. 1.8

Последовательно, начиная с объекта Hand, свяжите все детали друг с другом в соответствии со структурной схемой, приведенной на рис.   1.9.

Прямая кинематика - 3d уроки и упражнения

Рис. 1.9

Выделите объект VShaft и поверните его вокруг оси Z локальной системы координат. Вместе со всеми своими дочерними объектами он развернется соответствующим образом (рис. 1.10).

Прямая кинематика - 3d уроки и упражнения

Рис. 1.10

Чтобы избежать возможных ошибок и не допустить перемещений объекта VShaft ни по одной из осей координат, а также вращений вокруг осей X и Y, можно установить ограничения на эти движения. Для этого выделите объект VShaft, на панели Hierarchy (Иерархия) Hierarchy (Иерархия) раскройте закладку Link Info (Информация о связях) Link Info (Информация о связях) и в свитке Locks (Блокировки) установите флажки для перемещений (Move) относительно всех трех осей и вращений относительно осей X и Y. Не лишним будет также установить запрет на масштабирование этого объекта вдоль всех осей (рис. 1.11).

Прямая кинематика - 3d уроки и упражнения

Рис. 1.11

Выделите теперь объект Arm и разрешите ему поворачиваться относительно оси X локальной системы координат, запретив все остальные варианты преобразований (рис.  1.12).

Прямая кинематика - 3d уроки и упражнения

Рис. 1.12

Поверните объект Arm относительно оси Х его локальной системы координат, и он повернется вместе со всеми его дочерними объектами (файл Manipulator1.max).

9. Движения манипулятора можно анимировать. Установите манипулятор в исходное положение, перейдите в 0-й кадр и включите режим создания анимационных ключей Set Key (Режим ручной установки ключей анимации). Анимируйте перемещение шарнира Hinge вдоль оси Z, установив значения Z = 72 в нулевом кадре, Z = 50 в 20-м кадре, Z = 60 в 30-м и 100-м кадрах,  Z = 50 в 120-м кадре и  снова Z = 72 в 150-м кадре. Затем анимируйте вращение объекта VShaft вокруг оси Z его локальной системы координат, сохранив в 0-м и 30-м кадрах его исходное положение, в 100-м и 150-м кадрах пусть он будет развернут на 75 градусов, а в 200-м кадре снова вернется в свое исходное положение. Теперь анимируйте объект Arm, сохранив его исходное положение в 30-м кадре, задайте повернутое вверх положение этого объекта в 70-м кадре и верните в исходное положение в 100-м кадре. Выйдите из режима генерации ключей. Воспроизведите анимацию (файл Manipulator2.max).

Источники:

  • Михаил Маров — 3ds Max. Реальная анимация и виртуальная реальность, с. 154;
  • Светлана Шляхтина — 3D Studio MAX: первые шаги. Урок 21. Иерархия и прямая кинематика.

Редактор сайта

Реклама: