From 1cc9e0cd5f17a2a26f6a16d98e3ff7e6b780554d Mon Sep 17 00:00:00 2001 From: Roy Nieterau Date: Tue, 8 Feb 2022 16:12:16 +0100 Subject: [PATCH] Explicitly collect correct frame name even in case of single frame render when `frameStart` is provided (cherry picked from commit 0f82a753560e362be731d0d14177c4f3edbf1db0) --- .../houdini/plugins/publish/collect_frames.py | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/openpype/hosts/houdini/plugins/publish/collect_frames.py b/openpype/hosts/houdini/plugins/publish/collect_frames.py index 8d21794c1b..e3f5b609b8 100644 --- a/openpype/hosts/houdini/plugins/publish/collect_frames.py +++ b/openpype/hosts/houdini/plugins/publish/collect_frames.py @@ -16,8 +16,17 @@ class CollectFrames(pyblish.api.InstancePlugin): ropnode = instance[0] + start_frame = instance.data.get("frameStart", None) + end_frame = instance.data.get("frameEnd", None) + output_parm = lib.get_output_parameter(ropnode) - output = output_parm.eval() + if start_frame is not None: + # When rendering only a single frame still explicitly + # get the name for that particular frame instead of current frame + output = output_parm.evalAtFrame(start_frame) + else: + self.log.warning("Using current frame: {}".format(hou.frame())) + output = output_parm.eval() _, ext = os.path.splitext(output) file_name = os.path.basename(output) @@ -30,9 +39,6 @@ class CollectFrames(pyblish.api.InstancePlugin): pattern = r"\w+\.(\d+)" + re.escape(ext) match = re.match(pattern, file_name) - start_frame = instance.data.get("frameStart", None) - end_frame = instance.data.get("frameEnd", None) - if match and start_frame is not None: # Check if frames are bigger than 1 (file collection)