Explicitly collect correct frame name even in case of single frame render when frameStart is provided

(cherry picked from commit 0f82a753560e362be731d0d14177c4f3edbf1db0)
This commit is contained in:
Roy Nieterau 2022-02-08 16:12:16 +01:00
parent 13266d005c
commit 1cc9e0cd5f

View file

@ -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)