Как же все-таки выйти из положения и затормозить частицы?

Бесполезный Component Editor можете закрыть (а можете и не закрывать - для контроля значений скоростей отдельных частиц).

Воспользуемся универсальным тормозом в виде атрибута conserve для частиц. Как вы помните, это имитация силы трения или умножитель для скорости частиц.

Вернитесь в первый кадр.

Выберите частицы и установите в Channel Box для них conserve=0.

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

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

Выполните Solvers=>Initial State=>Set for All Dynamic.

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

Теперь в первом кадре имеется неподвижное облако частиц, повторяющее форму объекта, на которое можно дунуть любым полем, что вы можете сделать в свободное от чтения книги время (particleTorus.ma).

Использование текстуры Ramp для управления частицами Рассмотрим теперь, как можно редактировать индивидуальные атрибуты более интеллектуальным способом, нежели прямое вбивание значений в ячейки. Очевидно, должны существовать способы задавать распределение значений индивидуальных атрибутов в зависимости от времени или от других параметров. Чтобы сразу не бросаться в программирование формул с помощью expression, рассмотрим сначала менее жесткий и довольно остроумный способ редактирования и анимации индивидуальных атрибутов - с помощью текстуры ramp.

Идея состоит в том, что текстура ramp по умолчанию представляет собой просто градиент, то есть плавный переход от одного цвета к другому. Если эти цвета поставить в соответствие значениям атрибутов частиц, а сам переход привязать к времени жизни, мы можем формулировать законы плавного изменения атрибутов частиц в зависимости от их возраста.

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

Сделаем небольшой пример на использование текстуры для управления размером частиц, ибо управление цветом выглядит совсем банально.

Поместим некоторое количество пузырей в цилиндрический объем.

Для этого создайте источник частиц: Particle=>Create Emitter.

Установите emitterType=Volume, rate=10 и volumeShape=Cylinder.

Чтобы частицы летели вертикально вдоль оси, задайте следующие значения: awayFrom-Center=0, awayFromAxis=0, alongAxis=0.5.

Теперь займемся частицами.

Выберите их и в Attribute Editor задайте Particle Render Type=Spheres. Испугайтесь, нажмите кнопку Current Render Туре и задайте radius=0.1.

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


⇐ вернуться назад | | далее ⇒