Every Step Update Example

Description:

The following example shows the default Every Step Update script with detailed comments.

Can Be Used With:

Used by PF_Source as default Every Step Update script.

Effect:

The script modifies particle speed and direction, causing particles to follow a spiral path:

EXAMPLE

--Get the current particle system executing the script
pf_node_current = particleFlow.scriptRunner()
 
--In case the current particle system is a valid node
if (pf_node_current != undefined) then
(
 
--Get the total number of particles
count = pf_node_current.NumParticles()
--Loop from 1 to the number of particles
for i in 1 to count do
(
 
--Set the particle index in the container to the current i value.
--This makes the i-th particle in the container the current one:
pf_node_current.particleIndex = i
 
--Get the age of the particle, multiply by 5 and use as angle
--to define the particle speed
--Decreasing the constant 5 will slow down the rotation
--Increasing the constant will speed up the rotation
age = 5*pf_node_current.particleAge
 
--Calculate the speed of the particle using the
--function of the circle.
--Info: In general, a circle can be drawn using an Angle
--going from 0 to 2*Pi and the following functions for X and Y:
--X = CenterX+Radius*Cos(Angle)
--Y = CenterY+Radius*Sin(Angle)
--In our case, CenterX and CenterY are 0, Radius is 0.05 units,
--and Angle is based on the Age of the particles (see above).
--Changing the constant 0.05 will change the radius of the path.
--Changing the -0.05 (Z speed) will change the height of the spiral.
pf_node_current.particleSpeed = [0.05*cos(age), 0.05*sin(age), -0.05]
 
)--end i loop
)--end if

See Also