После таких оптимистических заявлений, надо поговорить о том, чем отличаются expressions для частиц (Particle Expressions) от обычных expressions, как и когда они выполняются и какие основные трюки используются при анимации частиц с помощью expressions.
Создание, выполнение и виды Particle Expressions
В отличие от обычных объектов частицы имеют свойство неожиданно рождаться. Либо при испускании, либо при столкновении, либо после выполнения функции emit. Для таких частиц определен момент создания (creation time). Поэтому в общем случае для частиц существует два вида expressions: Creation expression и Runtime expression.
Runtime Expression для частиц похож на обычный expression для объектов - он выполняется в каждом кадре при проигрывании анимации. Его основное отличие состоит в том, что он выполняется в каждом кадре для каждой частицы. То есть если в кадре существует десять тысяч частиц, то формула radiusPP=radiusPP*1.01 будет выполнена десять тысяч раз в каждом кадре! Об этом следует помнить при написании особо изощренных expressions.
Creation Expression выполняется в каждом кадре, но только для тех частиц, которые в этом кадре родились. В следующем кадре для них уже будет выполняться Runtime Expression.
Runtime Expression не выполняется в момент создания частицы, то есть Creation и Runtime Expression не могут одновременно выполниться в одном кадре.
Creation Expression служит, как правило, для задания начальных значений для индивидуальных атрибутов частицы, которые либо будут далее изменены в Runtime Expression, либо будут определять постоянные свойства частицы. Назначение случайного размера или цвета в момент рождения - типичный пример использования Creation Expression.
Примечание. Для частиц, не испущенных из источника, а созданных с помощью Particle Tool, Creation Expression выполняется при возвращении в первый кадр.
Runtime Expression, если говорить формально, выполняется для каждой частицы, чей возраст (то есть атрибут age) больше нуля, каждый раз, когда MAYA вычисляет динамику. Если параметр Oversampling (отвечающий за точность обсчета частиц и устанавливаемый в Solvers=>Edit Oversampling or Cache Settings) равен единице, выполнение происходит в каждом кадре. Если, к примеру, он равен четырем, то вычисление динамики и, как следствие, выполнение Runtime Expression происходит в четыре раза чаще (грубо говоря, четыре раза между соседними кадрами).
Ещё одно отличие от обычных expressions и объектов заключается в том, что для одного объекта типа particle, а точнее, для ноды particleShape, всегда создается один Expression, называемый как правило particleShapeX, в котором «зашиты» и Creation и Runtime Expressions. В нем происходит вся работа с индивидуальными атрибутами частиц. Не надо создавать несколько expressions для частиц! В Expression Editor такой expression всегда фигурирует под одним именем и автоматически появляется, если выбрать shape объекта с частицами (то есть выбрать частицы и нажать стрелку вниз).
Обычно Creation и Runtime Expressions редактируют и создают, попадая в Expression Editor из Attribute Editor для частиц, нажав правую кнопку в поле индивидуальных атрибутов.