diff --git a/pype/plugins/maya/publish/collect_ftrack_family.py b/pype/plugins/maya/publish/collect_ftrack_family.py index c8896a5c9c..b2b66b1875 100644 --- a/pype/plugins/maya/publish/collect_ftrack_family.py +++ b/pype/plugins/maya/publish/collect_ftrack_family.py @@ -20,7 +20,8 @@ class CollectFtrackFamilies(pyblish.api.InstancePlugin): "model", "animation", "look", - "rig" + "rig", + "camera" ] def process(self, instance): diff --git a/pype/plugins/maya/publish/collect_remove_marked.py b/pype/plugins/maya/publish/collect_remove_marked.py index c842fe4ed0..a45c8e45a7 100644 --- a/pype/plugins/maya/publish/collect_remove_marked.py +++ b/pype/plugins/maya/publish/collect_remove_marked.py @@ -18,7 +18,12 @@ class CollectRemoveMarked(pyblish.api.ContextPlugin): def process(self, context): + self.log.debug(context) # make ftrack publishable + instances_to_remove = [] for instance in context: if instance.data.get('remove'): - context.remove(instance) + instances_to_remove.append(instance) + + for instance in instances_to_remove: + context.remove(instance) diff --git a/pype/plugins/maya/publish/collect_review.py b/pype/plugins/maya/publish/collect_review.py index 886e3b82dd..60183341f9 100644 --- a/pype/plugins/maya/publish/collect_review.py +++ b/pype/plugins/maya/publish/collect_review.py @@ -43,33 +43,38 @@ class CollectReview(pyblish.api.InstancePlugin): i = 0 for inst in instance.context: - self.log.debug('processing {}'.format(inst)) - self.log.debug('processing2 {}'.format(instance.context[i])) + self.log.debug('filtering {}'.format(inst)) data = instance.context[i].data - if inst.name == reviewable_subset[0]: - if data.get('families'): - data['families'].append('review') - else: - data['families'] = ['review'] - self.log.debug('adding review family to {}'.format(reviewable_subset)) - data['review_camera'] = camera - # data["publish"] = False - data['frameStartFtrack'] = instance.data["frameStartHandle"] - data['frameEndFtrack'] = instance.data["frameEndHandle"] - data['frameStartHandle'] = instance.data["frameStartHandle"] - data['frameEndHandle'] = instance.data["frameEndHandle"] - data["frameStart"] = instance.data["frameStart"] - data["frameEnd"] = instance.data["frameEnd"] - data['handles'] = instance.data.get('handles', None) - data['step'] = instance.data['step'] - data['fps'] = instance.data['fps'] - data["isolate"] = instance.data["isolate"] - cmds.setAttr(str(instance) + '.active', 1) - self.log.debug('data {}'.format(instance.context[i].data)) - instance.context[i].data.update(data) - instance.data['remove'] = True - i += 1 + if inst.name != reviewable_subset[0]: + self.log.debug('subset name does not match {}'.format( + reviewable_subset[0])) + i += 1 + continue + + if data.get('families'): + data['families'].append('review') + else: + data['families'] = ['review'] + self.log.debug('adding review family to {}'.format( + reviewable_subset)) + data['review_camera'] = camera + # data["publish"] = False + data['frameStartFtrack'] = instance.data["frameStartHandle"] + data['frameEndFtrack'] = instance.data["frameEndHandle"] + data['frameStartHandle'] = instance.data["frameStartHandle"] + data['frameEndHandle'] = instance.data["frameEndHandle"] + data["frameStart"] = instance.data["frameStart"] + data["frameEnd"] = instance.data["frameEnd"] + data['handles'] = instance.data.get('handles', None) + data['step'] = instance.data['step'] + data['fps'] = instance.data['fps'] + data["isolate"] = instance.data["isolate"] + cmds.setAttr(str(instance) + '.active', 1) + self.log.debug('data {}'.format(instance.context[i].data)) + instance.context[i].data.update(data) + instance.data['remove'] = True + self.log.debug('isntance data {}'.format(instance.data)) else: if self.legacy: instance.data['subset'] = task + 'Review' @@ -82,8 +87,10 @@ class CollectReview(pyblish.api.InstancePlugin): instance.data['subset'] = subset instance.data['review_camera'] = camera - instance.data['frameStartFtrack'] = instance.data["frameStartHandle"] - instance.data['frameEndFtrack'] = instance.data["frameEndHandle"] + instance.data['frameStartFtrack'] = \ + instance.data["frameStartHandle"] + instance.data['frameEndFtrack'] = \ + instance.data["frameEndHandle"] # make ftrack publishable instance.data["families"] = ['ftrack'] diff --git a/pype/plugins/maya/publish/extract_camera_alembic.py b/pype/plugins/maya/publish/extract_camera_alembic.py index c61ec5e19e..c0538338dc 100644 --- a/pype/plugins/maya/publish/extract_camera_alembic.py +++ b/pype/plugins/maya/publish/extract_camera_alembic.py @@ -26,7 +26,15 @@ class ExtractCameraAlembic(pype.api.Extractor): # get settings framerange = [instance.data.get("frameStart", 1), instance.data.get("frameEnd", 1)] - handles = instance.data.get("handles", 0) + handle_start = instance.data.get("handleStart", 0) + handle_end = instance.data.get("handleEnd", 0) + + # TODO: deprecated attribute "handles" + + if handle_start is None: + handle_start = instance.data.get("handles", 0) + handle_end = instance.data.get("handles", 0) + step = instance.data.get("step", 1.0) bake_to_worldspace = instance.data("bakeToWorldSpace", True) @@ -55,8 +63,10 @@ class ExtractCameraAlembic(pype.api.Extractor): job_str = ' -selection -dataFormat "ogawa" ' job_str += ' -attrPrefix cb' - job_str += ' -frameRange {0} {1} '.format(framerange[0] - handles, - framerange[1] + handles) + job_str += ' -frameRange {0} {1} '.format(framerange[0] + - handle_start, + framerange[1] + + handle_end) job_str += ' -step {0} '.format(step) if bake_to_worldspace: diff --git a/pype/plugins/maya/publish/extract_camera_mayaScene.py b/pype/plugins/maya/publish/extract_camera_mayaScene.py index 1a0f4694d1..6ddb76d479 100644 --- a/pype/plugins/maya/publish/extract_camera_mayaScene.py +++ b/pype/plugins/maya/publish/extract_camera_mayaScene.py @@ -107,7 +107,18 @@ class ExtractCameraMayaScene(pype.api.Extractor): framerange = [instance.data.get("frameStart", 1), instance.data.get("frameEnd", 1)] - handles = instance.data.get("handles", 0) + handle_start = instance.data.get("handleStart", 0) + handle_end = instance.data.get("handleEnd", 0) + + # TODO: deprecated attribute "handles" + + if handle_start is None: + handle_start = instance.data.get("handles", 0) + handle_end = instance.data.get("handles", 0) + + range_with_handles = [framerange[0] - handle_start, + framerange[1] + handle_end] + step = instance.data.get("step", 1.0) bake_to_worldspace = instance.data("bakeToWorldSpace", True) @@ -121,9 +132,6 @@ class ExtractCameraMayaScene(pype.api.Extractor): cameras = cmds.ls(members, leaf=True, shapes=True, long=True, dag=True, type="camera") - range_with_handles = [framerange[0] - handles, - framerange[1] + handles] - # validate required settings assert len(cameras) == 1, "Single camera must be found in extraction" assert isinstance(step, float), "Step must be a float value"