The beginning of my Compositing career started with After Effects, and while I’m now living and breathing Nuke, there’s one thing I still miss — the ease of use of After Effects’ animation tools.

Coupled with a recent fascination with bezier curves, I decided to set out and see if I could bring the most basic functionality from After Effects, “easy ease”, into Nuke, with a way to control the smoothness of that curve.

To start out, I wanted to explore what was already possible. Selecting a keyframe and hitting “h” on your keyboard changes the keyframe type to “horizontal”. If you do that on the first and/or last keyframe of a curve, you get a smooth ramp in/out. However, if it’s not easing enough, grabbing one of the handles and trying to adjust the curve quickly results in frustration.

Continue Reading "Programmatically editing animation curves in Nuke."

Using TCL expressions in Nuke can help us to evaluate mathematical operations, as well as link values together to create something new. However, an often forgotten feature in Nuke is the ability to add expressions to RotoShapes and Paint strokes (which are also splines under the hood).

Nuke’s built-in “Tracker linking dialog” (pictured above), helps us to link individual vertices to various things in a Tracker node, and is doing so by automatically adding TCL expressions for us! However, what if we wanted to link things the other way around?

Continue Reading "A simple tutorial on using expressions with Paint Strokes."

This has been a feature since Nuke 11.3v1, but I had no idea it existed until recently! In Preferences > Node Graph, there is a setting that enables a warning on a node when its bounding box is larger than a certain preset threshold. When enabled, the erroneous node will display a thick red border with a black dotted line around it; any downstream nodes that carry the large bbox will only display the black dotted line.

If you haven’t already, I recommend periodically switching this feature on and paying attention to any warnings that show, to ensure your Nuke scripts remain speedy and efficient! Although once you’ve optimized your bboxes, I would advise turning this feature off again, as it automatically processes every node every time you change frame, and can cause dramatic UI slowdowns on larger scripts…

Additionally, think about some knob defaults you can set on certain nodes to ensure your bbox stays small.
(e.g. create a shortcut that creates a Merge node, sets its ‘operation’ to mask and it’s bbox to A)

Lastly, with any node selected, you can run nukescripts.autocrop() in Nuke’s Script Editor to automatically reduce the size of your bbox to its optimal size.

Thanks to Conrad Olson for the tip!

When integrating CG characters into a plate and something seems not-quite-right, the first solution I look towards is adding more occlusion shadows, often referred to as “Ambient Occlusion”. Occlusion shadows help ground our CG characters and really connect them with the environment & live-action characters around them.

Most physically-based render engines are capable of rendering occlusion shadow AOVs, which are quite accurate when given photometric lights, but sometimes mathematically real and visually real isn’t the same thing…

Continue Reading "Create your own Ambient Occlusion in Nuke, using RayRender."

Unless you’re Compositing at Weta, Nuke’s Deep tools are quite barebones and don’t allow much flexibility. An issue I have commonly encountered is a lack of image filtering when DeepMerging two Deep images together, which causes crunchy edges. You could correctly argue that this comes from a lack of deep samples in rendered images, but this is often necessary…Continue Reading “A hack to filter DeepMerge operations.”

HTML is a programming language designed to view documents or websites in a web browser, although we can make use of it in Nuke to add some extra style to our nodes, gizmos, etc.

The aim of this article isn’t to teach you HTML, as that would be rather convoluted for what you need to know, but instead, I’ll share some easy snippets of code that will help you inside of Nuke!

Continue Reading "HTML in Nuke"