Урок первый. Настройка автомобиля. Reaction Manager.

Категория урока: 
Анимация

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

А именно - настрою поворот колес с помощью Reaction Manager. Их вращение в зависимости от движения автомобиля настрою контролером FloatScript. Также будут рассмотрены привязки Wire Parametrs и модификатор Atribute Holder.
 
Подготовка
 
Для начала придется подготовить автомобиль. Объединю в группы или в отдельные объекты передние и задние колеса. Передние нужно разделить на левое и правое (нужно для настройки поворота), а задние можно объединить. Все остальные части машины - в отдельную группу.
 
Затем установлю Pivot’ы: каждый по центру своей группы или объекта, т.е. Pivot каждого колеса должен быть в его центре. Для этого нужно выделить группы или объекты, прейти в панель Hierarchy, нажать кнопку Affect Pivot Only и затем - Center to Object.
 
Элемент управления поворотом создам в виде простого кольца Create => Shapes => Circle, и для удобства включу ему отображения толщины. Поставлю его над капотом автомобиля.
 
Для анимации перемещения всего автомобиля создам объект Point. Create => Helpers => Point. Переключу его вид как Box в панели Modify, установлю размер чуть побольше автомобиля и выровняю по центру задних колес. Благодаря этому во время анимации поворота задние колеса не будут смещаться в сторону. И привяжу простым линком  «Select and Link» все объекты авто к этому Point.
 
 
 Данная привязка является исключением. Она не привязывает конкретные значения контролеров управления объектов как остальные привязки, а привязывает как бы систему координат объекта, относительно которой работают все контроллеры.
 
Например, при перемещении старшего по иерархии объекта не будут изменяться значения положения в котроллерах, привязанных к нему объектов.

Настройка поворота колес
 
Теперь свяжу вращение элемента управления (кольца) и колес по оси Z с помощью Reaction Manager.
 
Для этого сначала понадобится проверить установленные контролеры на объектах и при необходимости назначить дополнительные. Выбираю кольцо и перехожу в панель Motion. Открываю свиток Assing Controller. Здесь представлены в иерархическом порядке основные контролеры объекта – Position, Rotation и Scale. Поскольку привязку буду делать по оси вращения Z, то мне нужен контролер «Rotation:Euler XYZ». Если у вас он не установлен (по умолчанию назначен), то его можно изменить. Выберите другой (уже назначенный) контролер на вращения и нажмите на кнопку со знаком «?», и укажите из списка Euler XYZ.
 
 
Проверю и установлю при необходимости контролеры на колеса.

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

Далее открываю окно Animation => Reaction Manager.
 
Сначала выбирается главный объект, область значений которого влияют на привязанные к нему. Нажимаю кнопку Add Master и во вьюпорте указываю кольцо. В появившемся меню выбираю нужный контролер Transform => Rotation = > Z Rotation. В списке Reactions появилась соответствующая запись. Затем нажимаю Add Slave и также указываю сначала одно переднее колесо, потом добавляю и второе.
 
В списке States очищу автоматически созданные записи кнопкой «X» и добавлю две новые кнопкой со стрелкой вниз, предварительно выбрав в списке Reaction верхнюю по иерархии запись. Выставлю значения Value напротив первых трех записей «-90» и напротив других трех записей «90». Это означает, что при повороте на -90 градусов кольца (которое в списке по иерархии выше) два привязанных к нему колеса также будут поворачиваться на -90. И при повороте кольца на 90 колеса тоже повернутся на 90. Прямой график внизу показывает, что связь между этими двумя записями линейная.
 

 
Теперь, вращая кольцо по оси Z, колеса тоже будут поворачиваться, но не превышать 90 градусов в обе стороны.
 
Для отображения точного угла поворота  в элемент управления колесами (кольцо) добавлю Attribute Holder, который находится в списке модификаторов. Но пока он пустой. Для добавления в него полей используется окно Parameter Editor, доступное из меню Animation или нажатием «Alt+1». В верхней строчке окна указывается, куда добавляется параметр - Selectet Object’s Current Modifier (в модификатор выбранного объекта). В низу окна показывается вид добавляемого атрибута. Настройки установлю следующие:
Parameter Type – Angle;
UI Type – Spinner;
Name – назову «Angle»;
Range – From:-90, To: 90, Default: 0.
 
После нажатия Add в модификаторе Attribute Holder появится параметр Angle с ничего пока не показывающими и не изменяющими значениями.
 
 
 Свяжу значения Angle с вращением кольца. Вызываю меню нажатием ПКМ на кольце и выбираю Wire Parametrs… и в появившемся меню выбираю Transform => Rotation = > Z Rotation. Снова указываю ЛКМ на кольце, но теперь выбираю параметр «Angle»  Modified Object => Attrbute Holder => Custom Attributes => angle. В открывшемся окне надо указать связь кнопкой в виде стрелки. Направление указывается от того объекта, значения которого влияют на другой, в данном случае установлю связь в обоих направлениях. Для завершения надо нажать Connect. Теперь колеса можно поворачивать и параметром Angle.
 

 
Во втором уроке будет описано, как с помощью контролера FloatScript задать вращения колес в зависимости от скорости движения машины, при этом вращения можно сразу видеть во вьпорте.
 
Прикрепляю файл (3ds Max 2008)  с настроенной машиной, где можно посмотреть все описанные в двух уроках привязки.

 

Файл со сценой урока: 

Комментарии

Antonc81 3d аватар

блин,у меня колеса крутятся в разные стороны!

Swich3d 3d аватар

добавь отрицательное значение в начале "-"