roy's comment

This commit is contained in:
Kayla Man 2023-07-04 18:31:41 +08:00
parent 2362c4114e
commit 8befb04439
2 changed files with 20 additions and 37 deletions

View file

@ -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 + <x>' padding"),

View file

@ -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
}
}
]