Как же все-таки выйти из положения и затормозить частицы?
Бесполезный 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, но тогда все пузыри будут надуваться синхронно, а мы хотим, чтобы радиус каждого пузыря менялся независимо от других и зависел только от возраста пузыря. Очевидно, надо добавить каждой частице индивидуальный радиус.