From 66df4fcf0dabec8b223f3f0305b38e65d9211727 Mon Sep 17 00:00:00 2001 From: Kayla Man Date: Tue, 4 Jun 2024 17:42:04 +0800 Subject: [PATCH 01/18] add sync workfile version into substance painter --- .../publish/collect_anatomy_instance_data.py | 5 +++-- server/settings/publish_plugins.py | 1 + .../plugins/create/create_textures.py | 13 +++++++++++++ .../plugins/publish/collect_current_file.py | 10 +++++++--- 4 files changed, 24 insertions(+), 5 deletions(-) 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 ad5a5d43fc..2113ad1f4d 100644 --- a/client/ayon_core/plugins/publish/collect_anatomy_instance_data.py +++ b/client/ayon_core/plugins/publish/collect_anatomy_instance_data.py @@ -313,8 +313,9 @@ class CollectAnatomyInstanceData(pyblish.api.ContextPlugin): # Define version version_number = None - if self.follow_workfile_version: - version_number = context.data("version") + if self.follow_workfile_version or instance.data.get( + "follow_workfile_version", self.follow_workfile_version): + version_number = context.data("version") # Even if 'follow_workfile_version' is enabled, it may not be set # because workfile version was not collected to 'context.data' diff --git a/server/settings/publish_plugins.py b/server/settings/publish_plugins.py index 2640a3db37..6dbc2253e2 100644 --- a/server/settings/publish_plugins.py +++ b/server/settings/publish_plugins.py @@ -890,6 +890,7 @@ DEFAULT_PUBLISH_VALUES = { "maya", "nuke", "photoshop", + "substancepainter" ], "enabled": True, "optional": False, diff --git a/server_addon/substancepainter/client/ayon_substancepainter/plugins/create/create_textures.py b/server_addon/substancepainter/client/ayon_substancepainter/plugins/create/create_textures.py index 8869cb5eb0..ce37d6e206 100644 --- a/server_addon/substancepainter/client/ayon_substancepainter/plugins/create/create_textures.py +++ b/server_addon/substancepainter/client/ayon_substancepainter/plugins/create/create_textures.py @@ -30,12 +30,18 @@ class CreateTextures(Creator): default_variant = "Main" settings_category = "substancepainter" channel_mapping = [] + follow_workfile_version = False def apply_settings(self, project_settings): settings = project_settings["substancepainter"].get("create", []) # noqa if settings: self.channel_mapping = settings["CreateTextures"].get( "channel_mapping", []) + core_setting = project_settings["core"]["publish"].get( + "CollectAnatomyInstanceData", []) + if core_setting: + self.follow_workfile_version = core_setting.get( + "follow_workfile_version", False) def create(self, product_name, instance_data, pre_create_data): @@ -57,6 +63,10 @@ class CreateTextures(Creator): if key in pre_create_data: creator_attributes[key] = pre_create_data[key] + if pre_create_data.get("follow_workfile_version"): + instance_data["follow_workfile_version"] = pre_create_data.get( + "follow_workfile_version") + if pre_create_data.get("use_selection"): stack = substance_painter.textureset.get_active_stack() @@ -143,6 +153,9 @@ class CreateTextures(Creator): } return [ + BoolDef("follow_workfile_version", + label="Follow Workfile Version", + default=self.follow_workfile_version), EnumDef("exportChannel", items=export_channel_enum, multiselection=True, diff --git a/server_addon/substancepainter/client/ayon_substancepainter/plugins/publish/collect_current_file.py b/server_addon/substancepainter/client/ayon_substancepainter/plugins/publish/collect_current_file.py index db0edafac0..ce739d66cb 100644 --- a/server_addon/substancepainter/client/ayon_substancepainter/plugins/publish/collect_current_file.py +++ b/server_addon/substancepainter/client/ayon_substancepainter/plugins/publish/collect_current_file.py @@ -1,13 +1,14 @@ import pyblish.api from ayon_core.pipeline import registered_host +from ayon_core.lib import get_version_from_path -class CollectCurrentFile(pyblish.api.ContextPlugin): - """Inject the current working file into context""" +class CollectContextData(pyblish.api.ContextPlugin): + """Collect current context publish""" order = pyblish.api.CollectorOrder - 0.49 - label = "Current Workfile" + label = "Collect Context Data" hosts = ["substancepainter"] def process(self, context): @@ -15,3 +16,6 @@ class CollectCurrentFile(pyblish.api.ContextPlugin): path = host.get_current_workfile() context.data["currentFile"] = path self.log.debug(f"Current workfile: {path}") + version = int(get_version_from_path(path)) + context.data["version"] = version + self.log.debug(f"Current Version: {version}") From d1951f3b513864972407d3de20cbbbddbfbbaa1d Mon Sep 17 00:00:00 2001 From: Kayla Man Date: Tue, 4 Jun 2024 17:45:09 +0800 Subject: [PATCH 02/18] bump addons version --- package.py | 2 +- server_addon/substancepainter/package.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package.py b/package.py index 73f7174b6f..cea2d84484 100644 --- a/package.py +++ b/package.py @@ -1,6 +1,6 @@ name = "core" title = "Core" -version = "0.3.3-dev.1" +version = "0.3.4-dev.1" client_dir = "ayon_core" diff --git a/server_addon/substancepainter/package.py b/server_addon/substancepainter/package.py index 4db5ef634f..8ffad08b27 100644 --- a/server_addon/substancepainter/package.py +++ b/server_addon/substancepainter/package.py @@ -1,6 +1,6 @@ name = "substancepainter" title = "Substance Painter" -version = "0.2.0" +version = "0.2.1" client_dir = "ayon_substancepainter" From c97c98420c89164fd2b9c9cd5306645f33ca345f Mon Sep 17 00:00:00 2001 From: Kayla Man Date: Tue, 4 Jun 2024 17:53:37 +0800 Subject: [PATCH 03/18] follow workfile version exists in creator's tab --- .../plugins/create/create_textures.py | 15 +++++++++------ .../publish/collect_workfile_version.py | 19 +++++++++++++++++++ 2 files changed, 28 insertions(+), 6 deletions(-) create mode 100644 server_addon/substancepainter/client/ayon_substancepainter/plugins/publish/collect_workfile_version.py diff --git a/server_addon/substancepainter/client/ayon_substancepainter/plugins/create/create_textures.py b/server_addon/substancepainter/client/ayon_substancepainter/plugins/create/create_textures.py index ce37d6e206..59e8b64d30 100644 --- a/server_addon/substancepainter/client/ayon_substancepainter/plugins/create/create_textures.py +++ b/server_addon/substancepainter/client/ayon_substancepainter/plugins/create/create_textures.py @@ -58,7 +58,7 @@ class CreateTextures(Creator): "exportPadding", "exportDilationDistance", "useCustomExportPreset", - "exportChannel" + "exportChannel", ]: if key in pre_create_data: creator_attributes[key] = pre_create_data[key] @@ -153,9 +153,6 @@ class CreateTextures(Creator): } return [ - BoolDef("follow_workfile_version", - label="Follow Workfile Version", - default=self.follow_workfile_version), EnumDef("exportChannel", items=export_channel_enum, multiselection=True, @@ -247,9 +244,15 @@ class CreateTextures(Creator): def get_pre_create_attr_defs(self): # Use same attributes as for instance attributes attr_defs = [] - if substance_painter.application.version_info()[0] >= 10: + if substance_painter.application.version_info()[0] >= 10: attr_defs.append( BoolDef("use_selection", label="Use selection", - tooltip="Select Layer Stack(s) for exporting") + tooltip="Select Layer Stack(s) for exporting"), + ) + + attr_defs.append(BoolDef("follow_workfile_version", + label="Follow Workfile Version", + default=self.follow_workfile_version)) + return attr_defs + self.get_instance_attr_defs() diff --git a/server_addon/substancepainter/client/ayon_substancepainter/plugins/publish/collect_workfile_version.py b/server_addon/substancepainter/client/ayon_substancepainter/plugins/publish/collect_workfile_version.py new file mode 100644 index 0000000000..3d6a6e4b44 --- /dev/null +++ b/server_addon/substancepainter/client/ayon_substancepainter/plugins/publish/collect_workfile_version.py @@ -0,0 +1,19 @@ +import pyblish.api + +from ayon_core.pipeline import registered_host +from ayon_core.lib import get_version_from_path + + +class CollectWorkfileVersion(pyblish.api.ContextPlugin): + """Inject the current working file into context""" + + order = pyblish.api.CollectorOrder - 0.5 + label = "Current Workfile Version" + hosts = ["substancepainter"] + + def process(self, context): + host = registered_host() + path = host.get_current_workfile() + version = int(get_version_from_path(path)) + context.data["version"] = version + self.log.debug(f"Current Version: {version}") \ No newline at end of file From 7c254b8b30400cddf202d640cd1b28381d475578 Mon Sep 17 00:00:00 2001 From: Kayla Man Date: Tue, 4 Jun 2024 17:55:05 +0800 Subject: [PATCH 04/18] rename collect current file to current_context_data --- .../publish/{collect_current_file.py => collect_context_data.py} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename server_addon/substancepainter/client/ayon_substancepainter/plugins/publish/{collect_current_file.py => collect_context_data.py} (100%) diff --git a/server_addon/substancepainter/client/ayon_substancepainter/plugins/publish/collect_current_file.py b/server_addon/substancepainter/client/ayon_substancepainter/plugins/publish/collect_context_data.py similarity index 100% rename from server_addon/substancepainter/client/ayon_substancepainter/plugins/publish/collect_current_file.py rename to server_addon/substancepainter/client/ayon_substancepainter/plugins/publish/collect_context_data.py From 7fd75122898af2fd1d5b2424b8ffc01389e1f92c Mon Sep 17 00:00:00 2001 From: Kayla Man <64118225+moonyuet@users.noreply.github.com> Date: Tue, 4 Jun 2024 22:26:36 +0800 Subject: [PATCH 05/18] Update package.py Co-authored-by: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> --- package.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.py b/package.py index cea2d84484..73f7174b6f 100644 --- a/package.py +++ b/package.py @@ -1,6 +1,6 @@ name = "core" title = "Core" -version = "0.3.4-dev.1" +version = "0.3.3-dev.1" client_dir = "ayon_core" From 8403e2f218f21df5832c7fec0137a93166fa9775 Mon Sep 17 00:00:00 2001 From: Kayla Man Date: Wed, 5 Jun 2024 13:18:51 +0800 Subject: [PATCH 06/18] follow workfile version can only be enabled through the ayon project setting --- .../publish/collect_anatomy_instance_data.py | 10 +++++++-- .../plugins/create/create_textures.py | 22 +++---------------- 2 files changed, 11 insertions(+), 21 deletions(-) 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 2113ad1f4d..ce0fc1c16c 100644 --- a/client/ayon_core/plugins/publish/collect_anatomy_instance_data.py +++ b/client/ayon_core/plugins/publish/collect_anatomy_instance_data.py @@ -313,8 +313,14 @@ class CollectAnatomyInstanceData(pyblish.api.ContextPlugin): # Define version version_number = None - if self.follow_workfile_version or instance.data.get( - "follow_workfile_version", 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/server_addon/substancepainter/client/ayon_substancepainter/plugins/create/create_textures.py b/server_addon/substancepainter/client/ayon_substancepainter/plugins/create/create_textures.py index 59e8b64d30..8869cb5eb0 100644 --- a/server_addon/substancepainter/client/ayon_substancepainter/plugins/create/create_textures.py +++ b/server_addon/substancepainter/client/ayon_substancepainter/plugins/create/create_textures.py @@ -30,18 +30,12 @@ class CreateTextures(Creator): default_variant = "Main" settings_category = "substancepainter" channel_mapping = [] - follow_workfile_version = False def apply_settings(self, project_settings): settings = project_settings["substancepainter"].get("create", []) # noqa if settings: self.channel_mapping = settings["CreateTextures"].get( "channel_mapping", []) - core_setting = project_settings["core"]["publish"].get( - "CollectAnatomyInstanceData", []) - if core_setting: - self.follow_workfile_version = core_setting.get( - "follow_workfile_version", False) def create(self, product_name, instance_data, pre_create_data): @@ -58,15 +52,11 @@ class CreateTextures(Creator): "exportPadding", "exportDilationDistance", "useCustomExportPreset", - "exportChannel", + "exportChannel" ]: if key in pre_create_data: creator_attributes[key] = pre_create_data[key] - if pre_create_data.get("follow_workfile_version"): - instance_data["follow_workfile_version"] = pre_create_data.get( - "follow_workfile_version") - if pre_create_data.get("use_selection"): stack = substance_painter.textureset.get_active_stack() @@ -244,15 +234,9 @@ class CreateTextures(Creator): def get_pre_create_attr_defs(self): # Use same attributes as for instance attributes attr_defs = [] - if substance_painter.application.version_info()[0] >= 10: + if substance_painter.application.version_info()[0] >= 10: attr_defs.append( BoolDef("use_selection", label="Use selection", - tooltip="Select Layer Stack(s) for exporting"), - + tooltip="Select Layer Stack(s) for exporting") ) - - attr_defs.append(BoolDef("follow_workfile_version", - label="Follow Workfile Version", - default=self.follow_workfile_version)) - return attr_defs + self.get_instance_attr_defs() From b55ead017a12840954fd6d04a335b09c6152f022 Mon Sep 17 00:00:00 2001 From: Kayla Man Date: Wed, 5 Jun 2024 13:27:20 +0800 Subject: [PATCH 07/18] remove the duplicated collect verion --- ...collect_context_data.py => collect_current_file.py} | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) rename server_addon/substancepainter/client/ayon_substancepainter/plugins/publish/{collect_context_data.py => collect_current_file.py} (52%) diff --git a/server_addon/substancepainter/client/ayon_substancepainter/plugins/publish/collect_context_data.py b/server_addon/substancepainter/client/ayon_substancepainter/plugins/publish/collect_current_file.py similarity index 52% rename from server_addon/substancepainter/client/ayon_substancepainter/plugins/publish/collect_context_data.py rename to server_addon/substancepainter/client/ayon_substancepainter/plugins/publish/collect_current_file.py index ce739d66cb..db0edafac0 100644 --- a/server_addon/substancepainter/client/ayon_substancepainter/plugins/publish/collect_context_data.py +++ b/server_addon/substancepainter/client/ayon_substancepainter/plugins/publish/collect_current_file.py @@ -1,14 +1,13 @@ import pyblish.api from ayon_core.pipeline import registered_host -from ayon_core.lib import get_version_from_path -class CollectContextData(pyblish.api.ContextPlugin): - """Collect current context publish""" +class CollectCurrentFile(pyblish.api.ContextPlugin): + """Inject the current working file into context""" order = pyblish.api.CollectorOrder - 0.49 - label = "Collect Context Data" + label = "Current Workfile" hosts = ["substancepainter"] def process(self, context): @@ -16,6 +15,3 @@ class CollectContextData(pyblish.api.ContextPlugin): path = host.get_current_workfile() context.data["currentFile"] = path self.log.debug(f"Current workfile: {path}") - version = int(get_version_from_path(path)) - context.data["version"] = version - self.log.debug(f"Current Version: {version}") From dd99516853baadb1d97495449692f7662f79b762 Mon Sep 17 00:00:00 2001 From: Kayla Man Date: Wed, 5 Jun 2024 13:43:54 +0800 Subject: [PATCH 08/18] move the workfile version collector into general publish plugins --- .../plugins/publish/collect_workfile_version.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) rename {server_addon/substancepainter/client/ayon_substancepainter => client/ayon_core}/plugins/publish/collect_workfile_version.py (61%) diff --git a/server_addon/substancepainter/client/ayon_substancepainter/plugins/publish/collect_workfile_version.py b/client/ayon_core/plugins/publish/collect_workfile_version.py similarity index 61% rename from server_addon/substancepainter/client/ayon_substancepainter/plugins/publish/collect_workfile_version.py rename to client/ayon_core/plugins/publish/collect_workfile_version.py index 3d6a6e4b44..e54e107e5e 100644 --- a/server_addon/substancepainter/client/ayon_substancepainter/plugins/publish/collect_workfile_version.py +++ b/client/ayon_core/plugins/publish/collect_workfile_version.py @@ -5,15 +5,15 @@ from ayon_core.lib import get_version_from_path class CollectWorkfileVersion(pyblish.api.ContextPlugin): - """Inject the current working file into context""" + """Collect current workfile version as context data""" order = pyblish.api.CollectorOrder - 0.5 label = "Current Workfile Version" - hosts = ["substancepainter"] def process(self, context): host = registered_host() path = host.get_current_workfile() - version = int(get_version_from_path(path)) - context.data["version"] = version - self.log.debug(f"Current Version: {version}") \ No newline at end of file + if path: + version = int(get_version_from_path(path)) + context.data["version"] = version + self.log.debug(f"Current Version: {version}") From 829e41103e11b1c6bcac23641ddf0ead7916340a Mon Sep 17 00:00:00 2001 From: Kayla Man Date: Wed, 5 Jun 2024 15:54:13 +0800 Subject: [PATCH 09/18] add follow workfile version in substance paitner ayon project setting --- .../plugins/create/create_textures.py | 10 ++++++++-- .../server/settings/creator_plugins.py | 3 +++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/server_addon/substancepainter/client/ayon_substancepainter/plugins/create/create_textures.py b/server_addon/substancepainter/client/ayon_substancepainter/plugins/create/create_textures.py index 8869cb5eb0..e8841f4a8b 100644 --- a/server_addon/substancepainter/client/ayon_substancepainter/plugins/create/create_textures.py +++ b/server_addon/substancepainter/client/ayon_substancepainter/plugins/create/create_textures.py @@ -30,12 +30,15 @@ class CreateTextures(Creator): default_variant = "Main" settings_category = "substancepainter" channel_mapping = [] + follow_workfile_version = False def apply_settings(self, project_settings): settings = project_settings["substancepainter"].get("create", []) # noqa if settings: - self.channel_mapping = settings["CreateTextures"].get( - "channel_mapping", []) + creator_setting = settings["CreateTextures"] + self.channel_mapping = creator_setting.get("channel_mapping", []) + self.follow_workfile_version = creator_setting.get( + "follow_workfile_version", False) def create(self, product_name, instance_data, pre_create_data): @@ -64,6 +67,9 @@ class CreateTextures(Creator): node_number.uid() for node_number in substance_painter.layerstack.get_selected_nodes(stack)] + if self.follow_workfile_version: + instance_data["followWorkfileVersion"] = True + instance = self.create_instance_in_context(product_name, instance_data) set_instance( diff --git a/server_addon/substancepainter/server/settings/creator_plugins.py b/server_addon/substancepainter/server/settings/creator_plugins.py index 9ba7684d30..200618dafe 100644 --- a/server_addon/substancepainter/server/settings/creator_plugins.py +++ b/server_addon/substancepainter/server/settings/creator_plugins.py @@ -8,6 +8,8 @@ class ChannelMappingItemModel(BaseSettingsModel): class CreateTextureModel(BaseSettingsModel): + follow_workfile_version: bool = SettingsField( + False, title="follow_workfile_version") channel_mapping: list[ChannelMappingItemModel] = SettingsField( default_factory=list, title="Channel Mapping") @@ -21,6 +23,7 @@ class CreatorsModel(BaseSettingsModel): DEFAULT_CREATOR_SETTINGS = { "CreateTextures": { + "follow_workfile_version": False, "channel_mapping": [ {"name": "Base Color", "value": "BaseColor"}, {"name": "Metallic", "value": "Metallic"}, From 8f00b72d53bd294e76243a539ef6b861a0a017be Mon Sep 17 00:00:00 2001 From: Kayla Man Date: Wed, 5 Jun 2024 16:01:26 +0800 Subject: [PATCH 10/18] The name of the follow workfile version should be follow workfile version --- .../substancepainter/server/settings/creator_plugins.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server_addon/substancepainter/server/settings/creator_plugins.py b/server_addon/substancepainter/server/settings/creator_plugins.py index 200618dafe..477233c324 100644 --- a/server_addon/substancepainter/server/settings/creator_plugins.py +++ b/server_addon/substancepainter/server/settings/creator_plugins.py @@ -9,7 +9,7 @@ class ChannelMappingItemModel(BaseSettingsModel): class CreateTextureModel(BaseSettingsModel): follow_workfile_version: bool = SettingsField( - False, title="follow_workfile_version") + False, title="Follow Workfile Version") channel_mapping: list[ChannelMappingItemModel] = SettingsField( default_factory=list, title="Channel Mapping") From b789aa7d1babe92ff662d294209ce25bd55a8297 Mon Sep 17 00:00:00 2001 From: Kayla Man Date: Wed, 5 Jun 2024 17:02:45 +0800 Subject: [PATCH 11/18] restore the creator logic --- .../ayon_substancepainter/plugins/create/create_textures.py | 6 ------ server_addon/substancepainter/package.py | 2 +- .../substancepainter/server/settings/creator_plugins.py | 3 --- 3 files changed, 1 insertion(+), 10 deletions(-) diff --git a/server_addon/substancepainter/client/ayon_substancepainter/plugins/create/create_textures.py b/server_addon/substancepainter/client/ayon_substancepainter/plugins/create/create_textures.py index e8841f4a8b..d4484bd0ae 100644 --- a/server_addon/substancepainter/client/ayon_substancepainter/plugins/create/create_textures.py +++ b/server_addon/substancepainter/client/ayon_substancepainter/plugins/create/create_textures.py @@ -37,9 +37,6 @@ class CreateTextures(Creator): if settings: creator_setting = settings["CreateTextures"] self.channel_mapping = creator_setting.get("channel_mapping", []) - self.follow_workfile_version = creator_setting.get( - "follow_workfile_version", False) - def create(self, product_name, instance_data, pre_create_data): if not substance_painter.project.is_open(): @@ -67,9 +64,6 @@ class CreateTextures(Creator): node_number.uid() for node_number in substance_painter.layerstack.get_selected_nodes(stack)] - if self.follow_workfile_version: - instance_data["followWorkfileVersion"] = True - instance = self.create_instance_in_context(product_name, instance_data) set_instance( diff --git a/server_addon/substancepainter/package.py b/server_addon/substancepainter/package.py index 8ffad08b27..4db5ef634f 100644 --- a/server_addon/substancepainter/package.py +++ b/server_addon/substancepainter/package.py @@ -1,6 +1,6 @@ name = "substancepainter" title = "Substance Painter" -version = "0.2.1" +version = "0.2.0" client_dir = "ayon_substancepainter" diff --git a/server_addon/substancepainter/server/settings/creator_plugins.py b/server_addon/substancepainter/server/settings/creator_plugins.py index 477233c324..9ba7684d30 100644 --- a/server_addon/substancepainter/server/settings/creator_plugins.py +++ b/server_addon/substancepainter/server/settings/creator_plugins.py @@ -8,8 +8,6 @@ class ChannelMappingItemModel(BaseSettingsModel): class CreateTextureModel(BaseSettingsModel): - follow_workfile_version: bool = SettingsField( - False, title="Follow Workfile Version") channel_mapping: list[ChannelMappingItemModel] = SettingsField( default_factory=list, title="Channel Mapping") @@ -23,7 +21,6 @@ class CreatorsModel(BaseSettingsModel): DEFAULT_CREATOR_SETTINGS = { "CreateTextures": { - "follow_workfile_version": False, "channel_mapping": [ {"name": "Base Color", "value": "BaseColor"}, {"name": "Metallic", "value": "Metallic"}, From 5e9b9746ad87a59e62efe9c83338d49a3d948638 Mon Sep 17 00:00:00 2001 From: Kayla Man Date: Wed, 5 Jun 2024 17:03:41 +0800 Subject: [PATCH 12/18] restore the creator logic --- .../ayon_substancepainter/plugins/create/create_textures.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/server_addon/substancepainter/client/ayon_substancepainter/plugins/create/create_textures.py b/server_addon/substancepainter/client/ayon_substancepainter/plugins/create/create_textures.py index d4484bd0ae..7b195d836b 100644 --- a/server_addon/substancepainter/client/ayon_substancepainter/plugins/create/create_textures.py +++ b/server_addon/substancepainter/client/ayon_substancepainter/plugins/create/create_textures.py @@ -35,8 +35,8 @@ class CreateTextures(Creator): def apply_settings(self, project_settings): settings = project_settings["substancepainter"].get("create", []) # noqa if settings: - creator_setting = settings["CreateTextures"] - self.channel_mapping = creator_setting.get("channel_mapping", []) + self.channel_mapping = settings["CreateTextures"].get( + "channel_mapping", []) def create(self, product_name, instance_data, pre_create_data): if not substance_painter.project.is_open(): From 1b84b39ba6c20dd2f865d99494e90232ee1ca031 Mon Sep 17 00:00:00 2001 From: Kayla Man Date: Fri, 7 Jun 2024 15:45:10 +0800 Subject: [PATCH 13/18] add substance painter host into collect scene version --- client/ayon_core/plugins/publish/collect_scene_version.py | 3 ++- server/settings/publish_plugins.py | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/client/ayon_core/plugins/publish/collect_scene_version.py b/client/ayon_core/plugins/publish/collect_scene_version.py index b04900c74e..c9299013ee 100644 --- a/client/ayon_core/plugins/publish/collect_scene_version.py +++ b/client/ayon_core/plugins/publish/collect_scene_version.py @@ -27,7 +27,8 @@ class CollectSceneVersion(pyblish.api.ContextPlugin): "nuke", "photoshop", "resolve", - "tvpaint" + "tvpaint", + "substancepainter" ] # in some cases of headless publishing (for example webpublisher using PS) diff --git a/server/settings/publish_plugins.py b/server/settings/publish_plugins.py index 6dbc2253e2..3c0f8380c6 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": [] }, From 76767247453fd44302aa20e7171e7245c5e64474 Mon Sep 17 00:00:00 2001 From: Kayla Man Date: Fri, 7 Jun 2024 16:40:05 +0800 Subject: [PATCH 14/18] remove the duplicated version collector --- .../publish/collect_workfile_version.py | 19 ------------------- 1 file changed, 19 deletions(-) delete mode 100644 client/ayon_core/plugins/publish/collect_workfile_version.py diff --git a/client/ayon_core/plugins/publish/collect_workfile_version.py b/client/ayon_core/plugins/publish/collect_workfile_version.py deleted file mode 100644 index e54e107e5e..0000000000 --- a/client/ayon_core/plugins/publish/collect_workfile_version.py +++ /dev/null @@ -1,19 +0,0 @@ -import pyblish.api - -from ayon_core.pipeline import registered_host -from ayon_core.lib import get_version_from_path - - -class CollectWorkfileVersion(pyblish.api.ContextPlugin): - """Collect current workfile version as context data""" - - order = pyblish.api.CollectorOrder - 0.5 - label = "Current Workfile Version" - - def process(self, context): - host = registered_host() - path = host.get_current_workfile() - if path: - version = int(get_version_from_path(path)) - context.data["version"] = version - self.log.debug(f"Current Version: {version}") From 6baecb898599ff9384551210af631d51714e694a Mon Sep 17 00:00:00 2001 From: Kayla Man Date: Fri, 7 Jun 2024 16:43:53 +0800 Subject: [PATCH 15/18] not adding create texture into the changes --- .../ayon_substancepainter/plugins/create/create_textures.py | 1 + 1 file changed, 1 insertion(+) diff --git a/server_addon/substancepainter/client/ayon_substancepainter/plugins/create/create_textures.py b/server_addon/substancepainter/client/ayon_substancepainter/plugins/create/create_textures.py index 7b195d836b..ab93ded3b3 100644 --- a/server_addon/substancepainter/client/ayon_substancepainter/plugins/create/create_textures.py +++ b/server_addon/substancepainter/client/ayon_substancepainter/plugins/create/create_textures.py @@ -38,6 +38,7 @@ class CreateTextures(Creator): self.channel_mapping = settings["CreateTextures"].get( "channel_mapping", []) + def create(self, product_name, instance_data, pre_create_data): if not substance_painter.project.is_open(): raise CreatorError("Can't create a Texture Set instance without " From 5970a758035587eb06a802d5162bfe91f9074d3b Mon Sep 17 00:00:00 2001 From: Kayla Man Date: Fri, 7 Jun 2024 16:44:43 +0800 Subject: [PATCH 16/18] not adding create texture into the changes --- .../ayon_substancepainter/plugins/create/create_textures.py | 1 - 1 file changed, 1 deletion(-) diff --git a/server_addon/substancepainter/client/ayon_substancepainter/plugins/create/create_textures.py b/server_addon/substancepainter/client/ayon_substancepainter/plugins/create/create_textures.py index ab93ded3b3..8869cb5eb0 100644 --- a/server_addon/substancepainter/client/ayon_substancepainter/plugins/create/create_textures.py +++ b/server_addon/substancepainter/client/ayon_substancepainter/plugins/create/create_textures.py @@ -30,7 +30,6 @@ class CreateTextures(Creator): default_variant = "Main" settings_category = "substancepainter" channel_mapping = [] - follow_workfile_version = False def apply_settings(self, project_settings): settings = project_settings["substancepainter"].get("create", []) # noqa From f3a6d371c68f8f379ff69d1afd951c2f502968fa Mon Sep 17 00:00:00 2001 From: Kayla Man <64118225+moonyuet@users.noreply.github.com> Date: Fri, 7 Jun 2024 16:54:40 +0800 Subject: [PATCH 17/18] Update client/ayon_core/plugins/publish/collect_anatomy_instance_data.py Co-authored-by: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> --- .../ayon_core/plugins/publish/collect_anatomy_instance_data.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 ce0fc1c16c..b4d02f2ba5 100644 --- a/client/ayon_core/plugins/publish/collect_anatomy_instance_data.py +++ b/client/ayon_core/plugins/publish/collect_anatomy_instance_data.py @@ -321,7 +321,7 @@ class CollectAnatomyInstanceData(pyblish.api.ContextPlugin): use_context_version = instance.data["followWorkfileVersion"] if use_context_version: - version_number = context.data("version") + version_number = context.data("version") # Even if 'follow_workfile_version' is enabled, it may not be set # because workfile version was not collected to 'context.data' From 30eeb00e2a599c961419442931b6efb825318a0c Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Mon, 10 Jun 2024 15:13:58 +0200 Subject: [PATCH 18/18] remove only representations that were processed by the plugin --- client/ayon_core/plugins/publish/extract_color_transcode.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/client/ayon_core/plugins/publish/extract_color_transcode.py b/client/ayon_core/plugins/publish/extract_color_transcode.py index 1130c575a3..7b74c42ddb 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)