Particle states offer a way of dividing particles into behavior groups. States are basically a combination of two things: a trigger and an effect. The trigger determines what causes the particles' behavior to change and the effect is the behavior that the particles adopt when the trigger is executed. Using these two elements, you can have many different combinations of things happening to particles. Of course, state systems can be much more elaborate than this, with several types of changes occurring at once.
A common type of trigger/effect combo is for particles to bounce when they collide with an obstacle, but you can do almost any combination of things you like. For example, you could create fireworks: the particle trail is seen going up into the sky, then suddenly bursts into another particle cloud at the end of its lifetime and leaves trails. Or you could create something simple such as the smoky trail left by a hurtling fireball by spawning particles at every frame.
Each trigger and effect combo is contained within one or more State compounds. You can have multiple State compounds all linked together consecutively, working as part of a larger effect. Particles stay in one state until a trigger is "pulled" and a new state is used.
Each State compound you define is plugged into a State Machine, which is the "central station" for the states. The states are executed in the order in which they're plugged into the State Machine, from top to bottom, which is just like the ICE Tree node.
There are two particle attributes that are used specifically with states: State_ID and State_transition_Time.
These attributes are used in several State compounds that are described in this section, but you can also use them on their own in an ICE tree by specifying them in the Get Data and Set Data nodes, as described in Using ICE Particle Attributes.
For more information on attributes in general, see ICE Attributes.
Except where otherwise noted, this work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License