Урок по анимации в 3Ds Max (дробление анимированного персонажа на фрагменты-частицы по средством PFlow Toolbox#2)

  Всем привет. Предлагаю вашему вниманию урок по созданию анимационного спецэффекта в программе 3Ds Max. Для начала я коротко объясню что будем делать для понимания надо оно вам или нет. А будем мы создавать анимированного персонажа при помощи костей CAT, делать по ним сетку и привязывать ее к ним, далее дробить сетку на фрагменты создавать по ним частицы при помощи оператора Birth group и привязывать их к исходной геометрии. На выходе получим анимированный объект состоящий из фрагментов-частиц привязанных к костям CAT. Сразу скажу что у данного способа есть два ограничения-недостатка, работа над которыми пока открыта. Первое ето то что наш персонаж должен состоять из недеформируемых частей, потом объясню почему. И второе то что конечный объект состоит из частиц с наложенной формой а не геометрии что может привести к трудностям с дальнейшей работой над ним (например с ретаймом анимации). Как бы то нибыло - продолжим. Урок расчитан на среднего пользователя 3Ds Max то что должно быть понятно и так - объяснять не буду.


В уроке будут применены такие разделы:

немного Softimage CAT-для создания и анимации перса

немного модификатор Skin для привязки сетки к костям 

немного плагин RayFire для фрагментации   

немного PFlow ToolBox#2 для создания и привязки частиц   

 Итак начнем. Идем в панель инструментов Create\Helpers\Cat Objects\Cat Parent и выбираем из списка любой риг. Можно и свой. Для незнакомых с CATом просто берем Base Human Rig

На скелете выбираем ладони, идем в Modify и добавляем пальцы Num Digits 5.

Для ступней добавляем по одному пальцу Num digits 1.

 Я еще немного кости изменил и получился вот такой болван. Далее создаем анимацию нашего персонажа.


 В принципе анимация на данном этапе не нужна, но мы будем использовать ее для тестовых целей по этому вперед. Для новичков в CATе скажу что для создания анимации нужно просто добавить анимационный слой CATMotion. Для этого выбираем наш риг, идем в панель инструментов/Motion/Layer Manager.

 Под списком слева от крестика кнопка с выпадающей сменой. Выбираем бегущего человечка.

При этом в список добавится наш слой. Теперь нужно нажать кнопку перехода от режима правки в режим анимации над списком слева от человечка. Поза перса изменится и при пуске анимации на таймлайне он пусть и кривехонько но всетаки пойдет. Конкретнее на CATе останавливаться не будем так как суть урока не в нем просто для наглядности я возьму свою ранее сделанную анимацию.
 Теперь создаем сетку по нашим костям. Отключаем плеймод в коте, выбираем все кости идем в главное меню то что сверху Tools и создаем Snapshot в мех.

Выбираем все кости и скрываем, выбираем сетку головы Modify/Edit Geometry- Attach list.

Убираем из списка все скрытые объекты костей оставляя только нашу геометрию и присоединяем ее всю.

Выбираем, именуем и проверяем элементы все ли на месте

Сетка готова, теперь будем ее привязывать к костям. Выбираем ее и навешиваем Skin. Идем в Parameters/Add bones.

И выбираем все кости в списке,предворительно их показав.

Нам необходимо чтоб элементы сетки четко соответствовали объектам костей при анимации, по этому будем жестко привязывать каждый элемент к соответствующей ему кости и только. Для этого идем в нашу сетку /Element и выбираем голову, затем главное меню /Edit/Select invert, затем снова Element/Selection-Hide.

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

 Теперь снова заходим в Skin/Parameters включаем Edit envelopers.


Ставим галочку Select vertices. Идем нижеWeight properties/Weight Tool это который ключик.

Откроется окно инструментов. Выбираем все вершины, их будет 8 по соответствию с открытым элементом, что отразится в таблице. Так-же мы видим кости присвоенные к вершинам. Нам нужна кость головы, ее и выбираем. Я назвал тело болваном, у вас могут быть свои названия, главное не в них а главное в соответствии выбранной геометрии и кости. Это надо понимать для выбора костей в двльнейшем, но тут я думаю понятно  свой элемент-своя кость. Далее на против кнопки Set Weight ставим 1,0 и жмем саму кнопку. Увидим сброс в таблице весов других костей на 0 и это правильно.

Можно включить для теста анимацию только не забывайте отключать ее (в CATе) перед дальнейшей расстановкой весов, иначе собъется расположение костей, а это не допустимо. Далее нужно тчательно повторить аналогичные действия для всех элементов геометрии. В принципе делается это в несколько кликов и не так уж и долго, главное чтоб осознанно и без ошобок. Тоесть идем опять в сетку. На предупреждение отвечаем Yes. Открываем все элементы, выбираем следующий за головой тот что соответствует верхней шейной кости, скрываем остальные и далее по схеме не забывая включать Edit Envelopes. Для конечностей можно сделать для одной слева или справа а за тем отразить, используя Mirror Mode в скине.

Только нужно правильно задать Mirror Plane в зависимости от положения перса. В моем случае это Z. Если задано правильно то будут видны синяя и зеленая стороны ну а далее копирование с одной на другую соответствующими кнопками. После завершения можно проверить Weight Table.

Там должны быть одни нули и единицы ну и включить анимацию. Движения сетки дложны совпадать с движениями костей. Если это так значит все ок - идем далее.

Теперь мы имеем CAT Rig и жестко привязанную к нему сетку. В принципе почти все готово для разбивания, однако надо оформить еще один важный момент. Дело в том, что мы будем делить на фрагменты нашу сетку и привязывать их к ней. Вместах пересечения элементов сетки произойдет сбой привязки, Что вызовет нарушение геометрии при анимации. Что я предлагаю сделать, чтоб это избежать. Я предлагаю разделить сетку на части, состоящие из непересекающихся элементов. Как это сделать? Если посмотреть на скелет CAT то становится видно что пересекаются в основном смежные кости, по этому будем просто выбирать элементы через один. Идем опять в нашу сетку. Копируем и удаляем модификатор Skin. Правой кнопкой на нем в стеке модификаторов Copy иDelete. Идем в Element и выбираем элементы через один тупо начиная опять с головы. Посторайтесь захватить как можно больше элементов но особо не парьтесь, остальные войдут в другие части, коих у меня получилось три. Далее в Edit Geometry-Detach.  Именуем и отделяем.Можно сразу навесить наш скопированный Skin. Правой кнопкой на сетке и Paste Instanced.

 Возвращаемся к оставшимся элементам. Также выделяем через один, отделяем и именуем и также добавляем наш Skin. Элемент соответствующий позвоночной кости, той что внутри груди, я вообще никуда не включал, мешает только - нафиг его. В итоге должно получиться три сетки с непересекающимися элементами и нашей привязкой к костям. Далее работать будем с ними. Собственно переходим к фрагментации.         Включаем анимацию перса в CATе. Это нужно чтоб положение рождения частиц совпало с началом анимации. Берем первую сетку и снова  делаем SnapShot в Mesh. Делить будем его. Я для этого пользуюсь плагином RayFire. Вы можете использовать свой способ или другой фрагментер. Если же установлен RayFire то бить будем через его меню. Сразу скажу что модификатором RayFire Fragmenter я не пользуюсь не нравится - глючит. Итак выбираем вновь созданный мех, который без скина, идем в панель инструментовCreate/Geometry/RayFire и открываем окно инстументов RayFire.

Первое подменю Objects. Если в списке что-то есть то нажимаемClear, если ничего нет то Add. В список добавится наше тело.

Далее открываем подменю Fragmentation. Способ фрагментации и ее степень можете выбрать свои. Я оставил как есть. Можно еще поставить галочку Do not store original objects в Advanced options.

 

Далее жмем Fragment Impact Objects.

Тело разобьется на куски. Выделяем их все и группируем. Группу лучше сразу переименовать. Теперь проделываем тоже самое с остальными двумя сетками, не забыв предворительно делать SnapShotы. В итоге мы имеем три группы фрагментов и три анимированные сетки им соответствующие. Все готово для создания частиц, к чему и приступаем.

  Открываем редактор частиц нажав кнопку 6. Добавляем операторы Empty Flow и Birth Group и соединяем их. Выбираем PF Source 001там где лампочка, Emission и выставляем Viewport 100%. Это вид частиц в окнах.

Далее идем в оператор Event 001/Birth Group 001.Выбираем первую группу обломков и жмем Selected под списком.

Галочки Group Members и Acquire Shapes должны быть включены, если нет включаем и Update Particles From Objects. В списке появятся фрагменты а в видовых окнах крестики на местах частиц.

ЖмемHide чтоб скрыть исходную геометрию

и идем к  следующему оператору Event 001/Display 001 где выбираем тип отображения частицGeometry. 

Крестики превратятся  в наши фрагменты. Если это так значит все хорошо - частицы рождены и подготовлены. Теперь их надо привязать к исходным анимированным сеткам.

 Для этого добавляем оператор Lock/Bond. Данный оператор контролирует только трансформации перемещения и поворота, по этому наш анимируемый объект должен состоять из недеформируемых элементов. В списке объектов кликаем By List и выбираем нашу первую анимированную сетку. Ставим метку Lock To Surfase и Animated Surface.


Теперь если все хорошо то при включении плей на таймлайне частицы-фрагменты будут двигаться аналогично нашему персонажу.

Осталось только создать частицы из двух других оставшихся групп фрагментов. Все делаем по той-же схеме, то-есть заносим еще два оператора Birth Group, вставляем в их списки соответствующие группы обломков и добавляем соответствующие Lock/Bondы. На выходе получаем целого персонажа, состоящего из фрагментов-частиц, привязанных к исходным костям.

В пинципе для дальнейшей анимации можно юзать CAT, или брать другой объект, состоящий из недеформируемых частей. Только надо не забывать про синхронизацию начального положения анимации и рождения частиц ну и конечно про вкусности Particle Flow, такие как Physx, который применен для создания титульного ролика. Его схему привожу в конце урока

        

687 0 850 12
7
2012-10-23
Вот всё хорошо,но вот в конце скомканно.Это хорошо,если человек знает чуток PF, а если вот ну совсем не знаком,да ещё и ToolBox#2 ? А ведь ему интересно ж будет,чо по чём и как это работает? Всё рвно хороший урок,норм,это я наверно придираюсь).10\9
2012-10-23
Интересный урок! Коменты по недочётам уже отписали!
2012-10-30
Понравилось. Хороший урок!
2012-10-31
НЕ прочитал пока что, но за урок по CAT огромное спасибо!!!
2012-11-04
хм, всегда думал. что кога у человека отрезают ноги, то он падает так как передвигаться дальше не может. но Ваш урок внес некую смуту в мое представление о мире )) Но за урок большое спасибо
2012-11-08
а где брать ToolBox#2, ибо в моем нуту Birth Group
2012-11-12
ToolBox#2,#3 - дополнительные модули и устанавливаются отдельно. ToolBox#2 добавляет physx а третий ряд дополнительных дата операторов. Рекомендую оба. Инфу смотрите на сайте и в нете.
RENDER.RU