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.
|
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.
|
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.
|
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:
|
|
snap_menu |
N/A |
|
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. |