diff --git a/client/ayon_core/plugins/publish/collect_anatomy_instance_data.py b/client/ayon_core/plugins/publish/collect_anatomy_instance_data.py index 0c15ec0b57..b6636696c1 100644 --- a/client/ayon_core/plugins/publish/collect_anatomy_instance_data.py +++ b/client/ayon_core/plugins/publish/collect_anatomy_instance_data.py @@ -313,7 +313,14 @@ class CollectAnatomyInstanceData(pyblish.api.ContextPlugin): # Define version version_number = None - if self.follow_workfile_version: + + # Allow an instance to force enable or disable the version + # following of the current context + use_context_version = self.follow_workfile_version + if "followWorkfileVersion" in instance.data: + use_context_version = instance.data["followWorkfileVersion"] + + if use_context_version: version_number = context.data("version") # Even if 'follow_workfile_version' is enabled, it may not be set diff --git a/client/ayon_core/plugins/publish/collect_scene_version.py b/client/ayon_core/plugins/publish/collect_scene_version.py index 8b99e2cd98..ea4823d62a 100644 --- a/client/ayon_core/plugins/publish/collect_scene_version.py +++ b/client/ayon_core/plugins/publish/collect_scene_version.py @@ -28,7 +28,8 @@ class CollectSceneVersion(pyblish.api.ContextPlugin): "photoshop", "resolve", "tvpaint", - "motionbuilder" + "motionbuilder", + "substancepainter" ] # in some cases of headless publishing (for example webpublisher using PS) diff --git a/client/ayon_core/plugins/publish/extract_color_transcode.py b/client/ayon_core/plugins/publish/extract_color_transcode.py index 949fa07542..a28a761e7e 100644 --- a/client/ayon_core/plugins/publish/extract_color_transcode.py +++ b/client/ayon_core/plugins/publish/extract_color_transcode.py @@ -202,10 +202,10 @@ class ExtractOIIOTranscode(publish.Extractor): added_representations = True if added_representations: - self._mark_original_repre_for_deletion(repre, profile, - added_review) + self._mark_original_repre_for_deletion( + repre, profile, added_review + ) - for repre in tuple(instance.data["representations"]): tags = repre.get("tags") or [] if "delete" in tags and "thumbnail" not in tags: instance.data["representations"].remove(repre) diff --git a/server/settings/publish_plugins.py b/server/settings/publish_plugins.py index 4191cccb7b..b37be1afe6 100644 --- a/server/settings/publish_plugins.py +++ b/server/settings/publish_plugins.py @@ -863,7 +863,8 @@ DEFAULT_PUBLISH_VALUES = { "nuke", "photoshop", "resolve", - "tvpaint" + "tvpaint", + "substancepainter" ], "skip_hosts_headless_publish": [] }, @@ -890,6 +891,7 @@ DEFAULT_PUBLISH_VALUES = { "maya", "nuke", "photoshop", + "substancepainter" ], "enabled": True, "optional": False,