Shake to Nuke, a transition guide - Part I: The Interface

Written by Ivan Busquets on .

Changing a piece of software you work with on a daily basis can be a frustrating experience at first. If you come from a Shake background and have decided it's time to dive into Nuke, here's a small guide that will hopefully help you quickly get past some of the differences between the two softwares, and start benefiting from the multiple advantages Nuke has over Shake.

Please note thet this guide is just a compilation of information I consider useful for people who are making the switch from Shake to Nuke.  It won't cover in depth the in-and-outs of Nuke, and if you're trying to learn how to use Nuke properly I would strongly recommend reading the Nuke User Guide and having a look at the tutorials available at The Foundry's website.

To follow some sort of structure, the guide will be split in 4 sections: Part I - The Interface, Part II - Color Management, Part III - Data Flow and Part IV - Operators(nodes).

1 - The Interface


Starting in Nuke v5.0, a lot of effort has been put into the interface to bring it closer to Shake without compromising one of the main advantages of Nuke's UI: speed.

The following points are a description of the key areas of Nuke's interface, and outline some of the differences with Shake's interface.



1.1 - Layouts


Nuke's default layout is quite similar to Shake's. A 3-way split screen (instead of 4-way split in Shake) exposes the Viewer, the DAG or Node Graph (Node View) and the Properties Pane (Parameters). A thin toolbar running along the left edge of the UI provides access to all Nodes.


Interface1

However, this is just the standard layout. Nuke provides up to 6 predefined layouts that can be further customized to better suit your needs on different tasks (roto, grading, animation…). I strongly recommend you explore the UI customization possibilities in Nuke to make an interface you feel comfortable with. This, along with the snappiness of the UI, are two of the features in Nuke that can make your transition from Shake a lot more pleasant than you thought.

Layouts

Example of different layouts in Nuke

 

1.2 - The Viewer



Coming from Shake, one of the first things you'll need to get used to (but will soon start to like better) is the way to load images into the viewer, and the concept of multiple viewer buffers.

Nuke's User guide has a very good section covering the Viewer, its options, and all the info you can get from it.

There's also a great set of videos by Ben Minall on The Foundry's website covering everything about the Viewer:

http://www.thefoundry.co.uk/articles/2009/12/16/74/nuke-general-ui-the-viewer/

But for the purpose of this guide, and assuming you are familiar to how the Viewer works in Shake, here's a few things you'll need to know to get you started with Viewers in Nuke.

Nuke lets you create multiple viewers, with up to 10 buffers for each viewer.

Viewers

 

To load something into the viewer, just select the node in your tree you'd like to view, and press one of the numeric keys (0-9) to assign that node to a buffer in the active viewer. For example, pressing 1 will load your node into buffer number 1 of the active viewer. Pressing 2 while having another node selected will load this new node into buffer number 2, etc. You can then easily switch between buffers by pressing any of the numeric keys while having your mouse cursor in the viewer area.

Note: Just like Shake, Nuke is context-sensitive for keyboard inputs. That is, some hotkeys will have a different behaviour depending on where the cursor is in the interface. In this case, the numeric keys will 'set' the desired buffer when the keyboard is inside the Node Graph, and will 'switch' the viewer to that buffer when pressed while the cursor is on top of the Viewer.

 

Multiple viewers, up to 10 buffers per viewer

Once again, to find out about all the options in the Viewer window, I recommend reading the 'Viewers' section of the User Guide, since it's very clear and detailed. There are, however, a couple of things worth of mention here: the exposure/gamma controls, and the ViewerProcess dropdown.

If you've ever used gammaslamma with Shake, the exposure/gamma controls in the Viewer are just the same thing. It's a fast and convenient way to tweak the output values for viewing purposes only (it will not affect the data when rendering).

expgamma

Exposure and Gamma controls in the Viewer

ViewerProcess is another colour transformation process that affects the Viewer only. It is the equivalent of a VLut in Shake, and it is most commonly used to take care of colourspace conversions for viewing purposes (Linear to sRGB LUT, 3D LUTS...). Please refer to Part 2 of this guide (Data Flow) for some further details on the ViewerProcess.

Unlike Shake, though, both the ViewerProcess and the exposure/gamma controls in the Viewer will usually be processed in the GPU instead of the CPU, making it a much faster process. There are some exceptions, like when the monitor output is enabled or gl buffer depth is set to byte in the Viewer settings, in which case it will use the CPU to do the calculations. But in most cases, the feedback of both changing your ViewerProcess or the exposure/gamma controls should be really fast.

 

