From 0b6ef8c6f51b8a427a2e782547bc7476474cdd9e Mon Sep 17 00:00:00 2001 From: Toke Stuart Jepsen Date: Tue, 11 Aug 2020 13:52:21 +0100 Subject: [PATCH 1/3] Isolate view on instance members if more than camera (one object). --- pype/plugins/maya/publish/extract_playblast.py | 5 +++++ pype/plugins/maya/publish/extract_thumbnail.py | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/pype/plugins/maya/publish/extract_playblast.py b/pype/plugins/maya/publish/extract_playblast.py index 8d45f98b90..3c9811d4c4 100644 --- a/pype/plugins/maya/publish/extract_playblast.py +++ b/pype/plugins/maya/publish/extract_playblast.py @@ -77,6 +77,11 @@ class ExtractPlayblast(pype.api.Extractor): pm.currentTime(refreshFrameInt - 1, edit=True) pm.currentTime(refreshFrameInt, edit=True) + # Isolate view is requested by having objects in the set besides a + # camera. + if len(instance.data["setMembers"]) > 1: + preset["isolate"] = instance.data["setMembers"] + with maintained_time(): filename = preset.get("filename", "%TEMP%") diff --git a/pype/plugins/maya/publish/extract_thumbnail.py b/pype/plugins/maya/publish/extract_thumbnail.py index c0eb2a608e..2edd19a559 100644 --- a/pype/plugins/maya/publish/extract_thumbnail.py +++ b/pype/plugins/maya/publish/extract_thumbnail.py @@ -77,6 +77,11 @@ class ExtractThumbnail(pype.api.Extractor): pm.currentTime(refreshFrameInt - 1, edit=True) pm.currentTime(refreshFrameInt, edit=True) + # Isolate view is requested by having objects in the set besides a + # camera. + if len(instance.data["setMembers"]) > 1: + preset["isolate"] = instance.data["setMembers"] + with maintained_time(): filename = preset.get("filename", "%TEMP%") From e9f4d1989019fb3f3e159eae734c21627982722f Mon Sep 17 00:00:00 2001 From: Toke Stuart Jepsen Date: Thu, 13 Aug 2020 17:08:46 +0100 Subject: [PATCH 2/3] Explicit optional isolate attribute. --- pype/plugins/maya/create/create_review.py | 2 ++ pype/plugins/maya/publish/extract_playblast.py | 2 +- pype/plugins/maya/publish/extract_thumbnail.py | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/pype/plugins/maya/create/create_review.py b/pype/plugins/maya/create/create_review.py index 3e513032e1..6b153396d6 100644 --- a/pype/plugins/maya/create/create_review.py +++ b/pype/plugins/maya/create/create_review.py @@ -21,4 +21,6 @@ class CreateReview(avalon.maya.Creator): for key, value in animation_data.items(): data[key] = value + data["isolate"] = False + self.data = data diff --git a/pype/plugins/maya/publish/extract_playblast.py b/pype/plugins/maya/publish/extract_playblast.py index 3c9811d4c4..91849567e3 100644 --- a/pype/plugins/maya/publish/extract_playblast.py +++ b/pype/plugins/maya/publish/extract_playblast.py @@ -79,7 +79,7 @@ class ExtractPlayblast(pype.api.Extractor): # Isolate view is requested by having objects in the set besides a # camera. - if len(instance.data["setMembers"]) > 1: + if instance.data.get("isolate"): preset["isolate"] = instance.data["setMembers"] with maintained_time(): diff --git a/pype/plugins/maya/publish/extract_thumbnail.py b/pype/plugins/maya/publish/extract_thumbnail.py index 2edd19a559..524fc1e17c 100644 --- a/pype/plugins/maya/publish/extract_thumbnail.py +++ b/pype/plugins/maya/publish/extract_thumbnail.py @@ -79,7 +79,7 @@ class ExtractThumbnail(pype.api.Extractor): # Isolate view is requested by having objects in the set besides a # camera. - if len(instance.data["setMembers"]) > 1: + if instance.data.get("isolate"): preset["isolate"] = instance.data["setMembers"] with maintained_time(): From f52fe3beefcfba1bd0ef744d943aa044a4b83e96 Mon Sep 17 00:00:00 2001 From: Toke Stuart Jepsen Date: Mon, 17 Aug 2020 15:31:44 +0100 Subject: [PATCH 3/3] Add "isolate" to reviewable subset --- pype/plugins/maya/publish/collect_review.py | 1 + 1 file changed, 1 insertion(+) diff --git a/pype/plugins/maya/publish/collect_review.py b/pype/plugins/maya/publish/collect_review.py index 063a854bd1..e16b6ae9f9 100644 --- a/pype/plugins/maya/publish/collect_review.py +++ b/pype/plugins/maya/publish/collect_review.py @@ -63,6 +63,7 @@ class CollectReview(pyblish.api.InstancePlugin): 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)