From dbf02e266f106c22e43c457705d0cb10acce5411 Mon Sep 17 00:00:00 2001 From: Kayla Man Date: Thu, 11 Jan 2024 21:10:13 +0800 Subject: [PATCH] create camera node with Camera4 instead of Camera2 in Nuke 14.0 --- openpype/hosts/nuke/api/lib.py | 17 +++++++++++++++++ .../hosts/nuke/plugins/create/create_camera.py | 5 ++++- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/openpype/hosts/nuke/api/lib.py b/openpype/hosts/nuke/api/lib.py index 88c587faf6..785727070d 100644 --- a/openpype/hosts/nuke/api/lib.py +++ b/openpype/hosts/nuke/api/lib.py @@ -3483,3 +3483,20 @@ def get_filenames_without_hash(filename, frame_start, frame_end): new_filename = filename_without_hashes.format(frame) filenames.append(new_filename) return filenames + + +def create_camera_node_by_version(): + """Function to create the camera with the latest node class + For Nuke version 14.0 or later, the Camera4 camera node class + would be used + For the version before, the Camera2 camera node class + would be used + Returns: + Node: camera node + """ + nuke_version = nuke.NUKE_VERSION_STRING + nuke_number_version = next(ver for ver in re.findall("\d+\.\d+", nuke_version)) + if float(nuke_number_version) >= 14.0: + return nuke.createNode("Camera4") + else: + return nuke.createNode("Camera2") diff --git a/openpype/hosts/nuke/plugins/create/create_camera.py b/openpype/hosts/nuke/plugins/create/create_camera.py index b84280b11b..be9c69213e 100644 --- a/openpype/hosts/nuke/plugins/create/create_camera.py +++ b/openpype/hosts/nuke/plugins/create/create_camera.py @@ -4,6 +4,9 @@ from openpype.hosts.nuke.api import ( NukeCreatorError, maintained_selection ) +from openpype.hosts.nuke.api.lib import ( + create_camera_node_by_version +) class CreateCamera(NukeCreator): @@ -32,7 +35,7 @@ class CreateCamera(NukeCreator): "Creator error: Select only camera node type") created_node = self.selected_nodes[0] else: - created_node = nuke.createNode("Camera2") + created_node = create_camera_node_by_version() created_node["tile_color"].setValue( int(self.node_color, 16))