ParticleBlinkScript

The ParticleBlinkScript node is similar to the BlinkScript node, running Foundry's Blink framework it enables us to write our code once and run it on any supported device. This is achieved through code translation, in which the Blink code is turned into specific code for each target device.

Unlike the BlinkScript node which works on images, the ParticleBlinkScript node works on a particle system. It’s a ParticleOp which lets you write a Blink kernel to modify the particles, allowing custom behavior that can’t be achieved with Nuke’s built in particle nodes.

Inputs and Controls

Connection Type

Connection Name

Function

Input

particles

The source particles to which the ParticleBlinkScript kernel is applied.

Properties - BlinkScript Tab

Control (UI)

Knob (Scripting)

Default Value

Function

display

display

unchanged

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

  • off - hides the 3D geometry object.
  • wireframe - displays only the outlines of the object’s geometry.
  • solid - displays all geometry with a solid color.
  • solid+wireframe - displays the geometry as solid color with the object’s geometry outlines.
  • textured - displays only the surface texture.
  • textured+wireframe - displays the wireframe plus the surface texture.

selectable

selectable

enabled

When enabled, you can make selections as normal in the Viewer. When disabled, points cannot be selected or changed.

render

render_mode

unchanged

Sets how the object is rendered. This control is independent from the display selection, but has the same settings.

  • off - hides the 3D geometry object.
  • wireframe - displays only the outlines of the object’s geometry.
  • solid - displays all geometry with a solid color.
  • solid+wireframe - displays the geometry as solid color with the object’s geometry outlines.
  • textured - displays only the surface texture.
  • textured+wireframe - displays the wireframe plus the surface texture.

Kernel File

kernelFile

none

Sets the file path of the kernel used for Load and Save operations. BlinkScript kernels use the .rpp file extension.

Load

loadKernelFile

N/A

Click to load and compile the kernel specified in the Kernel File field.

Save

saveKernelFile

N/A

Click to save the current kernel to the location and file name specified in the Kernel File field.

Kernel Source

Kernel Editor

kernelSource

ParticleDrag

Enter the kernel you intend to compile or edit the default ParticleDrag to suit your purposes.

Click the Recompile button to see the result of any changes.

Recompile

recompile

N/A

Click to recompile the kernel currently in the Kernel Editor. Any compile errors present are displayed on screen.

Create Knobs

createKnobs

N/A

Click to create knobs for any parameters which don't already have one.

Publish

publish

N/A

Click to create a group containing a copy of the current node. This can then be saved as a Gizmo if desired.

Protect Kernel

protectKernelWhenPublishing

disabled

When enabled, the kernel in the published group will be encoded and will not be readable when the published node is written to a script.

Properties - Conditions Tab

Control (UI)

Knob (Scripting)

Default Value

Function

probability

probability

1

This defines the probability that any given particle is affected by this node.

For each incoming particle, the op generates a random number between 0 and 1. If the number is greater than the defined probability value, then that particle is ignored and left unchanged.

0.0 - No particles are ever affected.

1.0 - Every particle is affected

min age

min_age

0

Define the minimum required age of a particle for it to be affected by this node. This node only applies to particles which are above this age, where the age is normalized to 0-1.

max age

max_age

1

Define the maximum required age of a particle for it to be affected by this node. This node only applies to particles which are below this age, where the age is normalized to 0-1.

random seed

seed

0

Altering this value produces different results for anything that requires random numbers. It is used in particular for probability but can also be used for the range knobs within a ParticleEmitter.

channels

channels

all

Select which channels to apply this force to.

Particles can be emitted on one or more channels, only selected channels will have this force applied to them.

Properties - Region Tab

Control (UI)

Knob (Scripting)

Default Value

Function

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 are 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

If 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.