Maya|Dynamics - взаимодействие частиц

Итак, это туториал по взаимодействию частиц - как выпущенных из одного источника, так и из разных. Он довольно прост, и если вы уже освоились с источниками и редактором динамических связей (Dynamic Relationships Editor), то проблем у вас возникнуть не должно. Я на это надеюсь, по крайней мере. И можете не волноваться - здесь нет ни скриптов, ни плагинов, ни выражений.

Я работаю с Maya чуть больше полугода, так что, может, все это можно сделать лучше и проще. Но, во всяком случае, все работает. Я использую Maya Unlimited 4, но это должно получиться и с Complete, и даже, наверное, с более ранними версиями.

Для этого туториала мы создадим сцену с контейнером, который наполняется потоком частиц. Это может пригодиться для имитации жидкости, состоящей из каплеобразных (blobby) частиц.

Файл с аналогичной сценой (льющаяся в чашку жидкость), которую я сделал раньше, можно скачать здесь (http://www.highend3d.com/maya/tutorials/jaredmartin1/images/container.avi). Размер файла - 630 Кб.

Этап 1: Создание сцены.

Создайте новую сцену. Дайте ей смысловое название типа "container.mb"
В настройках анимации (Animation Preferences) установите скорость воспроизведения на 'Play every frame' (покадровая). Это позволит более точно просчитывать частицы.
Создайте полигональный цилиндр, назовите его "Container". Загните верхнюю часть немного внутрь и вниз, чтобы получился простой контейнер, такой как на рисунке:


/Рис. 1/

Я установил окно проекции в "рентгеновский" режим, чтобы можно было видеть содержимое цилиндра. Советую вам сделать то же самое.

Теперь создайте источник частиц с установками по умолчанию. Назовите его "Liquid" и поместите в верхней части контейнера, по центру.
Измените следующие настройки:
Emitter Type (тип источника): Directional (направленный)
Rate (интенсивность): 10
Direction X (направление Х): 0
Direction Y (направление Y): -1
Spread (распространение): 0.3
Speed (скорость): 2
Теперь частицы будут распыляться внутрь контейнера. Я установил небольшую интенсивность - всего 10 - потому что если частицы будут сталкиваться слишком быстро, то они разлетятся по всему контейнеру.
Выберите частицы (не источник) и откройте Attribute Editor (редактор свойств)
В секции Render Attributes(свойства рендеринга), поставьте тип рендеринга для частиц на Blobby
Измените радиус на "1". Это довольно большой размер, но мы не ставим себе цель получить тысячи мелких частиц. Нам их нужно сравнительно немного и довольно крупных - это сэкономит время и ресурсы.
Закройте редактор свойств. Убедитесь, что выделены частицы (не источник) и создайте поле гравитации (Gravity field).
Теперь нам нужно, чтоб частицы сталкивались с контейнером. Для этого выделите контейнер, затем частицы (не буду лишний раз напоминать, что не источник, а именно частицы ;) и из меню Particles (частицы) выберите 'Make Collide' (взаимодействовать).
И последний шаг на этом этапе - нужно поставить ограничение для частиц, чтобы они не вылетали за пределы контейнера. Выберите частицы и в Channel Box откройте секцию 'GeoConnector'. Установите параметр Resilience на 0.4.

Теперь, если вы проиграете сцену, вы увидите, как поток частиц распыляется внутри контейнера и заполняет его нижнюю часть. Не очень похоже на настоящую жидкость, потому что частицы проходят друг сквозь друга и контейнер не заполняется.

На данный момент сцена должна выглядеть приблизительно так:


/Рис. 2/

Этап 2: Взаимодействие частиц

Итак, займемся взаимодействием частиц. Это до неприличия просто.

Как вы наверное помните, в Maya объекты могут являться источником поля. Вы можете создать сферу, которая будет обладать, скажем, Air field. Вершины объекта также могут служить для управления полем - так что каждая вершина нашей сферы может воздействовать на поле.

Я думаю, вы догадались, к чему я клоню. Ведь частицы тоже могут быть источником поля. Как каждая частица по отдельности, так и все частицы в целом.

Получается, чтобы добиться взаимодействия частиц, нужно каждую частицу превратить в источник Radial field, которое воздействует на область пространства, ограниченную радиусом частицы. Поскольку на каждую из частиц влияет radial field, они ограничивают друг друга. Если у вас тысячи частиц и каждая - со своим radial field, сцену получится довольно ресурсоемкой. Но это закономерно.

Выделите частицы и создайте radial field по умолчанию, которое и будет на них воздействовать.
Теперь выберите radial field и измените следующие настройки на пенали каналов:
Attenuation (затухание): 0
Max Distance (максимальное расстояние): 2 (Стоит поэкспериментировать с этим параметром, который соответствует дистанции взаимодействия частиц. Мне показалось, что оптимальный вариант - поставить значение вдвое большее, чем радиус).
Apply Per Vertex (применять к каждой вершине): On (теперь каждая частица будет источником радиального поля).
Radial Type (тип): 1 (более жесткое взаимодействие)

Теперь выделите radial field вместе с частицами и в меню Fields (поле) выберите 'Use Selected as Source of Field' (использовать выделение как источник поля).

Готово! Теперь, если вы запустите сцену (установите диапазон на 1000 кадров), частицы будут взаимодействовать друг с другом и заполнять контейнер. Но все же настройку частиц нужно еще немного улучшить, чтобы их движения больше напоминали жидкость. Для этого выберите частицы и установите меньшее значение для параметра Conserve. Я рекомендую порядка 0.85.

Чтобы взаимодействовали частицы из разных источников, нужно создать еще один источник частиц, а затем, с помощью редактора динамических связей сделать так, чтобы radial field частицы каждого из источников влиял на частицы другого.

Надеюсь, этот туториал был для вас интересным и полезным. Мне кажется, он открывает возможности для создания многих прикольных эффектов.

365 0 850 2
0
RENDER.RU