Создание кометы в 3ds max с помощью Particle Flow

Здравствуйте. Меня зовут Алексей Фёдоров. Я несколько месяцев изучаю 3ds max и вот захотел написать урок. В этом уроке мы создадим комету с помощью системы частиц Particle Flow. Делал я урок в 3ds max 2009, но не надо сразу бросать урок, если у Вас макс более старый, ведь различия между версиями в основном заключаются в технических улучшениях (там оптимизация, например), а не в функционале. Главное, чтобы макс был хотя бы шестой версии, ведь именно с этой версии в макс интегрирован Particle Flow. Урок рассчитан на новичков: то есть попутно я буду описывать значение моих шагов: что они нам дадут. Когда будем применять какой-нибудь оператор, то буду писать о его параметрах. Хотя, профессионалам для закрепления знания, возможно, тоже могут ознакомиться. Я не буду пытаться добиться великого реализма, а просто покажу работу частиц.

Начнем все просто. Первое - это создадим саму комету. Цель моего урока показать не моделирование, а работу с самими частицами. Поэтому сама комета у меня будет простым маленьким шариком, где-то 15 см в радиусе. (Люблю я в сантиметрах работать и всё). Далее нажмем на кнопку 6 на клавиатуре и откроем окно Particle View. С помощью Particle View сделаем самое сложное - хвост кометы.

Мне бы хотелось поговорить об интерфейсе. Он достаточно прост.

1) Это список всех доступных операторов, которые и влияют на поведение частиц

2) Диаграмма частиц. Каждое событие содержит в себе один и более операторов. Чтобы они работали последовательно, их связывать надо.

3) Настройки оператора.

4) Description - описание оператора, то есть, как на поведение частиц повлияет.

Теперь об определениях для полного понимания материала.

Событие (Event) - единица организации диаграммы частиц или схемы событий. События бывают двух типов: global (глобальное) и local (локальное)

Глобальное Событие (Global Event) - это самое первое событие в диаграмме частиц. По умолчанию содержит оператор Render. Обычное это событие называется именем пиктограммы источника частиц.

Локальное событие (Local Event) - все остальные события в диаграмме частиц. Birth Event (Событие Рождения) - это особый тип событий, который отвечает за генерацию частиц. К нему можно присоединить любое количество операторов и оно ставится сразу после Глобального события.

Оператор (Operator) - это действия, которые комбинируются в события. Они влияют на поведение частиц.

Частицы (Flows) - в эту группу операторов входят операторы Empty Flow и Standard Flow. Именно их ставят на начальном этапе.

Критерий (Tests) - операторы, которые влияют на частицы по принципу True/False. Скажем если частица удовлетворяет условию критерия, то с ней будет происходить какие-нибудь действия (например, сможет в следующее событие переходить, если критерий Spawn и т.д).

Далее мы должны создать два оператора - Empty Flow и Birth и СВЯЗАТЬ. Их вы можете найти в списке операторов (Подчеркнул). Просто переместите их на поле диаграммы. Empty Flow и Standard Flow отвечают за то, как частицы будут отображаться на мониторе. В Empty Flow мы с нуля выстраиваем внешний вид частиц, имея всего лишь одно глобальное событие с оператором Render, а в Standard уже есть набор операторов с двумя событиями (Глобальное и Событие Рождения, содержащие ещё несколько других операторов).

Я выбрал Empty Flow, чтобы строить систему частиц с нуля. У нас  появилась пиктограмма источника частиц. имя по умолчанию:  PF Source 01

Теперь об операторе Render. Он отвечает за то, как частицы будут выглядеть при визуализации. Вы можете установить процент визуализируемых частиц (параметр Visible), выбрать, каким образом будет идти визуализация (параметр Type; например при включении опции Phantom будут просчитываться только анимация частиц, но самих мы не увидим, при опции None - вообще визуализации не будет, при опции Geometry (по умолчанию) - частицы полностью визуализируются). Параметр Render Group Result позволяет нам определить, как будет визуализироваться сетка частиц.

Оператор Birth нужен как воздух, потому что он отвечает за генерацию частиц. Он будет образовывать событие генерации частиц (Birth Event).

Emit Start и Emit Stop - параметры, указывающие в каком временном промежутке будут генерироваться частицы. Параметр Amount указывает, сколько всего будет  создано частиц. При переключении на параметр Rate  можно будет определить кол-во создаваемых частиц  в секунду. Поле Total показывает, сколько всего будет созданных частиц. Параметры для нашего проекта представлены ниже на картинке.

