ParticleBounce
With ParticleBounce, you can make your particles appear to bounce off a 3D shape instead of traveling through it. Use the ParticleBounce object control in combination with real geometry to make it look as though the particles are interacting with it. Each particle checks for intersection with the geometry, then bounces according to the normal at that point. This is currently limited to the primitive Nuke shapes plane, sphere, and cylinder.
Inputs and Controls
Connection Type |
Connection Name |
Function |
Input |
geometry |
The geometry to bounce particles off when object is set to input. |
particles |
The particle system you intend to affect. |
Control (UI) |
Knob (Scripting) |
Default Value |
Function |
ParticleBounce Tab |
|||
display |
display |
unchanged |
Adjust the display characteristics of the 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 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. |
external bounce mode |
out_bounce_mode |
bounce |
Controls particle behavior when a bounce is detected on the external surface of the bounce object: • none - nothing happens and the particle moves as normal. • bounce - the particle bounces off the surface. • kill - the particle is deleted. |
new channels |
out_new_channels |
none |
Sets the channel where a particle should be assigned to when an external bounce is detected. |
bounce |
out_bounce |
1 |
Sets the strength of the bounce effect. Higher values cause the bounce angle to be closer to the normal, and vice versa. |
friction |
out_friction |
0 |
Controls the slow down of particles as they hit the external surface at an angle to the normal. Higher values cause a backspin effect - the bounce angle becomes closer to the normal, and vice versa. |
internal bounce mode |
in_bounce_mode |
bounce |
Controls particle behavior when a bounce is detected on the internal surface of the bounce object: • none - nothing happens and the particle moves as normal. • bounce - the particle bounces off the surface. • kill - the particle is deleted. |
new channels |
in_new_channels |
none |
Sets the channel where a particle should be assigned to when an internal bounce is detected. |
bounce |
in_bounce |
1 |
Sets the strength of the bounce effect. Higher values cause the bounce angle to be closer to the normal, and vice versa. |
friction |
in_friction |
0 |
Controls the slow down of particles as they hit the internal surface at an angle to the normal. Higher values cause a backspin effect - the bounce angle becomes closer to the normal, and vice versa. |
object |
object |
plane |
Sets the geometry used to simulate bounce. Selecting plane, sphere, or cylinder uses Nuke standard primitives, but you can select input to use custom geometry attached to the geometry input. |
|
bounceaxis_file_menu |
N/A |
Allows you to to import or export a channel file: • Import chan file - import a channel file and transform the bounce object 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 bounce object as a channel file. This is a useful method of sharing setups between artists. |
|
bounceaxis_snap_menu |
N/A |
• Match selection position - the bounce object is snapped to a new position depending on the points selected. • Match selection position, orientation - the bounce object is snapped to a new position and orientation depending on the points selected. • Match selection position, orientation, size - the bounce object is snapped to a new position, orientation, and size depending on the points selected. |
transform order |
bounceaxis_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 |
bounceaxis_rot_order |
ZXY |
Sets the order of rotation. The possible axial combinations are ZXY, XYZ, XZY, YXZ, YZX, ZXY, ZYX. |
translate |
bounceaxis_translate |
0, 0, 0 |
Lets you translate the bounce object along the x, y, and z axes. You can also adjust translate values by clicking and dragging the axis in the 3D Viewer. |
rotate |
bounceaxis_rotate |
0, 0, 0 |
Lets you rotate the bounce object around the x, y, and z axes. You can adjust rotate values by holding down Ctrl/Cmd and dragging in the 3D Viewer. |
scale |
bounceaxis_scaling |
1, 1, 1 |
Lets you scale the bounce object on the x, y, and z axes. |
uniform scale |
bounceaxis_uniform_scale |
1 |
Lets you scale the bounce object simultaneously on the x, y, and z axes. |
skew |
bounceaxis_skew |
0, 0, 0 |
Lets you skew the bounce object on the x, y, and z axes. |
pivot |
bounceaxis_pivot |
0, 0, 0 |
When you make changes to the bounce object’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 |
bounceaxis_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. |
Conditions Tab |
|||
probability |
|
|
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 |
|
|
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 |
|
|
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 |
|
|
Sets the integer to change the results of generated randomness in your particles. You can achieve slightly different effects by changing this number. |
channels |
|
|
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
Bouncing Particles off Objects
Video Tutorials
Example Nuke Scripts
Bouncing particles off a sphere