Character studio. Урок пятый: Motion Flow и Crowd

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

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

В этом уроке описано, как под управлением системы Crowd сделать идущих по пути навстречу друг другу, без столкновений, biped’ов.
 
Подготовка сцены
 
Для начала создадим саму систему.
Create => Helpers => Crowd
Сам объект Crowd не визуализируется и служит в качестве центра управления имитацией толпы. Настройки управления доступны на панели Modify.
 
Еще одним обязательным составляющим толпы является Delegate (представитель), которыми собственно и управляет Crowd. Кнопка «создание делегата» находится там же, где и система Crowd. Создадим одного делегата.
Create => Helpers => Delegate
 
Размножить его можно повторными созданиями, простым клонированием или специальной системой в Crowd’е - Scatter, которая рамдомно может создавать нужное количество делегатов с учетом их позиций, масштаба и поворота. Кнопка Scatter доступна на панели Modify системы Crowd.
 
Любым способом размножим делегатов до 10. Они должны быть на одной высоте (ось Z).
Затем создадим путь, вдоль которого будут двигаться представители, в виде любой кривой линии.
Create => Shapes => Line
Расставим по пять делегатов с начала пути и в конце, и создадим в стороне 10 biped’ов.
 
sites/default/files/scena_crowd.jpg
 
Объекты готовы к настройкам.
 
Настройка системы Crowd
 
Теперь нужно заставить делегатов двигаться, не сталкиваясь, вдоль пути.
Для этого в Crowd существуют Bihaviors (образы действий). Нам понадобится создать два Path Follow Bihavior (следование пути) – для двух групп делегатов, идущих навстречу, и один Avoid Bihavior (избегать) – для контроля столкновений.
 
В свитке Setup системы Crowd в области Bihavior жмем кнопку New и выбираем Path Follow Bihavior. В списке созданных действий переименуем, чтобы не запутаться Path Follow в Forwards, и в свитке его настроек Path Follow Bihavior с помощью кнопки None укажем созданную ранее линию. Также в нем следует переключить параметры:
- Starting of Path (начальная точка) в Nearest Point;
- Direction (направление) в Forwards;
- Actions at end path (действия после окончания пути) в Continue.
При необходимости нужно изменить Radius – в данном случае половина ширины дороги.
 
Затем нужно создать еще один образ действия - Path Follow Bihavior, но переименуем его в Backwards и соответственно выставим направление Direction – Backwards. Остальные настройки, как и в предыдущем.
Создаем третий и последний Bihavior – Avoid. Кнопкой выбора по списку рядом с кнопкой None выбираем всех делегатов. Включаем отображения радиусов – Display Hard Radius и Display Repel Radius. Первый - жесткий радиус показывает, на какое расстояние он не подпустит к себе другой объект, второй – область, при которой «задумается» об изменении направления движения. Если нужно, их корректируем.
 
sites/default/files/bihavior.jpg 
Теперь необходимо связать созданных Bihaviors и делегатов. Для этого открываем окно Bihavior Assignments and Teams с помощью кнопки Bihavior Assignments в свитке Setup.
 
В правой части окна жмем New Team – создать группу делегатов и выбираем в открывшимся списке всех представителей. Переименовываем созданную группу Team0 в All. В правой части окна в области под заголовком Teams отобразится созданная группа All, а в области Bihaviors указан список созданных ранее действий. Указываем мышкой на All и Avoid и жмем на большую вертикальную кнопку со стрелками. В центре окна появится запись о привязки группы делегатов All и действия Avoid. Теперь аналогично создаем еще две группы делегатов, например, «group_01» и «group_02», в каждой с пятью делегатами, которые стоят с разных сторон пути. И связываем одну (которая в начале линии) с действием Forwards, а другую группу с -  Backwards. Закрываем окно.
 
sites/default/files/assignment.jpg
 
Основные настройки в системе Crowd сделаны. Переходим к свитку Solve. Выставляем при необходимости побольше кадров для расчета в поле End Solve и жмем на кнопку Solve.
 
Делегаты дружно двинулись по пути с разных сторон и на середине вежливо обошли друг друга.
 
sites/default/files/solve_delegat.jpg
 
Настройка Motion Flow и подключение Biped’a
 
Для синхронизации направления делегата и biped’а применяется сценарий движений из режима Motion Flow.
 
Выбираем любого созданного biped’а, переходим в панель Motion и нажимаем на кнопку Motion Flow Mode. Далее в свитке Motion Flow жмем Show Graph. Откроется окно, в котором создается сценарий анимации biped’а посредством загрузки в него записей анимации в формате .bip или .stp. Для загрузки записей анимации нажимаем Create Multiple Clips и выбираем заранее подготовленные записи циклической анимации шагов (прямо, повороты направо и налево и д.т.). Их легко можно создать в режиме Footstep Mode. В окне клипы отобразятся в виде прямоугольников с названиями. Выбираем их, зажав Ctrl, или рамкой и нажимаем кнопку Create All Transition, чтобы связать все клипы. Еще раз выбираем уже вместе с созданными связями и жмем Optimize Selected Transitions – оптимизировать переходы. Потом нажимаем Select Random Start Clip и указываем клип или клипы, с которых начнется сценарий. Далее переходим к свитку Motion Flow на панели Motion и сохраняем сценарий Save File в формате .mfe.
 
Чтобы созданный сценарий применить ко всем biped’ам, в сцене открываем окно Shared Motion Flow одноименной кнопкой в свитке Motion Flow. Нажимаем New, затем загружаем сохраненный сценарий Load.mfe и добавляем biped’ов кнопкой Add. После этого значок кнопки Shared Motion Flowизменит свой вид. Закрываем окно и возвращаемся к Crowd.
 
sites/default/files/motion_flow.jpg
 
Для связи biped’ов и Delegates нажимаем кнопку Biped/Delegate Associations и в открывшемся окне загружаем в списки Bipeds и Delegates связываемые объекты (их должно быть одинаковое количество) и жмем Associate Открываем следующее окно – Edit Multiple Delegates, загружаем в него список представителей кнопкой Add и в низу окна переключаем значение Random start clip в области поля Biped напротив него ставим галочку Set и нажимаем Apply Edit.
 
sites/default/files/bip_delegat.jpg
 
Теперь можно включить просчет – Solve и наблюдать, как biped’ы пойдут навстречу друг другу. Но, скорее всего, при данном просчете они могут задевать и проходить друг через друга.
 
sites/default/files/bip_slove.jpg
 
Для полного контроля в свитке Priority нужно установить приоритеты. Включите опцию Display Priorities, и рядом с объектами делегатов появятся цифры, обозначающие приоритет (по умолчанию все Innocent. Для ручного обозначения используйте кнопку Pick/Assign (в видовом окне указывать делегатов по порядку), а для автоматического – выберете делегатов из списка с помощью кнопки Delegates to Prioritize и нажмите Assign Random Priorities. Затем включите опции Biped/Delegates Only, Use Priorities и Backtracking внизу свитка Solve. Теперь просчет будет происходить по очереди в порядке приоритета, что исключит непредвиденные столкновения.

Комментарии

Ghost 3d аватар

Все придельно понятно, но вот только у меня Max 2010, и кнопка None в свитке его настроек Path Follow Bihavior, не работает.

алехандер 3d аватар

спасибо, все понятно

schook1712 3d аватар

нормик Wink

вот пороль