To finish with the Viewer, here's a few tips on how to replicate some common Shake habits when comparing 2 images:

  • If you're used to comparing different channels of the 2 buffers available in Shake. Unlike Shake, pressing R, G, B or A in the viewer will change the visible channel for ALL the buffers in that viewer. If you want to change the visible channel for each buffer individually, you can do so by doing Shift + R, Shift + G, Shift + B or Shift + A instead.
  • If you ever used A and B buffers in Shake to compare the RGB vs the alpha channel of the same node in the tree, you now have a very convenient shortcut in Nuke to view the alpha channel as a red overlay on top of your RGB data. Just press 'm' to toggle on and off the overlay mode.
  • Looking for the little "C" to wipe between 2 buffers? Nuke has a viewer handle for wipes that can be turned on and off. Just press 'w' while in the Viewer wndow to toggle the handle on and off. You'll see Nuke's wipe is a bit more powerful too! (ability to rotate the wipe line, move it freely around the image, fade control...). Ever hated having to re-assign A and B buffers in Shake? You can now just rotate the wipe, or hit 'Enter' to swap the 2 inputs in the Viewer.

 


1.3 - The DAG (Node Graph)


If you've been using Shake or any other node-based compositing package, the DAG or Node Graph should look fairly familiar. There's not a lot that needs to be un-learnt if you come from Shake, and you should find yourself getting used to it in no time.

To start getting used to Nuke's Node Graph, the following link has a couple of video tutorials by Ben Minall that cover the basics of Nuke's Node Graph, including navigation, different ways to create nodes, and how to read Nuke's flowcharts/scripts.

http://www.thefoundry.co.uk/articles/2009/12/16/75/nuke-general-ui-node-graphs/

 

•    Keyboard Shortcuts

The Node Graph is probably the area of the interface you will spend most time interacting with, so it's important you spend some time to get comfortable navigating it (see video tuts above) and start saving you some time by lesrning some the most common shortcuts. You can find all shortcuts looking at the contextual menus (in the DAG and everywhere else in the GUI), but here's a few you might be used to using in Shake that have a different shortcut in Nuke.

  • Ignore / disable selected Node(s) ('i' in Shake, 'd' in Nuke)
  • Insert a node between an existing connection ('n' in Shake 4.1, automatic in Nuke)
  • Thumbnail / Postage Stamp ('t' in Shake, Alt + 'p' in Nuke)
  • Extract a node from the tree ('e' in Shake, Ctrl + Shift + 'x' in Nuke)
  • Swap A/B inputs (does not exist in Shake, Shift + 'x' in Nuke. Very useful on Merge nodes)
  • Connect multiple nodes to multi-input node (Select source - Shift-click desttination in Shake, Select Source - select destination - Shift-Y in Nuke. Also worth noting that for nodes with mutiple inputs you can select your sources first, then create the node, and it will automatically connect all nodes you had selected)


In general, Nuke makes use of keyboard shortcuts a lot more than Shake. So get used to keeping one hand on the keyboard at all times;
using keyboard shortcuts is guaranteed to save you a lot of time.

Other shortcut tips:

  • Shortcuts can also save you time adding nodes to the node graph. One of the fastest ways to add nodes is by hitting the Tab key on the node graph and typing the name of the node you want to add. As soon as you start typing, a list will be shown with different nodes which name begins with what you've typed so far. You can then choose from that list to quickly add the desired node. In most cases, tab + two or three letters from the node you want should be enough to let you choose from a small list.
  • Some of the most frequently used nodes have keyboard shortcuts of their own. R for read, W for write, G for Grade, T for transform, B for Blur are just a few of them. Check them out and get used to them to add those nodes even faster.

 

•    Node clones:

Here's one feature that might be confusing for Shake users at first. The way cloned nodes work.

In Shake, you can make a cloned copy of your node (Ctrl+C / Ctrl + Shift + V), and you effectively get a "child" of the original node, or a node that references all its values from the original node. In practice, that means that changing the parent's values affect the child, but not the other way around.

In Nuke, a cloned node (Alt + K) is actually a real clone, with no hierarchy between nodes. Both clones are equivalent, and changing one changes the other. You can have multiple clones of the same node, and they will all still be interchangeable. This is convenient when you want to apply the same transformation/grade/etc to multiple parts of your tree, but don't want to have to go back to editing the master/parent node. Instead, you can edit any of the clones.

