August 19th, 2008

Particle Flow microtutorial #2

Еще пара эффектов на основе ParticleFlow.

Дисклеймер все тот же — туториал только для совсем-совсем начинающих тридешников.
Если кто не знает — это вторая часть, подразумевается, что вы прочиталии первую.

 

Фишка первая.

 

Объект собранный из частиц разной формы и с разными материалами. Например как было у меня вот тут:

Вот как это сделано.
Сначала создаем произвольную форму, которую будем облеплять частицами — у меня это был ядерный гриб.
Создаем источник частиц ParticleFlow (PF) и настраиваем в нем вот такой флоу:

Опять рассматриваем, что делает каждый из операторов.
С Birth все понятно — он создает 5000 частиц. Speed задает начальную скорость частиц, мне динамика тут была не нужна (это же плакат), поэтому скорость нулевая.

Position Object задает их начальное положение:

Тут видно, что частицы привязываются к поверхности (Surface) двух объектов Line01 и Torus01 — это гриб и колечко вокруг его ножки. Surface Offset задает минимальное и макимальное смещение частиц от поверхности объекта, мне нужно было чтобы форма была “рыхлой”. Галочка Separation указывает PF чтобы он по возможности создавал частицы на расстоянии Distance=5 друг от друга — это нужно чтобы при рендеринге объекты в которые превратятся частицы не слипались и не имели взаимных пересечений.

Мне нужно было сделать частицы разных цветов/материалов, поэтому задаем материал частиц через оператор Material Frequency :

Как видим, частицам присваивается один материал — 09-Default (какое редкое название), но разный Material ID: 50% частиц с айди 1, 20% — с айди 2 и т.д. Материал 09-Default это обычный Multi/Sub-Object, где на каждый айди привязан один из нужных мне материалов частиц:

Получается, что 50% частиц будут розовыми, 20% — желтыми, 15% – радужными и т.д.

Теперь задаем форму частиц. Делает это оператор Shape Instance:

Оператор указывает, что все частицы при рендере заменяются на объект Star01, размером 80% от оригинала с разбросом 50% — мне нужно, чтобы детальки гриба немного отличались по размерам.

НО! Гриб из одних звездочек мне не нужен, надо как-то указать части частиц (да, странно звучит) рендериться объектами другой формы.
Вот для таких случаев и нужны условные операторы в PF. В данном случае это оператор Split Amount:

В этом примере он отделяет 25% частиц и отправляет их на обработку в событие Event 04, а там уже знакомым оператором Shape Instance им присваивается другая форма. Аналогично задается другая форма для третей и четвертой четвертей общего количества частиц. Напомню, у первой четверти форма осталась без изменений, это форма звезды.

Ну вот и все.
Примерно вот так это выглядит во вьюпорте:

А что из этого получается после рендера вы видели в начале поста.

 

Фишка вторая.

 

Визуализация траекторий движения частиц. Например, вот такая:

Делается это достаточно просто. Спасибо богам написавшим офигенный скрипт.
Сначала сетапим источник частиц PF. Заморачиваемся над динамикой. После того как движение частиц нас радует, качаем вот отсюда скрипт PF Spliner 3.0.

Запускаем его в максе и видим вот такое окошко:

Сверху кнопка выбора источника частиц, для которого надо создать траектории.
Start и End промежуток кадров, из которого берем траекторию частиц.
Increments — шаг между кадрами, по положению частиц в которых созаются опорные точки траектории. Чем меньше это число тем детальнее прорисовка траектории движения частицы, и тем сильнее задумывается комп когда ее рендерит.

Переключатель Attach Splines объединяет созданные скриптом сплайны в один объект — удобно включать если траектории будут иметь один материал и один способ отрисовки.

Жмем Generate Splines, комп озадачивается на какое-то время и создает нереально красивые траектории.
Это обычные сплайны, поэтому по умолчанию при рендеринге их не видно. Чтобы не забивать память лишней геометрией лофтов я делаю вот так:

Тут важно поставить галочку на Enable in Render — теперь эти сплайны будут видны при ренедере.
Не забываем включить Generate Mapping Coords, если материал нуждается в мэппинге.
Форма сечения сплайна может круглой/овальной, или прямоугольной — за это отвечают соответсвующие поля интерфейса.
Все.

     RSS    © MYSHLI 2006-2013