From 86080b2c38534e304ff6a8f06378a2b9045272c4 Mon Sep 17 00:00:00 2001 From: BenoitConnan Date: Mon, 28 Feb 2022 15:51:36 +0100 Subject: [PATCH] Squashed commit of add_deadline_render_output_override: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit commit c22763fe04dc312a22622e739bbd78004e4a2873 Author: Jérôme LORRAIN Date: Mon Nov 22 11:54:40 2021 +0100 Apply override on AOV layer path commit cc3167bf8cd43eab56216f6d7da1badd2c3c9b96 Author: Jérôme LORRAIN Date: Tue Nov 16 16:57:36 2021 +0100 Deadline publish plugin override output option commit 6f792511a47cee78fd89d0675369ec0da02c7b3c Merge: ecae9f623 646875117 Author: Petr Kalis Date: Mon Feb 7 10:05:55 2022 +0100 Merge pull request #2634 from Ellipsanime/fix-photoshop-environement-workfiles-on-launch Fix open workfile on launch in photoshop commit ecae9f6238c887e0abfeb7a27aaca468d9357b69 Merge: 4b3834ea5 3160199b0 Author: Milan Kolar Date: Mon Feb 7 09:52:39 2022 +0100 Merge pull request #2556 from pypeclub/feature/OP-2429_Publisher-Preparations-before-standalone-publisher commit 4b3834ea50de824dcdb653d5c4bad1afa797c48c Merge: ccea53538 604a590fe Author: pypebot <82967070+pypebot@users.noreply.github.com> Date: Mon Feb 7 09:38:20 2022 +0100 [Automated] Merged release main into develop commit ccea535384555e2eca0730da8d5a4f7a448d8aeb Merge: f2a954371 a11700e1e Author: pypebot <82967070+pypebot@users.noreply.github.com> Date: Sat Feb 5 04:34:51 2022 +0100 [Automated] Merged main into develop commit 6468751179d2fa1002efa5927acaf04549bb8d6e Author: clement.hector Date: Fri Feb 4 12:11:05 2022 +0100 use env_value_to_bool instead of ast.literal_eval + os.getenv commit fe46093ada0494b745b1e8e7263bd9489dd665bd Author: clement.hector Date: Wed Feb 2 19:36:49 2022 +0100 fix test on string to boolean commit 3160199b044d63ffbc4b4d8bb3c7a852578dd355 Author: Jakub Trllo Date: Tue Jan 25 14:15:19 2022 +0100 fix grammar commit d7393646a3a084e3502dec720abbf51aba1385ac Author: Jakub Trllo Date: Tue Jan 25 13:48:18 2022 +0100 handle default value of 'is_label_horizontal' commit 7ec4d501802135fd725e5f37682bc351ca38483f Author: Jakub Trllo Date: Tue Jan 25 13:48:03 2022 +0100 precreate widget is separated from create dialog completely commit f8be5763b57af0e94b85af74ae95ba1579578349 Author: iLLiCiTiT Date: Tue Jan 18 18:05:32 2022 +0100 renamed method 'get_attribute_defs' to 'get_instance_attr_defs' commit 20f5e8fc1b2263882adec624e1b961a0308a3fda Author: iLLiCiTiT Date: Tue Jan 18 17:51:25 2022 +0100 hound fixes commit 95176b6e345e8d70a6e24c78e9bd052382b35481 Author: iLLiCiTiT Date: Tue Jan 18 17:26:16 2022 +0100 modified example creator commit 23c3bc8d0a31875da642aee0ea1298ee34e73831 Author: iLLiCiTiT Date: Tue Jan 18 17:26:09 2022 +0100 style changes of header view nad checkbox commit 2d7521289a088e4bf3f15f573be42b78ee1dd81c Author: iLLiCiTiT Date: Tue Jan 18 17:25:51 2022 +0100 ui attribute definitions are skipped for storing data commit f0b7f72325ff51a9f7cf4681c2fa81c44562d18c Author: iLLiCiTiT Date: Tue Jan 18 17:25:34 2022 +0100 creator dialog has context widget and creator's attributes commit 9c6a57aa587fe7577d9214e55311029d36e34039 Author: iLLiCiTiT Date: Tue Jan 18 17:23:37 2022 +0100 creator can define precreate attribute definitions and allowing context change commit 3878c5262a5293ed250c85a15be6aa5531da1da2 Author: iLLiCiTiT Date: Tue Jan 18 17:22:57 2022 +0100 added widgett for pre create attributes commit fffdef5030f74cb0c0428cfb657234465d2d3a09 Author: iLLiCiTiT Date: Tue Jan 18 17:22:41 2022 +0100 added publisher specific asset and task widgets commit fbdd1d8ab5cc43c5bf00ff6122e68c5aaac5f739 Author: iLLiCiTiT Date: Tue Jan 18 17:22:08 2022 +0100 moved few widgets to tools/utils and modified asset/task widgets to easily change source model commit 396bdfde8a05d37be283f4ba411debc500ee4328 Author: iLLiCiTiT Date: Tue Jan 18 17:16:32 2022 +0100 added few new attribute definitions and their widgets --- .../maya/plugins/create/create_render.py | 2 ++ .../maya/plugins/publish/collect_render.py | 20 +++++++++++++++---- .../plugins/publish/submit_maya_deadline.py | 20 +++++++++++++++++-- 3 files changed, 36 insertions(+), 6 deletions(-) diff --git a/openpype/hosts/maya/plugins/create/create_render.py b/openpype/hosts/maya/plugins/create/create_render.py index fa5e73f3ed4..38d18c71b93 100644 --- a/openpype/hosts/maya/plugins/create/create_render.py +++ b/openpype/hosts/maya/plugins/create/create_render.py @@ -174,6 +174,7 @@ def process(self): ]) cmds.setAttr("{}.machineList".format(self.instance), lock=True) + cmds.setAttr("{}.overrideOutput".format(self.instance), lock=False) self._rs = renderSetup.instance() layers = self._rs.getRenderLayers() if use_selection: @@ -265,6 +266,7 @@ def _create_render_settings(self): self.data["framesPerTask"] = 1 self.data["whitelist"] = False self.data["machineList"] = "" + self.data["overrideOutput"] = "" self.data["useMayaBatch"] = False self.data["tileRendering"] = False self.data["tilesX"] = 2 diff --git a/openpype/hosts/maya/plugins/publish/collect_render.py b/openpype/hosts/maya/plugins/publish/collect_render.py index cbddb86e534..79c7e850886 100644 --- a/openpype/hosts/maya/plugins/publish/collect_render.py +++ b/openpype/hosts/maya/plugins/publish/collect_render.py @@ -90,6 +90,9 @@ def process(self, context): return render_globals = render_instance + # Get global overrides and translate to Deadline values + overrides = self.parse_options(str(render_globals)) + collected_render_layers = render_instance.data["setMembers"] filepath = context.data["currentFile"].replace("\\", "/") asset = api.Session["AVALON_ASSET"] @@ -235,8 +238,14 @@ def process(self, context): for aov in exp_files: full_paths = [] for file in aov[aov.keys()[0]]: - full_path = os.path.join(workspace, default_render_file, - file) + if 'overrideOutput' in overrides: + full_path = os.path.join(overrides['overrideOutput'], + default_render_file, + file) + else: + full_path = os.path.join(workspace, + default_render_file, + file) full_path = full_path.replace("\\", "/") full_paths.append(full_path) publish_meta_path = os.path.dirname(full_path) @@ -380,8 +389,6 @@ def process(self, context): data["families"].append("assscene_render") # Include (optional) global settings - # Get global overrides and translate to Deadline values - overrides = self.parse_options(str(render_globals)) data.update(**overrides) # Define nice label @@ -426,6 +433,11 @@ def parse_options(self, render_globals): key = "Whitelist" if attributes["whitelist"] else "Blacklist" options["renderGlobals"][key] = machine_list + # Override Output + override_output = attributes["overrideOutput"] + if override_output: + options["overrideOutput"] = override_output + # Suspend publish job state = "Suspended" if attributes["suspendPublishJob"] else "Active" options["publishJobState"] = state diff --git a/openpype/modules/default_modules/deadline/plugins/publish/submit_maya_deadline.py b/openpype/modules/default_modules/deadline/plugins/publish/submit_maya_deadline.py index b21599f0cee..e7590722a91 100644 --- a/openpype/modules/default_modules/deadline/plugins/publish/submit_maya_deadline.py +++ b/openpype/modules/default_modules/deadline/plugins/publish/submit_maya_deadline.py @@ -158,7 +158,7 @@ def _format_tiles( return out, cfg -def get_renderer_variables(renderlayer, root): +def get_renderer_variables(renderlayer, root, override=False): """Retrieve the extension which has been set in the VRay settings. Will return None if the current renderer is not VRay @@ -179,6 +179,10 @@ def get_renderer_variables(renderlayer, root): padding = cmds.getAttr("{}.{}".format(render_attrs["node"], render_attrs["padding"])) + if override: + workspace = cmds.workspace(q=True, rootDirectory=True) + cmds.workspace(root, openWorkspace=True) + filename_0 = cmds.renderSettings( fullPath=True, gin="#" * int(padding), @@ -186,6 +190,10 @@ def get_renderer_variables(renderlayer, root): layer=renderlayer or lib.get_current_renderlayer())[0] filename_0 = re.sub('_', '_beauty', filename_0, flags=re.IGNORECASE) + + if override: + cmds.workspace(workspace, openWorkspace=True) + prefix_attr = "defaultRenderGlobals.imageFilePrefix" if renderer == "vray": renderlayer = renderlayer.split("_")[-1] @@ -393,6 +401,11 @@ def process(self, instance): self.log.debug(filepath) + override_output = False + override_output_path = instance.data.get('overrideOutput') + if override_output_path: + override_output = True + # Gather needed data ------------------------------------------------ default_render_file = instance.context.data.get('project_settings')\ .get('maya')\ @@ -402,12 +415,15 @@ def process(self, instance): filename = os.path.basename(filepath) comment = context.data.get("comment", "") dirname = os.path.join(workspace, default_render_file) + if override_output: + dirname = override_output_path renderlayer = instance.data['setMembers'] # rs_beauty deadline_user = context.data.get("user", getpass.getuser()) jobname = "%s - %s" % (filename, instance.name) # Get the variables depending on the renderer - render_variables = get_renderer_variables(renderlayer, dirname) + render_variables = get_renderer_variables(renderlayer, dirname, + override_output) filename_0 = render_variables["filename_0"] if self.use_published: new_scene = os.path.splitext(filename)[0]