However, there's times where a parent-child relationship is desired. The next section of this guide (Properties Pane) explains how to link knobs so a node(child) can reference another(parent). For now, it's important to know how to identify cloned nodes and referenced/linked nodes. Look at the screenshot below and see how clones are shown with a straight line, whereas links (as in Shake) feature a line with an arrow showing the hierarchical direction (parent-to-child).

clones

Cloning vs linking/referencing

 

You'll probably notice that, in the case of referenced/linked nodes, the direction of the arrow is the opposite of what it is in Shake. In Shake, one can read the the arrow as 'CHILD taking values FROM parent'. In Nuke, the arrow represents a PARENT feeding values TO a CHILD. As a former Shake user, I have to admit I still prefer Shake's representation better (easier to follow arrows to a parent node). However, since childs have the little (E) (for Expression) icon on the lower-right corner of the node, it's easy to see which node has an expression in it, and therefore is the child.

 

shakeVsNukeClones

Nuke vs Shake expression links representation in Node Graph


1.4 - Properties Pane


This is an area where, coming from Shake, things can seemingly get cluttered. In Shake, you have 2 tabs where you can load node parameters to: Parameters 1 and Parameters 2. In Nuke, the Properties pane can hold the properties of multiple nodes at the same time. The default limit is set to 10, although you can easily change that, either during the session by editing the maxPanels box on the top left corner of the Properties Pane, or changing it in Preferences... / Control Panels / max nodes in Properties bin.

maxPanelsChanging "maxPanels" to limit the number of node controls that can be loaded simultaneously


Just like in Shake, whatever you have loaded into the Properties Pane will make its on-screen controls visible too (if the node has such controls). This is one of the reasons why some people do not like having too many nodes open in the properties pane, since the viewer can easily get cluttered with multiple on-screen controls showing all at once. To avoid this, you can either close a few nodes from the properties pane, or set its limit to a lower number, or turn on a setting to "expand/collapse panels in Properties bin to match selection", which you can find under "Preferences.../ Control Panels". This setting will collapse the properties (and hide the controls) of all nodes loaded in the properties pane, except for the nodes that are selected in the Node Graph.

•    Copying / linking values between knobs:

There's different ways you can copy values betweens different knobs/nodes in Nuke, and they're all quite similar to the way you would do it in Shake.

Right-clicking on a value (or left clicking on the Animation menu knob on the far right of every animatable knob) reveals a context menu offering different options to deal with the animation of that knob. We're interested in the "Copy" submenu.

copyValues

