diff --git a/pype/plugins/maya/publish/collect_model.py b/pype/plugins/maya/publish/collect_model.py index 831399339b..f8e25a9fc1 100644 --- a/pype/plugins/maya/publish/collect_model.py +++ b/pype/plugins/maya/publish/collect_model.py @@ -15,7 +15,7 @@ class CollectModelData(pyblish.api.InstancePlugin): """ - order = pyblish.api.CollectorOrder + 0.499 + order = pyblish.api.CollectorOrder + 0.4 label = 'Collect Model Data' families = ["model"] diff --git a/pype/plugins/maya/publish/collect_remove_marked.py b/pype/plugins/maya/publish/collect_remove_marked.py new file mode 100644 index 0000000000..c842fe4ed0 --- /dev/null +++ b/pype/plugins/maya/publish/collect_remove_marked.py @@ -0,0 +1,24 @@ +import pyblish.api + + +class CollectRemoveMarked(pyblish.api.ContextPlugin): + """Collect model data + + Ensures always only a single frame is extracted (current frame). + + Note: + This is a workaround so that the `pype.model` family can use the + same pointcache extractor implementation as animation and pointcaches. + This always enforces the "current" frame to be published. + + """ + + order = pyblish.api.CollectorOrder + 0.499 + label = 'Remove Marked Instances' + + def process(self, context): + + # make ftrack publishable + for instance in context: + if instance.data.get('remove'): + context.remove(instance) diff --git a/pype/plugins/maya/publish/collect_review.py b/pype/plugins/maya/publish/collect_review.py index 9fb054127e..b318a8de40 100644 --- a/pype/plugins/maya/publish/collect_review.py +++ b/pype/plugins/maya/publish/collect_review.py @@ -4,6 +4,7 @@ import pymel.core as pm import pyblish.api import avalon.api + class CollectReview(pyblish.api.InstancePlugin): """Collect Review data @@ -40,6 +41,9 @@ 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])) data = instance.context[i].data if inst.name == reviewable_subset[0]: @@ -56,9 +60,9 @@ class CollectReview(pyblish.api.InstancePlugin): data['step'] = instance.data['step'] data['fps'] = instance.data['fps'] cmds.setAttr(str(instance) + '.active', 0) - i += 1 instance.context[i].data.update(data) instance.data['remove'] = True + i += 1 else: instance.data['subset'] = task + 'Review' instance.data['review_camera'] = camera