Ещё один оператор, который появился в событии генерации частиц - Display. Он точно определяет, как частицы будут отображаться во вьюпортах. Самый быстрый - Ticks (частицы отображаются в виде крестиков). Самый медленный - Geometry (полное отображение геометрии частиц). Переключатель Show Particles ID показывает ID-номера частиц. С помощью параметра Selected можно выбранным частицам назначить свой тип отображения в вьюпортах. Для нашей кометы настройки менять не надо.

Интересное Примечание:

Кстати, можно быстро упомянуть, как правильно выбирать частицы. Для этого выделите пиктограмму источника частиц и перейдите на вкладку Modify. Разверните свиток Selection и выберите уровень выделения частиц: Particle или Event. При уровне Particle, мы  выделяем отдельные частицы вручную или через ID-номера, а на уровне Event Вы выбираете все частицы, принадлежащие к отдельному событию. Этот свиток внизу на картинке.

Теперь в наше событие мы добавим новый оператор - Position Object. Он нужен для определения источника потока частиц. По умолчанию источником выступает наша пиктограмма PF Source 01, но в качестве источника нам нужна наша сфера. Найдите кнопку Add, нажмите её и в списке Emitter Objects будет имя нашей сферы. Переключатель Lock On Emitter заставляет часть частиц склеиваться с источником потока, а переключатель Inherit Emitter Movement заставляет частицы двигаться по направлению и скорости источника частиц. Параметры Multiplier% и Variation% позволят управлять процентом частиц, которые будут копировать движения источника. Выпадающее меню Location позволяет определить тип источника (Surface (поверхность) или Edge (ребро), например). Для нашего проекта добавьте только нашу сферу в список источников.

Интересное Примечание:

Если по событию в диаграмме щёлкнуть правой кнопкой мыши, то в контекстном меню есть 2 интересных пункта: Insert и Append. Оба эти пункта содержат в себе список операторов. Только при выборе оператора из списка Insert оператор в событии займёт место, где был совершён щелчок, а при выборе из списка Append оператор автоматически займёт место в конце события.

В качестве последнего оператора первого события мы возьмём критерий Spawn. Он нужен для создания новых частиц из уже существующих. Этот критерий часто выполняет роль связующего между событиями. Вот тут я вам рекомендую подбирать параметры самим. аккуратно работайте с параметром Spring: от него сильно зависит кол-во новых частиц. Не перестарайтесь. Параметр Rate указывает на то, сколько частиц будут генерироваться за секунду. Все зависит оттого, какой результат заходите получить при визуализации. Вот мои настройки для моего проекта.

Итак, мы завершили создание глобального события и событие рождение. На картинке то, что должно было у Вас получиться в диаграмме.

Вот так будет выглядеть схема после добавления теста Spawn.

Есть ещё один тип объектов, который будет относиться к нашей теме - Space Warps (Пространственные Деформации).  Это невизуализируемые объекты, которые влияют на поведении других объектов. Можно сымитировать эффект ветра, ряби волны и т.д.. Нам понадобится объект Wind. Комета при движении встречает сопротивление и сопротивление мы сымитируем объектом Wind. Чтобы его создать на панели Create найдите разделы Space Warps и в группе Forces выберите объект Wind.

Далее создайте его, как показано на моём скриншоте. Главное, чтобы стрелка (Направление ветра) была против потока частиц.

Выполним настройку для нашего проекта

Главное сделать правильный подбор параметров, чтобы было естественнее. Параметр Strength регулирует силу ветра. Decay - затухание (чем больше этот параметр, тем меньше расстояния от источника требуется для начала спада скорости ветра). Параметр Turbulence (это как раз та турбулентность, при которой в реальной жизни нас потряхивает в самолёте, а пилот говорит: "Мы попали в небольшую зону турбулентности. Пожалуйста, оставайтесь на местах и пристегните ремни") влияет на случайное изменение движения частиц, а параметры Frequency и Scale влияют на периодичность и масштабы турбулентности (Короче, чем выше значения Frequency и Scale, тем турбулентность будет более хаотичной и менее сглаженной).

