diff --git a/openpype/hosts/substancepainter/plugins/create/create_textures.py b/openpype/hosts/substancepainter/plugins/create/create_textures.py index 9cfa01cee0..a835e241b7 100644 --- a/openpype/hosts/substancepainter/plugins/create/create_textures.py +++ b/openpype/hosts/substancepainter/plugins/create/create_textures.py @@ -28,36 +28,22 @@ class CreateTextures(Creator): icon = "picture-o" default_variant = "Main" - image_format = None - exportPresetUrl = None - exportSize = None - exportPadding = "infinite" - exportDilationDistance = 16 def create(self, subset_name, instance_data, pre_create_data): if not substance_painter.project.is_open(): raise CreatorError("Can't create a Texture Set instance without " "an open project.") - self.exportPresetUrl = pre_create_data.get("exportPresetUrl", - self.exportPresetUrl) - instance_data["exportPresetUrl"] = self.exportPresetUrl - - self.image_format = pre_create_data.get("exportFileFormat", - self.image_format) - instance_data["exportFileFormat"] = self.image_format - - self.exportSize = pre_create_data.get("exportSize", - self.exportSize) - instance_data["exportSize"] = self.exportSize - - self.exportPadding = pre_create_data.get("exportPadding", - self.exportPadding) - instance_data["exportPadding"] = self.exportPadding - - self.exportDilationDistance = pre_create_data.get("exportDilationDistance", - self.exportDilationDistance) - instance_data["exportDilationDistance"] = self.exportDilationDistance + # Transfer settings from pre create to instance + for key in [ + "exportPresetUrl", + "exportFileFormat", + "exportSize", + "exportPadding", + "exportDilationDistance" + ]: + if key in pre_create_data: + instance_data[key] = pre_create_data[key] instance = self.create_instance_in_context(subset_name, instance_data) @@ -104,7 +90,6 @@ class CreateTextures(Creator): return [ EnumDef("exportPresetUrl", items=get_export_presets(), - default=self.exportPresetUrl, label="Output Template"), BoolDef("allowSkippedMaps", label="Allow Skipped Output Maps", @@ -145,7 +130,7 @@ class CreateTextures(Creator): # "psd": "psd", # "sbsar": "sbsar", }, - default=self.image_format, + default=None, label="File type"), EnumDef("exportSize", items={ @@ -159,7 +144,7 @@ class CreateTextures(Creator): 11: "2048", 12: "4096" }, - default=self.exportSize, + default=None, label="Size"), EnumDef("exportPadding", @@ -170,13 +155,13 @@ class CreateTextures(Creator): "color": "Dilation + default background color", "diffusion": "Dilation + diffusion" }, - default=self.exportPadding, + default="infinite", label="Padding"), NumberDef("exportDilationDistance", minimum=0, maximum=256, decimals=0, - default=self.exportDilationDistance, + default=16, label="Dilation Distance"), UILabelDef("*only used with " "'Dilation + ' padding"), diff --git a/openpype/hosts/substancepainter/plugins/publish/collect_textureset_images.py b/openpype/hosts/substancepainter/plugins/publish/collect_textureset_images.py index d11abd1019..eb504fafe9 100644 --- a/openpype/hosts/substancepainter/plugins/publish/collect_textureset_images.py +++ b/openpype/hosts/substancepainter/plugins/publish/collect_textureset_images.py @@ -114,7 +114,7 @@ class CollectTextureSet(pyblish.api.InstancePlugin): # Clone the instance image_instance = context.create_instance(image_subset) image_instance[:] = instance[:] - image_instance.data.update(copy.deepcopy(instance.data)) + image_instance.data.update(copy.deepcopy(dict(instance.data))) image_instance.data["name"] = image_subset image_instance.data["label"] = image_subset image_instance.data["subset"] = image_subset @@ -157,9 +157,7 @@ class CollectTextureSet(pyblish.api.InstancePlugin): dict: Export config """ - - creator_attrs = instance.data["creator_attributes"] - preset_url = creator_attrs["exportPresetUrl"] + preset_url = instance.data["exportPresetUrl"] self.log.debug(f"Exporting using preset: {preset_url}") # See: https://substance3d.adobe.com/documentation/ptpy/api/substance_painter/export # noqa @@ -172,10 +170,10 @@ class CollectTextureSet(pyblish.api.InstancePlugin): "exportParameters": [ { "parameters": { - "fileFormat": creator_attrs["exportFileFormat"], - "sizeLog2": creator_attrs["exportSize"], - "paddingAlgorithm": creator_attrs["exportPadding"], - "dilationDistance": creator_attrs["exportDilationDistance"] # noqa + "fileFormat": instance.data["exportFileFormat"], + "sizeLog2": instance.data["exportSize"], + "paddingAlgorithm": instance.data["exportPadding"], + "dilationDistance": instance.data["exportDilationDistance"] # noqa } } ]