Johannes Masanz

CONTACT

Nuke Scripts


The following Nuke tools can be downloaded for a small donation of 6€.

Most of these were created in Nuke version 9 and work until version 12. If you purchase this package now you will receive an update as soon as one is available, very likely close to the end of 2022.

NukeScripts.zip on Gumroad



Anamorphic Flare

I started to develop this flare for Nuke during a scify project at Mackevision. Since then it has become recognised and often re-used to create certain looks.

The node has exposed controls for tweaking the underlying noise patterns, distortions and to adjust its quality for a faster preview.

Also check out this breathtaking reel of a more recent project by Mackevision. At 0:50 it shows subtle but perfect use of the anamorphic flare:



Remove Edge

This tool demonstrates a cool way to remove edges without affecting the overall texture of an image too much.

The way it works is by blurring the image equaly in x and y and in a second step reapplying structure only containing detail in one of the two axes.

To make this principle work with edges that are not aligned with x or y, the image is being rotated into place before the effect and rotated back the same amount after.

Included in the download are two examples and a group node with a builtin supersampling option for even cleaner results.



IBK Luma Keyer

This is an example on what I call the 'IBK Luma keyer' : ) It requires two rough rotos (core and outside matte) and can generate very accurate results.



Merge under Over

Sometimes when having to integrate a middle ground element into a plate with fg and bg objects it can get a bit messy. So here is my favourite method on how to do this. As always file paths are relative in this demo file for easy use.



Autolife on Roto Shape

The original script was created by Dylan Palmbloom. (www.nukepedia.com/python/misc/autolife)


What it does:

Lets you automatically set the lifetime for roto shapes to their first and last keyframes.


What I further improved:

Instead of having to lock shapes and then running the script for all locked shapes: Now a shortcut runs the script for all selected shapes, no matter what their attributes are.


How to use it:

With a roto node selected: Press Alt + L

Just copy / integrate the .py files to your .nuke folder.



Edge Extend

How to use:

- First tweak the alpha to define the edge to extend from.

- Then, using multiple steps, extend the colour outwards.

- To preserve edge detail, start with small values for the first pass and increase them slightly with every next step.

- To soften the transitions between steps every pass has an erode slider.


I am using the same technique to extend the IBK colour output and added inputs to 'add' or 'stencil' parts of the 'original' plate.

I also included my edge stretch tool, which - as the name suggest - warps pixels instead of blurring them outward.

It should be said that edge extending or stretching is destructive (edge detail can get lost) and should only be used for keying as a last resort. Always try fixing edges with a good despill fisrt.



Despill to Color

You can find this tool and more documentation on Nukepedia:

www.nukepedia.com/toolsets/colour/despill-to-color



What it does: Jumps to a defined frame in the timeline.

How it works: Select one of the following node types and press shift+f:

- any node with a frame number in its label

- stickyNote with a frame number

- frameHold

- tracker (jumps to reference frame)

- retime Tracker (see retimeTracker) Jumps to source frame before retime.

One little extra: The frame number in the framehold and the default text in the stickyNote label now default to the frames they are created on.

If you would like to be even faster, you can use the shortcut Alt+N to create a SticlyNote. I often use that to remember certain frames and to be able to jump back and forth using the shortcut :)



STmap with overscan

As basic as it is, not all studios have it and sometimes it even happens to me that I don't remember the expression exactly, so I put this up here for later reference.

In my download i combined the top three nodes to a group with a format option and an overscan knob.



Change Values

This lets you define a knob and a value that gets applied to this knob for all nodes that can be filtered by selection, node class and their label. It also offers a handy way to assign labels and to select nodes by the same filters.



Auto Crop

What it does:

- Adds the foundry's AutoCrop script to the menu bar.

- Offsets existing values and animations to grow or shrink the crop box.

grow: alt+=

shrink: alt+-

I like to have the Autocrop command more accessible. Growing the box is useful if you want to do just minor tweaks on an element that was alredy autocropped and make sure that it still fits the boundaries without having to redo the Autocrop. In other words, this just lets you add some padding to have a safety area.

Just copy the .py files to your .nuke folder or attach their contetnt to your already existing ones.



Dir Blur

I am not up to date if the foundry changed the directional blur node in their latest version but I have always been unhappy about a missing function to blur both ways from a center point. (like the 'center' option for motionblur in a transform node)

This one only offers a linear blur but bahaves more like expected.



Card to Bbox

This python script resizes a card in 3d space to fit the bounding box of its input, without moving the existing texture in space.

This can be useful in two scenarios:

1. When a card is unnecessary big; scaling down to just fit the bbox.

2. When you realise that a card is too small and needs to be extended without changing the existing texture in space. This is similar to a show overscan function but now available for a card.

If the boundingbox is animated, the maximum bbox values for each direction will be used.



Ik Rig

Here is a script in which I created a simple rig with an IK handle.



Paste to Nodes

What it does: Paste one or multiple nodes to all selected nodes.

How it works: ctrl+shift+v

Copy the .py files to your .nuke folder or add its content to your already existing py. files.



Rolling Shutter

This lets you remove or add rolling shutter based on a motionvector.

Because it is hard to generate a detailed motion vector or information about how the camera is moving in between frames, this basic technique works better for fast and fluid movement rather than for shaky footage with little and high frequent motion.

In this example file paths are set relative for easy use.



World Position to Depth Mask

This is an experimental sample script on how to use a worldposition pass and a camera to create depth passes and mask out rendered elements. It also shows a solution for rendering depth with smooth gradients in semi transparent areas.

In this example I rendered a ground with displacement in Modo and positioned a tree in Nuke's 3d space. The tree is correctly masked out where the surfaces meet.

What it does is calculating the distance from both worldpositions to camera and generating a matte based on which one is closer to camera. All you need to make this work are two images with a pointposition pass and a camera. (example files are included.) I used wordpositions instead of depth values because these are more consistent across software packages.

There are controls for fading out the mask where two surfaces meet and contact shadows.

I spent some more time to get this to work with multiple 3d objects and transparent depth gradients between them for the haze layer:



Roughen Edges



SplineWarp Saver

There is a known bug in the splineWarp node, that causes the 'root_warp' knob to lose its values and animations everytime you close Nuke.

As a workaround I created a node that saves all values and animations and (if you choose to) reapplies them everytime you open the nuke script.

When 'setOnScriptSaveAndLoad' is clicked, the project properties 'onScriptLoad' and 'onScriptSave' (located in the python tab) get changed so that the 'apply' and 'save' buttons are executed automatically whenever you save and load the script. Be carefull though in case these project settings are already beeing used by other pipeline tools!