From 29a8a956f386e0571b1030611131bddfcd965b1f Mon Sep 17 00:00:00 2001 From: Kayla Man Date: Tue, 12 Mar 2024 18:12:24 +0800 Subject: [PATCH] move the export format setting into creator setting --- .../hosts/zbrush/plugins/create/create_model.py | 12 +++++++++--- .../zbrush/plugins/publish/extract_model.py | 17 ++--------------- 2 files changed, 11 insertions(+), 18 deletions(-) diff --git a/client/ayon_core/hosts/zbrush/plugins/create/create_model.py b/client/ayon_core/hosts/zbrush/plugins/create/create_model.py index 348e519e14..a6bf5d9fbe 100644 --- a/client/ayon_core/hosts/zbrush/plugins/create/create_model.py +++ b/client/ayon_core/hosts/zbrush/plugins/create/create_model.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- """Creator plugin for model.""" -from ayon_core.lib import NumberDef +from ayon_core.lib import NumberDef, EnumDef from ayon_core.hosts.zbrush.api import plugin @@ -10,11 +10,12 @@ class CreateModel(plugin.ZbrushCreator): label = "Model" product_type = "model" icon = "cube" + export_format = "obj" def create(self, product_name, instance_data, pre_create_data): creator_attributes = instance_data.setdefault( "creator_attributes", dict()) - for key in ["subd_level"]: + for key in ["subd_level", "exportFormat"]: if key in pre_create_data: creator_attributes[key] = pre_create_data[key] @@ -24,6 +25,7 @@ class CreateModel(plugin.ZbrushCreator): pre_create_data) def get_instance_attr_defs(self): + export_format_enum = ["abc", "fbx", "ma", "obj"] return [ NumberDef( "subd_level", @@ -37,7 +39,11 @@ class CreateModel(plugin.ZbrushCreator): "A level of -1 or lower subtracts from the highest subdiv," "\n for example -1 means highest subdiv level." ) - ) + ), + EnumDef("exportFormat", + export_format_enum, + default=self.export_format, + label="Export Format Options") ] def get_pre_create_attr_defs(self): diff --git a/client/ayon_core/hosts/zbrush/plugins/publish/extract_model.py b/client/ayon_core/hosts/zbrush/plugins/publish/extract_model.py index c99a5b55d1..3b726d713c 100644 --- a/client/ayon_core/hosts/zbrush/plugins/publish/extract_model.py +++ b/client/ayon_core/hosts/zbrush/plugins/publish/extract_model.py @@ -1,6 +1,5 @@ import os import pyblish.api -from ayon_core.lib import EnumDef from ayon_core.pipeline import publish from ayon_core.pipeline.publish import ( AYONPyblishPluginMixin @@ -19,16 +18,14 @@ class ExtractModel(publish.Extractor, label = "Extract Model" hosts = ["zbrush"] families = ["model"] - export_format = "obj" def process(self, instance): creator_attrs = instance.data["creator_attributes"] - attr_values = self.get_attr_values_from_data(instance.data) - export_format = attr_values.get("exportFormat") + subd_level = creator_attrs.get("subd_level") + export_format = creator_attrs.get("exportFormat") stagingdir = self.staging_dir(instance) filename = f"{instance.name}.{export_format}" filepath = os.path.join(stagingdir, filename) - subd_level = creator_attrs.get("subd_level") if "representations" not in instance.data: instance.data["representations"] = [] @@ -45,13 +42,3 @@ class ExtractModel(publish.Extractor, self.log.info( "Extracted instance '%s' to: %s" % (instance.name, filepath) ) - - @classmethod - def get_attribute_defs(cls): - export_format_enum = ["abc", "fbx", "ma", "obj"] - return[ - EnumDef("exportFormat", - export_format_enum, - default=cls.export_format, - label="Export Format Options") - ]