Skip to content

BenMcEwan/nuke_public

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

Remove the "Soften Core" feature, which was excessively boosting highlights and largely not helpful.
f7553f4

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
August 10, 2023 10:52
May 18, 2022 16:15
November 5, 2020 22:50
May 18, 2022 15:56

nuke_public

Ben McEwan's Gizmos & Python Scripts for Nuke.
Learn more about GitHub with my GitHub for Compositors course.

Table of Contents


Gizmos

Breakdownerizationer

A tool to automate the creation of simple breakdowns in Nuke. No bloated features, just does what it says on the tin.

Usage Notes:

  • Currently only supports pre-rendered layers.
  • Breakdown types include:
    • Wipe Left-to-Right
    • Dissolve
    • Slide Layer In, Top-to-Bottom

Cloudtastic

A light-weight, element-based atmospheric fog box scriptlet.

Usage Notes:

  • See "Usage:" notes on CLOUDTASTIC_CONTROLS NoOp (pictured below)
  • Expects atmospheric fog or cloud elements from your elements library.
  • Trades off having heavy animated particles for randomly scattered sprites, which are frameheld for speed.
  • ScanlineRender node outputs deep data so you can use in conjunction with deep renders, but please note:
    • If your camera flies through elements, they will pop on/off as the particles are just simple cards. Cloudtastic has a "kill area size" to prevent this, or you can use DeepCropSoft to fade them on/off as they move closer.
    • If you have a deep render that moves through Cloudtastic's space, you may also see popping as it travels through the particles. As Cloudtastic is a light-weight hack, the best way to deal with this is to use a normalized depth pass (0 - 1 range), and mult it into the output render of Cloudtastic. While not 100% accurate, is it usually close enough when you need a quick solution!
    • If you need more accuracy, buy your FX department a beer to render true, deep volumetrics! :)

DeepMerge_Advanced

Like the DeepMerge node, with an option to soften the blend point.

bm_CameraShake

A replacement for Nuke's default camera shake node. Offers more control over 3 different frequencies of camera shake, and also shakes the centre-point, giving more detail to sub-frame motionblur. Also has options for how to deal with edge-of-frame pixels, so pushing-in isn't always your best option anymore!

bm_CurveRemapper

Useful for remapping arbitrary animation curves, such as those from the CurveTool. Automatically detect an animation curve's min & max values, then remap them to new min & max values.

bm_EdgeMatte

A simple gizmo to create an edge-outline from an existing rotoshape/matte.
(there are plenty of newer gizmos like this one with different features. If you have a better one, please let me know!)

bm_OpticalLightwrap

Like bm_OpticalGlow, this adds exponentially-increasing blurs together to produce a more optically-correct, natural lightwrap.

bm_MatteCheck

A simple gizmo to help QC roto and keys, by overlaying a transparent colour, viewing a premultiplied image over grey or a checkerboard (for light and dark values).

bm_NoiseGen

Generates a random noise curve based on a minimum, maximum & frequency value.

bm_OpticalGlow

Adds exponentially-increasing blurs together to produce a more optically-correct, natural glow.




Python

bm_AutoContactSheet.py

Powers up Nuke's default contact sheet with features such as:

  • Automatically lays out your images to maximize screen coverage, with no gaps.
  • Automatically labels what each input is.
  • Automatically sets its own resolution, based off your Project Settings' format.
  • Adds a User knob for easy resolution scaling in case you want more detail, or more speed.
  • Adds a few controls to adjust our automated text nodes.

Click here for a tutorial on how I made this.

bm_DefaultBackdrop.py

Adds better backdrop node defaults & presets. ALT+B is the shortcut, or you can use the menu to grab a specific colour.

bm_CurveUtilities.py

Adds some handy animation shortcuts to a knob's right-click menu:

  • FrameHold animation.
  • Set this frame as reference frame.
  • Remap values between 0 and 1.

bm_EnableTrackerTRS.py

Adds a META+T hotkey to enable all T, R & S checkboxes in a selected Tracker node.

bm_JumpToKeyframe.py

Map Up and Down arrow keys to jump between next & previous keyframes.

bm_MultiIBK.py

Creates the usual IBK setup with 6 expression-linked IBKColour duplicates.

bm_NodeComment.py

Adds META+C shortcut to create a node's label, so you don't waste valuable clicks opening a node and switching to the Node label.

bm_NodeSandwich.py

Sandwiches selected node between two nodes (like an unpremult/premult, or lin2log/log2lin conversion).

  • CTRL+SHIFT+L creates a Log2Lin / Lin2Log sandwich.
  • CTRL+SHIFT+P creates an Unpremult / Premult sandwich.

bm_NukeColourConverter.py

Convert Nuke's hex colour to easier web-based hex, or RGB integer based off the colour sliders we're used to using in Nuke.

bm_OperationSwitcher.py

CTRL+ALT+S toggles a Merge node's operation between over/under, mask/stencil, plus/from, etc.

bm_PulldownKnobCycler.py

PGUP and PGDOWN cycles through operation and channels knobs on any selected node.

bm_QuickKeys.py

Adds an easy way to set on/off keyframes on mix knobs & switch nodes.

  • META+, sets the current frame "on", and the previous frame "off".
  • META+. sets the current frame "on", and the next frame "off".
  • CTRL+META+, sets the current frame "on", and both the next & previous frames "off".
  • CTRL+META+. sets the current frame "off", and both the next & previous frames "on".
  • META+/ opens a dialog box to manaully set a first frame, last frame, and a fade duration with values other than 0 or 1.

bm_ShuffleShortcuts.py

Creates shuffle node shortcuts for shuffling a single channel to all other channels.
Note: Currently uses the old Shuffle node...

bm_SmartMerge.py

Upgrades Nuke's default m hotkey to be context-aware:

  • If a set of 2D nodes & Deeps are selected, create DeepRecolor nodes.
    • If you have multiple sets of Reads & DeepReads selected, SmartMerge will hook the pairs up based on how similarly the filenames of the Reads & DeepReads are named.
  • If only Deep nodes are selected, create a DeepMerge node.
  • If a ScanlineRender node is selected, intelligently choose whether to Merge or DeepMerge depending on other nodes that are selected.
  • If only 3D nodes are selected, create a Scene node.
  • If only 2D nodes are selected, or if nothing is selected, create a vanilla Merge node as per usual.

bm_Smoothie.py

Easily smooth curves in Nuke's curve editor. Currently only supports single knobs (e.g. multiply that hasn't been split into RGBA knobs, mix knobs, etc.).
Click here to read a tutorial on how this was created, and how to programatically edit animation curves in Nuke.

bm_SwapInOut.py

Easily fix scripts that use in & out, instead of mask & stencil.
If you do this, Conrad Olson's video is required watching.

bm_ViewerToggle.py

Adds ALT+Q shortcut to toggle viewer exposure & gamma between custom value and default.

bm_netCopy.py

Share a selection of nodes with other users on the same network.
Say goodbye to copy/pasting lines of text via IM or Email!