Щёлкните правой кнопкой мыши по пустому участку диаграммы и из контекстного меню найдите пункт New - Operator Event. В списке Operator  Event находятся те операторы, при выборе которых мы создаём событие с этим оператором.  Из этого списка выберите оператор Force. Он  нужен для подключения объекта Wind. Нажмите на кнопку Add и выберите наш объект Wind. Через параметр Influence мы настраиваем процент влияния нашего ветра (менять не надо).

Также в событии автоматически появится оператор Display, но его трогать мы не будем, а описание я давал выше.

Кометы при движении оставляет за собой след, то есть хвост, от быстрого перемещения, но при этом  он недолговечен, поэтому придётся применить оператор Delete. Из самого названия понятно, что он служит для удаления частиц из системы. Без этого оператора частицы будут "проживать" бесконечную жизнь в пределах анимации, что помешает придать реализма нашей комете. А так мы сможем задать их временной промежуток. Существует 3 переключателя в настройках оператора в группе настроек Remove:  All Particles,  Selected  Particles Only и  By Particle  Age. При All Particles из сцены будут удаляться все частицы, при Selected Particles Only будут удаляться выбранные частицы (об отборе частиц говорилось выше), но нам нужен By Particle Age для установки промежутка времени, который должна проработать частица. Параметр Life Span определяет кол-во кадров для работы частицы, а при параметре Variation определяет промежуток отклонения от числа Life Span. То есть время для каждой частицы рассчитывается по формуле Life Span + (любое число от -1 до +1, умноженное на Variation). Параметры для нашего проекта представлены ниже на картинке.

Теперь мы должны описать форму наших частиц. Сделаем это с помощью оператора Shape. Это данное действие можно было бы и для предыдущего события сделать. Там нам понадобятся 2 параметра: Shape (мы выбираем форму наших частиц) и Size (выбираем размер). За форму частиц возьмём сферу, а размер поставим равный двум сантиметрам.

Чтобы наш хвост кометы выглядел лучше,  мы будем уменьшать размер частиц с помощью оператора Scale.  Тут  очень важную роль играет выпадающее меню  Type. Именно оно и будет указывать, от какого значения будет идти расчёт размера. При параметрах Overwrite Once и Inherit Once происходят пока идёт действие оператора, а трио параметров Absolute, Relative First, Relative Successive ведут масштабирование, пока частица находится в события. Разница состоит в том, что некоторые ведут расчёт от исходного размера частиц (например, Absolute или Overwrite Once), а некоторые ведут расчёт изменённых размеров (если, конечно эти изменения были и к таким относятся, например, Inherit Once или Realtive First). Также стоит поговорить о разнице масштабировании в Scale Factor и Scale Variation. В первом можно указать текущий размер, а во втором - процент от текущего размера. Можно снять флажок Constrain Proportions, который есть в обоих типах масштабирования, чтобы вводить по осям разные значения масштабирования. Настройки для нашего проекта показаны ниже на картинке.

Уфф.......закончили создание частиц. Теперь создадим материал для кометы и частиц. Сначала для кометы. Вызовите окно Material Editor (кнопка M английская). Выберите пустую ячейку и настройте материал, как у меня на картинке.

Далее создадим материал для частиц. Разработчики 3ds max создали специальную карту - Particle Age. Назначьте эту текстуру каналу Diffuse. Она помогает установить цвет наших частиц для трёх этапов:

1) Рождение частицы (Color #1)

2) Основной цвет для активной частицы (Color #2)

3) Цвет частицы  (Color #3)

Также для каждого этапа есть параметр Age. Параметр этот рассчитывается в проценте от  всей жизни частицы.

1) Age #1 показывает время для перехода с Color #1 к Color #2

2) Age #2 показывает сколько времени частица будет иметь цвет, указанный в Color #2

3) Age #3 показывает когда цвет частицы будет как Color #3

Лично я так сделал:

И настройте стандартные настройки материала шейдера Blinn:

Материал готов, но нам нужно его ещё добавить к частицам. С материалом для кометы  все просто делается через кнопку Assighn Material To Selection.

А вот с частицами надо попариться немного. Вернёмся к окну Particle Flow. В последнее событие добавьте оператор Material Dynamic. Через него можно легко применить наш материал к частицам. В настройках под параметром Assighn Material, (у параметра должен стоять  флажок), кнопка None. Вот и из редактора материалов переместите материал нашей  кометы на кнопку None. Материал готов.

Ну что ж.............практически все готово. Теперь только поработаем над фоном. В интернете найдите любое изображение звёздного неба. Через окно Environment (кнопкой 8 вызывается) и через кнопку Environment map добавьте ваш фон.