The Copy submenu reveals three different ways to copy data from the knob:

  • Copy Values: copy the value of the knob (or multiple values if it's a knob with more than one field, like a 3d position knob) for the current frame.
  • Copy Animation: copy the animation curve of the knob if it's animated. Would be the same as copying the whole string describing a Hermite, Linear, Jspline, etc animation curve in Shake. If pasted into another knob, it will create all the keyframes as per the original.
  • Copy Links: copy a reference to this knob. Pasting it will fill the new knob with a link/reference expression.

 

 The same operations can be achieved by drag-and-dropping between two knobs. In this case, the ability to have multiple nodes open in the Properties pane becomes very convenient.

dragNDrop2

Drag from the animation menu icon of the source knob, and drop either onto the animation menu of the destination knob, or directly over the value field of the destination knob.

To replicate the three ways of copying/referencing data between knobs, use the following combination of keys while drag-and-dropping:

  • Drag and drop only: Copy Values
  • Shift + Drag and drop : Copy Animation
  • Ctrl + Drag and drop : Copy Links

 

For expression linking, you can also manually type in an expression by choosing 'Add expression...' from the Animation Menu of the knob (or using the '=' key shortcut while having your cursor inside the knob's field value. The syntax for expression linking is the same you would use in Shake (nodename.parametername)

expressionLink

And of course, just like in Shake, you can use this reference to the original knob's value in more complex expressions. Have a look at the User Guide's "Adding Mathematical Functions to Expressions" section for a list of functions you can incorporate into Nuke expressions.


1.5 - Curve Editor


The curve editor in Nuke is definitely a step up from Shake's.
Working with it won't feel too different from working with Shake's curve editor, but it's a lot friendlier and most of the times faster to work with.
The first improvement you'll probably notice is it's easier to choose what curves you want to look at when you have multiple curves loaded. A list to the left of the curve editor shows all animated nodes that are loaded in the Parameters Pane. For each node in the list, there's a sub-list of all animated knobs/parameters within the node. Thanks to this list, it's very easy to choose to look at all animated curves in a certain node, or for individual curves of different nodes.

curveSelection

Curve editor shows a hierarchic tree of nodes & knobs to show their curves

 

Interacting with keyframes in the curve editor is a bit more flexible than it is in Shake. However, it's easy to get frustrated when things don't work exactly the same way you were used to. Here's a brief list of common operations you might be used to doing in Shake, and how you should approach them in Nuke's curve editor.


•    Editing a single keyframe:


⁃    Locking the movement to the X/Y axis when moving a single keyframe


In Shake, you have a button (or the x/y shortcuts)  to lock the movement of a keyframe by drag-and-dropping it, so you can move it only horizontally (along the x axis), or vertically, along the y axis. Some Shake users find this feature missing in Nuke but, in fact, you can get exactly the same behaviour. It's just that there's no button for it. By default, when drag-and-dropping a single keyframe, the movement along the graph will lock to the axis you started dragging along. So, if you drag a keyframe horizontally (that is if you move your mouse/tablet more horizontally than vertically), it'll stick to that, so you can't accidentally change the value of the other axis. If you want to 'freely' move a keyframe along both axes, hold the Ctrl (Command) key while dragging the keyframe.


⁃    Typing in values to modify a keyframe


In Shake, while having a keyframe selected, you could type a value under the "key" or "value" parameters in the curve editor to change the frame it's located at, and its value. In Nuke, you'll have to click on the keyframe (having it selected is not enough) and you'll get the pair of values that define the keyframe right next to it. You can then click on top of either of those values (x and y) and edit them by typing a new number.

punchValue

Clicking on a keyframe reveals its two values. They can then be clicked on to manually change the value

 


•    Editing multiple keyframes:


⁃    Typing in values to modify multiple keyframes


If you need to manually type a value for multiple keyframes, you can do so by selecting the desired keyframes, then right click to bring up the contextual menu, and then choose "Edit->Move…". A small panel will pop up allowing you to set x, y and slope values for all selected keyframes

editMove

Assigning a value to multiple keyframes

⁃    Locking the movement to the X/Y axis when moving multiple keyframes

This is similar to editing single keyframes, but you get an additional visual cue to let you see when you'll be moving keyframes horizontally or vertically. Click + drag over the keyframes you want to edit, and you'll get a box enclosing them all. At the centre of that box, you'll find a crosshair. Moving the cursor over the crosshair should change the shape of the cursor. If you're close to the centre of the crosshair, the cursor will indicate that you're about to perform a 'free' move, not locked to either of the axis. As you go over either of the ends of the crosshair, the cursor will indicate whether you're about to move the selected keyframes horizontally or vertically.
⁃    Scaling a curve/multiple curves


In Shake, there were two common ways to scale an animation curve. You could either select keyframes while holding the 'b' key to draw a box around them and then move or scale them by dragging the box from the centre or at its edges. Alternatively, you could use expressions to multiply the whole animation curve by a certain value. Both methods are still valid in Nuke, but it's easier/faster to access them.

To scale a curve or multiple curves, just select the whole curve (or a bunch of keyframes). No need to hold down the 'b' key. From there, you can proceed just like in Shake to move or scale the curve/selected keyframes.

curveBoxControlsCursor-sensitive areas for Scaling, Move in X and Move in Y controls


To use an expression to scale a curve, you can choose "Edit expressions…" from the animation menu of whatever knob you want to operate on, and type the expression there. However, if you're already working in the Curve Editor, there's a convenient shortcut to do that. Just select the curve you want to add an expression to, and it will become active in the expression field right at the bottom of the Curve Editor Pane.
The default value "curve" refers to the whole animation curve. So, to scale the curve by a factor of 2, you'd just type "curve*2".

Just like in Shake, expressions will also let you add an offset to the curve, and are a very powerful way to perform all sorts of modifications to it, or gather information from different points of the curve.

If you want to check some examples on some more advanced ways to modify a curve using expressions, please visit this other tutorial.

http://www.nukepedia.com/expressions/use-of-expressions-to-modify-animation-curves/

 


You have no rights to post comments

We have 2491 guests and 134 members online