From 29303c08ca4aab91d4141d637fc19fdd0cd2327c Mon Sep 17 00:00:00 2001 From: Jakub Jezek Date: Fri, 7 Jun 2019 12:06:14 +0200 Subject: [PATCH] feat(nukestudio): improving frame rage counting and adding identifier of `main` plate type into instance --- .../nukestudio/publish/collect_plates.py | 52 ++++++++++++------- .../nukestudio/publish/collect_subsets.py | 2 +- .../nukestudio/publish/collect_tag_types.py | 3 ++ 3 files changed, 36 insertions(+), 21 deletions(-) diff --git a/pype/plugins/nukestudio/publish/collect_plates.py b/pype/plugins/nukestudio/publish/collect_plates.py index 1499ac2d33..5971a99ff1 100644 --- a/pype/plugins/nukestudio/publish/collect_plates.py +++ b/pype/plugins/nukestudio/publish/collect_plates.py @@ -46,6 +46,10 @@ class CollectPlates(api.InstancePlugin): source_in = int(instance.data["sourceIn"]) source_out = int(instance.data["sourceOut"]) + # get source frames + frame_start = int(instance.data["startFrame"]) + frame_end = int(instance.data["endFrame"]) + # get source frames source_in_h = int(instance.data["sourceInH"]) source_out_h = int(instance.data["sourceOutH"]) @@ -68,12 +72,18 @@ class CollectPlates(api.InstancePlugin): self.log.debug("__ handles: {}".format(handles)) self.log.debug("__ handle_start: {}".format(handle_start)) self.log.debug("__ handle_end: {}".format(handle_end)) + self.log.debug("__ frame_start: {}".format(frame_start)) + self.log.debug("__ frame_end: {}".format(frame_end)) + self.log.debug("__ f duration: {}".format(frame_end - frame_start + 1)) self.log.debug("__ source_in: {}".format(source_in)) self.log.debug("__ source_out: {}".format(source_out)) + self.log.debug("__ s duration: {}".format(source_out - source_in + 1)) self.log.debug("__ source_in_h: {}".format(source_in_h)) self.log.debug("__ source_out_h: {}".format(source_out_h)) + self.log.debug("__ sh duration: {}".format(source_out_h - source_in_h + 1)) self.log.debug("__ timeline_in: {}".format(timeline_in)) self.log.debug("__ timeline_out: {}".format(timeline_out)) + self.log.debug("__ t duration: {}".format(timeline_out - timeline_in + 1)) self.log.debug("__ timeline_frame_start: {}".format( timeline_frame_start)) self.log.debug("__ timeline_frame_end: {}".format(timeline_frame_end)) @@ -97,6 +107,8 @@ class CollectPlates(api.InstancePlugin): "handleEnd": handle_end, "sourceIn": source_in, "sourceOut": source_out, + "startFrame": frame_start, + "endFrame": frame_end, "timelineIn": timeline_in, "timelineOut": timeline_out, "timelineInHandles": timeline_frame_start, @@ -139,8 +151,8 @@ class CollectPlates(api.InstancePlugin): plates_mov_representation = { 'files': mov_file, 'stagingDir': staging_dir, - 'startFrame': start_frame, - 'endFrame': end_frame, + 'startFrame': 0, + 'endFrame': source_out - source_in + 1, 'step': 1, 'frameRate': fps, 'preview': True, @@ -151,24 +163,24 @@ class CollectPlates(api.InstancePlugin): instance.data["representations"].append( plates_mov_representation) - # thumb_file = head + ".png" - # thumb_path = os.path.join(staging_dir, thumb_file) - # self.log.debug("__ thumb_path: {}".format(thumb_path)) - # thumbnail = item.thumbnail(timeline_in).save( - # thumb_path, - # format='png' - # ) - # self.log.debug("__ thumbnail: {}".format(thumbnail)) - # - # thumb_representation = { - # 'files': thumb_file, - # 'stagingDir': staging_dir, - # 'name': "thumbnail", - # 'thumbnail': True, - # 'ext': "png" - # } - # instance.data["representations"].append( - # thumb_representation) + thumb_file = head + ".png" + thumb_path = os.path.join(staging_dir, thumb_file) + self.log.debug("__ thumb_path: {}".format(thumb_path)) + thumbnail = item.thumbnail(source_in).save( + thumb_path, + format='png' + ) + self.log.debug("__ thumbnail: {}".format(thumbnail)) + + thumb_representation = { + 'files': thumb_file, + 'stagingDir': staging_dir, + 'name': "thumbnail", + 'thumbnail': True, + 'ext': "png" + } + instance.data["representations"].append( + thumb_representation) # adding representation for plates plates_representation = { diff --git a/pype/plugins/nukestudio/publish/collect_subsets.py b/pype/plugins/nukestudio/publish/collect_subsets.py index ddef6d80b6..00f721ace2 100644 --- a/pype/plugins/nukestudio/publish/collect_subsets.py +++ b/pype/plugins/nukestudio/publish/collect_subsets.py @@ -58,7 +58,7 @@ class CollectClipSubsets(api.InstancePlugin): # creating comp frame range frame_start = instance.data["frameStart"] - frame_end = frame_start + timeline_frame_end + frame_end = frame_start + (source_out - source_in) # get sequence from context, and fps sequence = context.data["activeSequence"] diff --git a/pype/plugins/nukestudio/publish/collect_tag_types.py b/pype/plugins/nukestudio/publish/collect_tag_types.py index 7393df9cad..459f2f8970 100644 --- a/pype/plugins/nukestudio/publish/collect_tag_types.py +++ b/pype/plugins/nukestudio/publish/collect_tag_types.py @@ -26,6 +26,9 @@ class CollectClipTagTypes(api.InstancePlugin): t_type.capitalize(), t_order) subset_names.append(subset_type) + if "main" in t_type: + instance.data["main"] = True + if subset_names: instance.data["subsetType"] = subset_names[0]