Все готово. Вот мой результат:

Надеюсь, что Вам мой урок понравился и помог понять основы использования частиц. Есть вопросы, предложения, примечания: пишите в асю по номеру 429-835-611.

285 0 850 26
17
2008-09-05
Укажите конечный вид таблички этой с Operator Event перед назначением материалов. А то у меня она виснет.
2008-09-05
Короче, после сделанных манипуляций с Вашими рекомендуемыми параметрами на моем Core Xtreme, 4,5gb DDR2 макс тормозит смертно.
2008-09-05
Короче, после сделанных манипуляций с Вашими рекомендуемыми параметрами на моем Core Xtreme, 4,5gb DDR2 макс тормозит смертно.[/quote] Ну раз на этом компе тормозит,то я пробовать не буду:-D
2008-09-05
У меня чётвертый пень, пол гига оперативки, видюха на 256 2006 года и она не вылетала и не висла, но из-за слабой системы рендеринг шёл иедленно, но не вис.
2008-09-05
Aleksey Fedorov 1)На мой взгляд урок не отражает главное достоинство системы PF - это настройка событий и условий генерации новых частиц. То чего не сделать с помощью обычной системы частиц. Приведенный в примере оператор Spawn по существу не нужен.(Тем более что посылаешь всех самим разбираться с ним.)Данный пример намного легче реализовать с помощью стандартной системы частиц. Я бы посоветовал написать вторую часть где раскрыта работа событий например на примере фейерверка, тогда урок будет полным. 2) Не все картинки свойств и диаграмма отражают конечные настройки что будет многих сбивать. Например в диаграмме нет оператора Delete. 3) На конечной картинки честно говоря не видна работа карты Particle Age. Зачем ее тогда туда пихать ? Либо нужно на добавочном скрине четко показать ее работу. 4) Неплохо упомянуть что оператор Delete обязательно нужно ставить и настраивать чтоб корректно работал материал Particle Age. 5) Также к уроку хорошим тоном прикладывать файлы проекта и раз это анимация то небольшой ролик конечного результата. Артём Мишарин На 2009 нужно ставить патч и фикс. Пропадают некоторые проблемы с обновлением. С уважением. Denis
2008-09-05
Следующий раз сделаю лучше. Это мой дебют, поэтому мой следующий будет лучше.
2008-09-06
After burn лучше юзать получиться красивее и качественне на мой взгляд
2008-09-07
А разве такого урока раньше не было? На 3DCenter.ru вроде?
2008-09-08
Спасибо чувак! У меня все рботает и ничего не виснет, работаю на 2-х ядерке с оперативкой 2 гб. Спасибо за урок, так держать!
2008-09-08
тока про феерверки уроков не надо, там всё до боли просто.
2008-09-08
[quote]А разве такого урока раньше не было? На 3DCenter.ru вроде? [/quote] дабы не быть голословным, пришлите ссылку на такой же урок только 3DCenter.ru.
2008-10-01
Не устаю удивляться,как вы в PF ориентируетесь.За это 5/5
2008-11-02
Хороший урок
2008-11-28
интересный урок)))
2009-03-29
звездное небо кстати в VideoPost сделать легко
2011-05-10
Спасибо за урок. Благодаря ему, я поняла, что такое Particles, зачем они нужны и как с ними работать. Остальные уроки в интете не очень понятные или незаконченные. Жаль, что не описан процесс визуализации, а также столкновения (collision test) и создание дефлекторов (объектов столкновения) - но это все, конечно, можно почитать в хелпе, когда уже понятно из урока, что есть такой полезный инструмент. Сам урок описан очень доступно, все понятно, нет никаких двусмысленностей в толковании действий, и в то же время ничего лишнего. Единственное, у меня по кнопке 6 окно Particle View не открывается, создавала свою систему через Create->Geometry->Particle Systems->PF Source (я делала не комету, и у меня все получилось для моей задачи). Еще раз спасибо, буду пользоваться!
2012-07-05
Вот это автор упустил. Не показал в скринах. В последнее событие добавьте оператор Material Dynamic. Через него можно легко применить наш материал к частицам. В настройках под параметром Assighn Material, (у параметра должен стоять флажок), кнопка None. Вот и из редактора материалов переместите материал нашей кометы на кнопку None. Материал готов.
RENDER.RU