From b6a4047efae94af8567a20407e4a8dad0b4704cf Mon Sep 17 00:00:00 2001 From: Kayla Man Date: Tue, 25 Jun 2024 21:50:40 +0800 Subject: [PATCH 1/2] supports to export fbx in model family in Maya --- .../plugins/publish/collect_fbx_model.py | 29 +++++++++++++++++++ server_addon/maya/client/ayon_maya/version.py | 2 +- server_addon/maya/package.py | 2 +- .../maya/server/settings/publishers.py | 12 ++++++++ 4 files changed, 43 insertions(+), 2 deletions(-) create mode 100644 server_addon/maya/client/ayon_maya/plugins/publish/collect_fbx_model.py diff --git a/server_addon/maya/client/ayon_maya/plugins/publish/collect_fbx_model.py b/server_addon/maya/client/ayon_maya/plugins/publish/collect_fbx_model.py new file mode 100644 index 0000000000..a5da0419a9 --- /dev/null +++ b/server_addon/maya/client/ayon_maya/plugins/publish/collect_fbx_model.py @@ -0,0 +1,29 @@ +import pyblish.api +from ayon_core.pipeline import OptionalPyblishPluginMixin +from ayon_maya.api import plugin + + + +class CollectFbxModel(plugin.MayaInstancePlugin, + OptionalPyblishPluginMixin): + """Collect Camera for FBX export.""" + + order = pyblish.api.CollectorOrder + 0.2 + label = "Collect Model for FBX export" + families = ["model"] + optional = True + + def process(self, instance): + if not self.is_active(instance.data): + return + + if not instance.data.get("families"): + instance.data["families"] = [] + + if "fbx" not in instance.data["families"]: + instance.data["families"].append("fbx") + + for key in { + "bakeComplexAnimation", "bakeResampleAnimation", + "skins", "constraints", "lights"}: + instance.data[key] = False diff --git a/server_addon/maya/client/ayon_maya/version.py b/server_addon/maya/client/ayon_maya/version.py index 1f53dfa492..80af287e97 100644 --- a/server_addon/maya/client/ayon_maya/version.py +++ b/server_addon/maya/client/ayon_maya/version.py @@ -1,3 +1,3 @@ # -*- coding: utf-8 -*- """Package declaring AYON addon 'maya' version.""" -__version__ = "0.2.7" +__version__ = "0.2.8" diff --git a/server_addon/maya/package.py b/server_addon/maya/package.py index 47aa8a4c0d..b2d0622493 100644 --- a/server_addon/maya/package.py +++ b/server_addon/maya/package.py @@ -1,6 +1,6 @@ name = "maya" title = "Maya" -version = "0.2.7" +version = "0.2.8" client_dir = "ayon_maya" ayon_required_addons = { diff --git a/server_addon/maya/server/settings/publishers.py b/server_addon/maya/server/settings/publishers.py index 9c552e17fa..4834ed839a 100644 --- a/server_addon/maya/server/settings/publishers.py +++ b/server_addon/maya/server/settings/publishers.py @@ -184,6 +184,11 @@ class CollectFbxCameraModel(BaseSettingsModel): enabled: bool = SettingsField(title="CollectFbxCamera") + +class CollectFbxModelModel(BaseSettingsModel): + enabled: bool = SettingsField(title="CollectFbxModel") + + class CollectGLTFModel(BaseSettingsModel): enabled: bool = SettingsField(title="CollectGLTF") @@ -625,6 +630,10 @@ class PublishersModel(BaseSettingsModel): default_factory=CollectFbxCameraModel, title="Collect Camera for FBX export", ) + CollectFbxModel: CollectFbxModelModel = SettingsField( + default_factory=CollectFbxModelModel, + title="Collect Model for FBX export", + ) CollectGLTF: CollectGLTFModel = SettingsField( default_factory=CollectGLTFModel, title="Collect Assets for GLB/GLTF export" @@ -1047,6 +1056,9 @@ DEFAULT_PUBLISH_SETTINGS = { "CollectFbxCamera": { "enabled": False }, + "CollectFbxModel": { + "enabled": False + }, "CollectGLTF": { "enabled": False }, From f866949669f302a837dc7f09ae23f96ee393d545 Mon Sep 17 00:00:00 2001 From: Kayla Man Date: Tue, 25 Jun 2024 22:37:58 +0800 Subject: [PATCH 2/2] add optional and enable settings for collect fbx model in ayon settings --- .../ayon_maya/plugins/publish/collect_fbx_model.py | 2 +- server_addon/maya/server/settings/publishers.py | 13 +++++-------- 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/server_addon/maya/client/ayon_maya/plugins/publish/collect_fbx_model.py b/server_addon/maya/client/ayon_maya/plugins/publish/collect_fbx_model.py index a5da0419a9..f3902a2868 100644 --- a/server_addon/maya/client/ayon_maya/plugins/publish/collect_fbx_model.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/collect_fbx_model.py @@ -9,7 +9,7 @@ class CollectFbxModel(plugin.MayaInstancePlugin, """Collect Camera for FBX export.""" order = pyblish.api.CollectorOrder + 0.2 - label = "Collect Model for FBX export" + label = "Collect Fbx Model" families = ["model"] optional = True diff --git a/server_addon/maya/server/settings/publishers.py b/server_addon/maya/server/settings/publishers.py index 4834ed839a..6a127cc998 100644 --- a/server_addon/maya/server/settings/publishers.py +++ b/server_addon/maya/server/settings/publishers.py @@ -184,11 +184,6 @@ class CollectFbxCameraModel(BaseSettingsModel): enabled: bool = SettingsField(title="CollectFbxCamera") - -class CollectFbxModelModel(BaseSettingsModel): - enabled: bool = SettingsField(title="CollectFbxModel") - - class CollectGLTFModel(BaseSettingsModel): enabled: bool = SettingsField(title="CollectGLTF") @@ -630,8 +625,8 @@ class PublishersModel(BaseSettingsModel): default_factory=CollectFbxCameraModel, title="Collect Camera for FBX export", ) - CollectFbxModel: CollectFbxModelModel = SettingsField( - default_factory=CollectFbxModelModel, + CollectFbxModel: BasicValidateModel = SettingsField( + default_factory=BasicValidateModel, title="Collect Model for FBX export", ) CollectGLTF: CollectGLTFModel = SettingsField( @@ -1057,7 +1052,9 @@ DEFAULT_PUBLISH_SETTINGS = { "enabled": False }, "CollectFbxModel": { - "enabled": False + "enabled": False, + "optional": True, + "active": True }, "CollectGLTF": { "enabled": False