ParticleSpawn

If you’re looking to have your existing particles emit even more particles, you should turn to ParticleSpawn. This node emits particles from existing particles.

Inputs and Controls

Connection Type

Connection Name

Function

Input

particle

The image or geometry to emit as particles - when you connect up this input, another particle input is created allowing you to mix particle types.

merge

Another particle system, including another ParticleEmitter, on which to base the spawned particles.

Control (UI)

Knob (Scripting)

Default Value

Function

ParticleSpawn Tab

display

display

unchanged

Adjust the display characteristics of the spawned particles. These settings don’t affect the render output of the scene; these are for display purposes only in the 3D Viewer.

off - hides the particles.

wireframe - displays only the outlines of the particle.

solid - displays all particles with a solid color.

solid+wireframe - displays the particles as solid color with the particles outlines.

textured - displays only the surface texture.

textured+wireframe - displays the wireframe plus the surface texture.

unchanged - doesn't change the particles display mode. The Viewer can override this setting.

selectable

selectable

enabled

When enabled, you can select the spawned particles in the Viewer by clicking on them.

render

render_mode

unchanged

Sets how the particles will render. This control is independent from the display selection, but has the same settings.

channels

channels

b

The spawned particles only exist in the selected channel(s).

emission rate

rate

10

Sets the exact number of particles spawned per frame and is affected by the rate channel control of the ParticleEmitter. If your rate channel is less than 1 all the way through, the spawn rate lessens.

rate variation

rate_variation

0

Produces a random emission variation by adding a Gaussian-distributed random number to the emission rate value multiplied by the rate variation value.

Roughly speaking, 0 is equal to the emission rate and 1 is very random variation.

lifetime

lifetime

10

Sets the number of frames that each spawned particle exists for.

lifetime range

lifetime_variation

0

Produces a random lifetime variation by adding a Gaussian-distributed random number to the lifetime value multiplied by the lifetime range value.

Roughly speaking, 0 is equal to the lifetime and 1 is very random variation.

halflife

halflife

0

Sets a halflife causing a fraction of the spawned particles to die randomly each frame such that on average, half of the particles that existed at a given time will continue to exist after the halflife (in the same way as radioactive decay).

For example, after twice the halflife value in frames, only a quarter of the original spawned particles will be left, and so on.

velocity

velocity

1

Sets the speed in units per frame of the particles as they spawn.

velocity range

velocity_variation

0

Produces a random velocity variation by adding a Gaussian-distributed random number to the velocity value multiplied by the velocity range value.

Roughly speaking, 0 is equal to the velocity and 1 is very random variation.

rotation velocity

rotation_velocity

0

Sets how quickly spawned particles spin around their local y axis in 3D space.

The y axis points in the direction the particles were initially spawned, but then stays unchanged. You can use the ParticleMotionAlign node to align particles along their direction of motion, or the ParticleLookAt node to cause all particles to align in a particular direction.

rotation velocity range

rotation_velocity_ variation

0

Produces a random rotation velocity by adding a Gaussian-distributed random number to the rotation velocity value multiplied by the rotationvelocity range value.

Roughly speaking, 0 is equal to the rotationvelocity and 1 is very random variation.

size

size

0.1

Sets the size of each spawned particle. If the particle input is geometry, the instance of that geometry at each particle is affected by this value.

size range

size_variation

0

Produces a random variation in particle size by adding a Gaussian-distributed random number to the size value multiplied by the size range value.

Roughly speaking, 0 is equal to the size and 1 is very random variation.

mass

mass

0.1

Sets the mass of each spawned particle when a force is applied, for example when using the ParticlePointForce node.

mass range

mass_variation

0

Produces a random in particle mass by adding a Gaussian-distributed random number to the mass value multiplied by the mass range value.

Roughly speaking, 0 is equal to the mass and 1 is very random variation.

transfer velocity

transfer_velocity

1

Transfers velocity from the initial emitter to the spawned particles on a sliding scale - all inherited velocity at 1, and zero inherited velocity at 0.

spread

spread

0

Applies a spread to the particles - by default, a cone shape around the direction of emission.

conservation of mass

conserve_mass

enabled

When enabled, the mass of any spawned particle is subtracted from the originating particle. If the mass of the originating particle is zero at the end of a frame, it is deleted.

conservation of momentum

conserve_momentum

enabled

When enabled, the momentum of any spawned particle is subtracted from the momentum of the originating particle, in correspondence with Newton's third law of motion.

align velocity to direction of motion

velocity_direction

enabled

When enabled, spawned particles inherit the velocity from the parent particle, but the direction of motion is dictated by the ParticleSpawn controls.

When disabled, spawned particles inherit the direction of motion from the parent particle, but with increased velocity.

color

color

1

Sets the initial color of spawned particles when the particle input is not connected.

inherit color

inherit_color

disabled

