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 the State Machine compound. This compound is the “grand 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.

![]()
|
You can use the data from your state system with any of the Color, Scalar, or Vector Multi Switch shaders in the render tree to drive the render data for your particles. See Texture - Switch Shaders for more information. |
Workflow Overview of Creating a Particle State
This is an overview of the state workflow using a simple example of particles changing speed (accelerating) and shape (cones) when they reach their age limit (2 seconds).
While this is a simple example just to demonstrate how to set up a basic state, most state systems can be quite complex and sophisticated, with many State compounds defining many behavioral changes happening to the particles, such as with creating fireworks.
See the table following these images for links to more information about each step.


|
1 - 3 |
Create a State System Base Create a State Machine compound and as many State compounds as you need to define each particle behavior set that you want to create. See Creating a State System for more information. |
|
4 - 5 |
Define Each State’s ID and Color Define each State compound’s ID and color to uniquely identify it. See Creating a State System for more information. |
|
6 - 8 |
Define Each Trigger You need to define the trigger in the first state compound. A trigger is something that causes an effect to happen when its value is reached. See Selecting the Trigger for more information. |
|
9 - 10 |
Define Each Behavior/Effect You need to define the effect in the next state’s compound. An effect is something that happen when the trigger’s value from the previous state is reached. See Defining the Effect for more information. |
|
11 |
Keep Adding States You can repeat this process of creating new State compounds, defining the trigger, and then defining an effect, as outlined in this process. |
There are two particle attributes that are used specifically with states. These attributes are used in several State compounds, 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 and a list of all available ICE attributes, see ICE Attributes.
• State_ID is the current state of a particle. This attribute is set and used by the State compound. This attribute is exposed in the State compound property editor as the State ID parameter (see Setting the Particle’s State ID).
You can also get the State_ID attribute with the Get Particle State ID compound, which is simply the Get Data with the State_ID attribute already specified. You can set the State_ID attribute manually with the Set Data node, but it's probably easier and less error-prone to use the State compounds.
• State_transition_Time is the time at which a particle last changed states, in seconds. This attribute is set by the State compounds, and is used by the Get Time in State and Test Time in State compounds.
You can also get this attribute in a Get Data node and use it to do other things based on the condition of when a particle changed state.
Autodesk Softimage v.7.5