Nuke 10 vs Nuke 11

Differences between Nuke 10 and Nuke 11 for Artists

Some differences I've found between Nuke 10 and Nuke 11

In this short article, I don't want to talk about the new features The Foundry introduced in Nuke 11.
But I want to collect some differences I noticed between Nuke 10 and Nuke 11.





Corner Pin

I would like to start with the CornerPin node. In Nuke 10 and Nuke 11 it's the same node, with just one difference: the name of a knob

If you create the CornerPin in these two versions, you will notice that the real name of the button "Copy from" is:

  • Nuke10: "copy_from_to"
  • Nuke11: "copy_from"

Nuke 10 vs Nuke 11: Differences for Artists - Corner Pin


Of course, you can switch versions without any problem, but if you create a gizmo where you pick this knob, you will get an error. Here I'm trying to open the CornerPin_auto gizmo, created in Nuke 11, with Nuke 10. The other way around is basically the same.

Nuke 10 vs Nuke 11: Differences for Artists - Corner Pin


That's why I created two versions of this gizmo: the first one for Nuke <= 10 and the other one if you are using Nuke 11:

Nuke 10 vs Nuke 11: Differences for Artists - Corner Pin


You can always use this code in TCL and Python to check which version of Nuke you are opening. This is the easiest solution I've found to avoid the problem in your gizmo:

#GET NUKE VERSION. USE PYTHON IN EXPRESSION
[python {nuke.thisNode().knob(\'rotate\').value()}]
[if {[python nuke.NUKE_VERSION_MAJOR]<10} {return [11]} {return 10}]
[if {[python nuke.NUKE_VERSION_MAJOR]<10} {return "CornerPin2D.copy_from"} {return "CornerPin2D.copy_from_to"}]

#GET NUKE VERSION in PYTHON
if nuke.NUKE_VERSION_MAJOR < 11:
	#nuke <= 10
else:
	#nuke >= 11
	
	
#A SOLUTION
##############################################################################
#CREATE MANUALLY THE BUTTON KNOB THAT EXECUTE THE SAME FUNCTIONS OF COPY_FROM
group = nuke.thisNode()
node = nuke.toNode(group.name() + '.CornerPin2D')

node['from1'].setValue(node['to1'].getValue())
node['from2'].setValue(node['to2'].getValue())
node['from3'].setValue(node['to3'].getValue())
node['from4'].setValue(node['to4'].getValue())


Download Gizmo



Questions about this tutorial?

Write me directly: I read every message. You can also find me on LinkedIn.