Particle Flow microtutorial #1
Короткий рассказ для интересующихся как была сделана надпись “ВЕТЕР” на этой картинке:

Предупреждение первое.
Подразумевается, что вы достаточно хорошо знакомы с 3dsMAX и в то же время абсолютно незнакомы с ParticleFlow. Достаточно редкая ситуация, но, например, я в эту группу попадал еще месяца 3 назад.
Предупреждение второе.
Тут нет никаких секретных приемов в работе с Particle Flow. Если вы хотя бы немного с ним работали, то продолжать читать скорее всего не имеет смысла.
Предупреждение третье.
Описанный способ точно не является самым простым, более того, для создания одной статичной картинки он неоправданно сложный. Я делал все так как описываю, так как мне нужна была максимальная гибкость настроек размещения частиц и возможность в будущем делать _анимацию_ на основе этого проекта.
Поехали.
Средство для работы с частицами Particle Flow (дальше по тексту PF) раньше продавалось как отдельный плагин к 3dsMAX, а, по-моему, с седьмой версии макса (тут я могу ошибаться) вошел в его стандартную поставку. В отличие от стандартных максовских источников частиц типа Blizzard и прочих, он не иммеет жестко заданых параметров поведения частиц, а позволяет создавать из типовых операторов практически любую модель поведения.
Посмотрим как это работает.
Для начала создаем сам источник частиц:

Создаем ветер. Он нам пригодится позже, чтобы добавить хаотичности поведению частиц:

Настройки у ветра вот такие:

Как видите, сила (Strength) у него нулевая, чтобы частицы не сдувало в каком-либо направлении, а включена только турбулентность (Turbulence) — как раз это будет смещать частицы в случайном направлении.
Теперь выбираем источник частиц PF и жмем кнопку Particle View, чтобы открыть окошко работы с частицами:

Открывается окно PF:

Окно поделено на 4 части.
Левая верхняя — основное поле, как видите, описание поведения частиц типично для любого визуального языка программирования. Есть “события” задающие поведение частиц с помощью входящих в них операторов и связи между событиями.
Правая верхняя часть содержит настройки параметров для выделенного оператора или события.
Левая нижняя – доступные операторы. Зеленые отвечают за создание частиц, синие — за описание поведения частиц, желтые — условные операторы, нужны для передачи управления частицой в другое событие при наступлении оперделенных условий. Операторы добавлюятся в событие простым перетаскиванием.
Правая нижняя – тут показывается короткий хелп по выделенному оператору.
Набор операторов у вашего свежесозданного источника будет немного другой – смело удаляйте те, которых нет на этой картинке и добавляйте из нижней части те, которые есть.
Теперь посмотрим что делают операторы нашего единственного события Event01.

Итак, оператор Birth — самый важный, он создает частицы. В моем случае создается 6000 частиц (Amount) в промежутке времени от 0-го (Emit Start) до 10-го (Emit Stop) кадров.

Оператор Position Icon задает начальное положение появляющихся частиц. В моем случае они распределяются по всему объему (Volume) иконки источника частиц PF. Если бы мне надо было чтобы частицы рождались на каком-то объекте, то вместо этого оператора использовался бы оператор Position Object, но об этом в следующий раз =)

Оператор Force позволяет подключать любые внешние силы, которые должны воздействовать на частицы. В нашем случае это ветер Wind, который мы заблаговременно создали.

Оператор Speed by Icon отвечает за направление движения частиц. Он создает во вьюпорте иконку, анимация которой передается частицам. Об этой анимации чуть-чуть позже, а пока посмотрим какие параметры есть у этого оператора.
Ifluence определяет на сколько точно движение частиц совпадает с анимацией иконки. При малых значениях имеем “смазанный”, усредненный путь. При больших — практически полную копию исходной анимации.
Speed Variation задает максимальную и минимальную скорости частиц в процентах от скорости заданной анимацией иконки. Чем больше тут разница тем сильнее частицы размазываются по пути анимации. Мне она была нужна именно большой, чтобы на картике весь путь был заполнен частицами.
Включенный переключатель Steer Towards Trajectory указывает частицам следовать по самой траеткории анимации с нулевым отклонением от нее (Distance). Если это переключатель выключен, то частицы движутся вдоль пути в виде облака, которое они образовали при рождении.

Оператор Rotation управляет углами поворота частиц в пространсве, мне подошло случайное распределение (Random 3D)

Оператор Shape определяет как будут выглядеть частицы при рендеринге. В данном случае это кубики со сторой 12.
Если вас не устраивают кубики и вообще ни один из стандартных способов представления частиц, то можно воспользоваться оператором Shape Instance и определить свой объект для отображения частиц. Об этом опять же в другом туториале.
В двух последних операторах я настроек не менял, картинок не будет.
Оператор Cache нужен для кэширования параметров всех частиц и, как следствие, ускорения работы с ними.
Оператор Display задает как показывать частицы во вьюпорте. Там же можно указать процент показываемых частиц — полезно, когда их у вас много, а комп не очень быстрый.
Мне не был нужен какой-то особый материал для частиц, поэтому я не добавлял оператор Material Static, а ограничился просто указанием цвета кубиков в операторе Display.
Уффф. Вроде все с настройками частиц.
Осталось добавить анимацию. Рисуем путь, по которому движутся частицы — у меня это было слово “ВЕТЕР”. Находим во вьюпорте вот такую иконку:

Теперь привязываем ее перемещение к нарисованному пути. Выбираем ее, нажимаем на Animation -> Constraints -> Path Constraint, после чего кликаем на нарисованный путь.

Автоматически создаются ключи в первом и последнем кадрах секвенции, чтобы за это время иконка проходила всю длину пути. Я их немного поджал, чтобы частицы успели долететь до конца пути:

Ну вот. Вроде все.
Для интересующихся настройками рендера, материалами сцены, и для тех кому просто не хочется повторять все действия с нуля — вот исходная максовская сцена.
Можете покрутить параметры частичек и посмотреть как и на что они влияют, это самый быстрый способ понять как что работает =)
А вот как должен выглядеть у вас рендер где-то 480-го кадра:

Только солнце там желтое, а не красное и текстовых блоков нет =)
