Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пособия_Tutorials / Рус / Анимация персонажа_ч2_(129).doc
Скачиваний:
63
Добавлен:
25.04.2015
Размер:
4.35 Mб
Скачать

КонтроллерыList

Создание любого объекта, включая кости, сопровождается присвоением им контроллеров для управления положением, поворотом и масштабом.

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

Когда преобразованию присвоен контроллер List, первый контроллер списка берет текущие значения XYZ преобразования, а следующий контроллер начинает от значений [0,0,0]. Если активен второй контроллер, анимация будет менять только значения второго контроллера.

Присвоением к объектам сцены контроллера List можно ставить эффект преобразований в анимации от [0,0,0] на втором контроллере, независимо от того, насколько сдвинут, повернут или scaled объект до этой точки. Если связаны параметры двух объектов на втором контроллере, значения преобразования будут подогнаны, и параметры одного объекта будут ожидаемо действовать на параметры другого объекта.

В случае оснастки персонажа следует несколько повернуть кости и подогнать их поворот по персонажу. Связывание поворота объектов одного с другим без применения контроллера List будет делать поворот одного объекта от положения другого объекта. Например, сделан поворот контрольной формы на 90o вокруг оси X для подгонки оснастки. Тогда при связи X поворота контрольной формы с X поворотом кости, кость тут же повернется на 90о для соответствия связи. В таком случае можно применить контроллер List, чтобы заставить оба объекта начать поворот от значения 0, и гарантировать, что контрольный объект будет ожидаемо действовать на кость.

Этот урок показывает, как применить контроллеры List к оснастке персонажа.

Подготовка сцены:

  1. Продолжение урока или загрузка файла tut_introrig_wired.max.

  1. При продолжении урока переход в кадр 0.

Пока управляющий объект CtrlSpine внизу спины можно применить для поворота всей спины персонажа. Однако при повороте спины верх тела вращается больше нижней части. Это движение будет имитировано, заставив верхнюю кость спины, BoneSpine02, повернуться в 1.5 раза больше, чем CtrlSpine и BoneSpine01.

Для этого будет связан поворот BoneSpine02 прямо с CtrlSpine. При повороте CtrlSpine кость BoneSpine02 повернется так же вследствие связи с BoneSpine01 и дополнительно на полуповорот из-за связи.

Выравнивание точек опоры:

Перед связыванием BoneSpine02 с CtrlSpine следует выровнять их опорные точки. Позже при связывании каждой оси поворота BoneSpine02 с CtrlSpine будет ясно согласование осей. CtrlSpine.

  1. Выделение CtrlSpine.

  2. Панель Hierarchy > Pivot > Adjust Pivot > включение Affect Pivot Only.

  3. Вызов Align для выравнивания точки опоры CtrlSpine по точке опоры BoneSpine02. В диалоге Align выбор Pivot Point для Current Object и Target Object.

  4. Выключение X Position, Y Position и Z Position, включение X Axis, Y Axis и Z Axis в группе Align Orientation. Щелчок OK.

  5. Выключение Affect Pivot Only.

Присвоение контроллера rotation list:

Теперь будет присвоен контроллер Rotation List треку Rotation объекта CtrlSpine.

  1. Выделение CtrlSpine, переход на панель Motion.

  2. В свитке Assign Controller выделение трека Rotation: Euler XYZ.

Пока трек по умолчанию содержит контроллер поворота Euler XYZ.

  1. В свитке Assign Controller щелчок кнопки Assign Controller. Выбор Rotation List из списка и щелчок OK.

  2. В свитке Assign Controller открытие ветви Rotation.

Ветвь Rotation содержит три пункта: Euler XYZ, Available и Weights. Контроллер Euler XYZ был ранее на треке Rotation и поддерживает все повороты объекта до этого места. Контроллер Available показывает место вставки любого контроллера в List.

  1. Выделение строки Available.

  2. Вызов Assign Controller. Выбор Euler XYZ из списка контроллеров и щелчок OK.

Теперь контроллер Rotation List показывает два контроллера Euler XYZ.

Имена контроллеров:

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

  1. В свитке Rotation List выделение первого контроллера Euler XYZ в списке Layers.

  2. В поле ввода в списке Layer ввод InitialPose.

Первый контроллер Euler XYZ списка Layer получает новое имя. Этот контроллер поддерживает начальный поворот объекта.

  1. Выделение второго контроллера списка Layer, и ввод имени Wiring.

Этот контроллер будет использован для связывания.

Когда контроллер активен, возникает маленькая стрелка левее списка Layer. Потребуется активность контроллера Wiring при анимации сцены.

  1. В свитке Rotation List щелчок Set Active делает контроллер активным.

Примечание: Двойной щелчок также делает контроллер активным.

Присвоение контроллера list кости спины:

  1. Выделение BoneSpine02, верхней кости спины.

  2. На панели Motion выделение трека Rotation и щелчок Assign Controller. Выбор Rotation List.

  3. В свитке Assign Controller открытие Rotation. Выделение Available и присвоение Euler XYZ.

  4. В свитке Rotation List ввод имен контроллеров InitialPose и Wiring.

  5. Двойной щелчок контроллера Wiring делает его активным.

  6. Сохранение сцены: Save as my_introrig_controllers.max.

Файл tut_introrig_controllers.max содержит версию сцены.

Связывание контроллеров:

Теперь можно связать оси поворота контроллера Wiring объектов.

  1. Выделение CtrlSpine.

  2. Правый щелчок CtrlSpine и выбор Wire Parameters. В меню выбор Transform > Rotation > Wiring > X Rotation.

  3. Щелчок BoneSpine02 и выбор Transform > Rotation > Wiring > X Rotation.

  4. В диалоге Parameter Wiring ввод выражения X_Rotation / 2.

Это добавит половину поворота CtrlSpine к BoneSpine02 по оси X.

  1. Включение стрелки вправо и щелчок Connect.

  2. Выделение Y Rotation на каждой стороне диалога. Щелчок стрелки вправо и щелчок Connect.

  3. Выполнение тех же действий для Z Rotation.

  4. Закрытие диалога Parameter Wiring.

Проверка связывания:

  1. Поворот CtrlSpine вокруг любой оси.

Нижний позвонок крутится так же, а BoneSpine02, позвонок выше, крутится больше.

  1. Включение Auto Key. Переход в кадр 10.

Анимация CtrlSpine исчезла с присвоением List. Персонаж в кадре вышел из равновесия.

  1. В окне Front поворот CtrlSpine, чтобы персонаж отклонился в сторону против бедер.

  1. Выключение Auto Key.

  2. Сохранение сцены: Save as my_introrig_spinebend.max.

Файл tut_introrig_spinebend.max содержит версию этой сцены.