This location is for Registered Users Only.
Perhaps you need to login or register.
11.0, 10.5, 10.0, 9.0, 8.0, 7.1, 7.0, 6.3, 6.2, 6. or later
Linux, Mac, Windows
(Examples of a Mandelbrot set render, and Reaction Diffusion - made using SetLoop)
SetLoop is a toolset for Nuke that can loop a set of nodes a specific amount of times (like a for each loop, an iterator, or a solver).
It basically copies the nodes you place between Loop_Begin and Loop_End inside Loop_End (which is a group), and reconnects them. But there are many more features to it which, combined, make this an actually functional image solver that can render fractals (like the Mandelbrot set) and animated reaction diffusion entirely in Nuke.
- relink external inputs if nodes in the loop are connected to nodes outside the loop, this will make sure they are relinked automatically by adding exra inputs to Loop_End to which the nodes connect (this is enabled by default, as it does not change anything if no external inputs are present)
- relink external expressions for all expressions referencing nodes which are not part of the loop, this will make sure to add 'parent.' before every nodename and replace 'parent.' with 'root.' for every node not being looped
- this way, they'll still be connected from inside the group (this is disabled by default, as it could mess up expressions if user variables have the same name as nodes)
- add loop count knob the nodes inside the loop will get an index count knob ('loopcount' (int)) which can be used to create different values or random seeds for each loop iteration
- the original nodes (the ones in the backdrop in the main graph) will also get this knob, with index 0 (this is disabled by default, as it interferes with all nodes in the loop)
- offset offset the loop count knob (0 by default)
- only available when 'add loop count knob' is enabled
- loops amount of loops to create
- method 'sequential' loops like an iterator, 'parallel' creates multiple instances of the same input and merges them together when using 'parallel', make sure to add a random value to an expression or to use the 'add loop count knob' for visible results ('sequential' is the default, as this is a more commonly used loop)
- set bake/clear the loop
- scroll animate the loop level
- invert invert the direction of the scroll
- only available with method 'parallel'
- blend blends the loop levels when scroll is not a round number
- spread feather the loop levels
- only available with method 'parallel' and 'blend' enabled
- stats current stats
- [tab] constants room for user knobs that can be referenced to from inside the loop (e.g.: 'constant_float')
Please send suggestions, bug reports, and other feedback!
I'd love to know if you created something cool with this.
If you're not interested in installing it and just want to use it once, you can simply drag the SetLoop.nk file into your Nuke script!
To install it so you can always get it via the TAB-menu, follow these instructions:
The '.nuke' folder can be found in here:
- Linux: /home/.nuke
- Mac OS X: /Users/.nuke
- Windows: \Users\.nuke
Option 1 - Easiest way:
- Copy the 'SetLoop.nk' file to your '/.nuke/ToolSets/' folder. If the 'toolsets' folder does not exist, create it yourself (its name is case sensitive!).
Option 2 - A bit more work, but it'll get a nice toolbar button:
- Copy the 'SetLoop.nk' file to some location on your computer that your init.py is pointing towards.
- Go to your '.nuke' folder and open (or, if it does not exist yet, create) the 'menu.py' file.
- At the end of that file, append the following text:
pluginpath = '/enter/the/full/path/to/SetLoop.nk'
nuke.menu('Nodes').addCommand('SetLoop', 'nuke.createNode(' + pluginpath + ')')
To make the init.py point towards a folder, add this to the init.py file (create it if it doesn't exist):
Option 3 - Using plugin loader for nuke (NukeShared):
- Go to maxvanleeuwen.com/nukeshared and download/install the NukeShared script (which will automatically load plugins when they're in your chosen plugin folder).
- Place 'SetLoop.nk' in your custom plugin folder and start Nuke.
See my website (maxvanleeuwen.com/setloop) for more information and downloadable examples!
Fixed expression relinking issue
Added warning when backdrop is not found, removed Nuke version check
Tested on Linux
Added more types of variables to the 'Constants' tab
Added new method for looping ('parallel'), fixed compatibility with Nuke 11 (pyside2), added stats.
Fixed a bug, cleaned UI, better tooltips.