When enabled, the spawned particle’s color is taken from the originating particle. When disabled, spawned particles derive their color from the particle input, if connected, or the color control.

input order

input_order

randomly

Sets the order of particle inputs used for the representation:

randomly - a random input is picked for each particle emitted.

in order - the inputs are cycled through for each particle emitted.

start at

start_frame_animation

first

Determines which frame a newly emitted particle's representation starts from:

first - uses the first frame from the input for each new particle.

in order - uses successive frames for each new particle.

current - uses the frame from which the particle was emitted.

random - uses a random frame within the representation's frame range.

limit to range

start_wrap

disabled

When enabled, particle start frames are forced to be within the range of the representation input. This causes the start at > in order and current options to wrap round back to the start of the frame range once it has been exceeded, in a continuous loop.

advance

frame_advance

in steps

Determines whether particle representations animate after emission:

constant - particles do not animate, and keep the same representation for their entire lifetime.

in steps - the particle’s representation advances frame by frame.

randomly - a different random frame is picked each time.

max clip length

max_clip_length

100

Sets the number of frames used in animation from the representation input.

Conditions Tab

probability

probability

1

Sets the probability that this node affects your particles. If you set this to zero, the node won’t affect any particles, and if the value is 1, the node will affect every particle.

min age

min_age

0

Limits the effect of this node to particles above this minimum age. The age of the particle is its lifetime normalized between 0 and 1.

max age

max_age

1

Limits the effect of this node to particles below this maximum age. The age of the particle is its lifetime normalized between 0 and 1.

random seed

seed

0

Sets the integer to change the results of generated randomness in your particles. You can achieve slightly different effects by changing this number.

channels

channels

all

Specifies which particle channels the effect of this node should be applied to. Channels a and b are arbitrary names for channels which are useful if you want different ParticleEmitter nodes or other particle force nodes to have an effect on separate channels.

Region Tab

region

region

none

Sets the region which you want to use to confine the particle effect to. For example, if you choose a sphere, only particles inside that sphere shaped region will be affected by particle effects.

none - all particles are affected as normal.

sphere, box, half-space, and cylinder - controls the region’s boundary shape.

invert region

region_invert

disabled

When enabled, particles outside the region are affected rather than those inside it.

file_menu

N/A

Select to import or export a channel file:

Import chan file - import a channel file and transform the region marker according to the transformation data in the channel file. Channel files contain a set of Cartesian coordinates for every frame of animation in a given shot. You can create and export them using Nuke or 3D tracking software, such as 3D-Equalizer, Maya, or Boujou.

Export chan file - export the translation parameters that you’ve applied to the region marker as a channel file. This is a useful method of sharing setups between artists.

snap_menu

N/A

Match selection position - the region marker is snapped to a new position depending on the points selected.

Match selection position, orientation - the region marker is snapped to a new position and orientation depending on the points selected.

Match selection position, orientation, size - the region marker is snapped to a new position, orientation, and size depending on the points selected.

transform order

xform_order

SRT

Sets the operation order for scale (S), rotation (R), and translation (T). The possible operation combinations are SRT, STR, RST, RTS, TSR, TRS.

rotation order

rot_order

ZXY

Sets the order of rotation. The possible axial combinations are ZXY, XYZ, XZY, YXZ, YZX, ZXY, ZYX.

translate

translate

0, 0, 0

Lets you translate the region marker along the x, y, and z axes. You can also adjust translate values by clicking and dragging the axis in the 3D Viewer.

rotate

rotate

0, 0, 0

Lets you rotate the region marker around the x, y, and z axes. You can adjust rotate values by holding down Ctrl/Cmd and dragging in the 3D Viewer.

scale

scaling

1, 1, 1

Lets you scale the region marker on the x, y, and z axes.

uniform scale

uniform_scale

1

Lets you scale the region marker simultaneously on the x, y, and z axes.

skew

skew

0, 0, 0

Lets you skew the region marker on the x, y, and z axes.

pivot

pivot

0, 0, 0

When you make changes to the region marker’s position, scaling, skewing, and rotation, these occur from the location of the object’s origin point or pivot. The pivot x, y, and z controls allow you to offset the pivot point and move it anywhere you like - you can even move it outside of the object. Subsequent transformations applied will then occur relative to the new pivot point location.

You can also hold down Ctrl/Cmd+Alt and drag the pivot point to a new location in the 3D Viewer.

Local Matrix

specify matrix

useMatrix

N/A

Enable this control to specify matrix values for the object you’re transforming as an alternative to setting transform, scale, skew and pivot values above.

matrix

matrix

N/A

The matrix displays values from the object’s transform, rotate, scale, skew, and pivot controls.

Check specify matrix and copy or drag-and-drop matrix values from another object to apply those values, for example, if you wanted to align objects in a scene.

Step-by-Step Guides

Spawning Particles with ParticleSpawn