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..f3902a2868 --- /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 Fbx Model" + 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..6a127cc998 100644 --- a/server_addon/maya/server/settings/publishers.py +++ b/server_addon/maya/server/settings/publishers.py @@ -625,6 +625,10 @@ class PublishersModel(BaseSettingsModel): default_factory=CollectFbxCameraModel, title="Collect Camera for FBX export", ) + CollectFbxModel: BasicValidateModel = SettingsField( + default_factory=BasicValidateModel, + title="Collect Model for FBX export", + ) CollectGLTF: CollectGLTFModel = SettingsField( default_factory=CollectGLTFModel, title="Collect Assets for GLB/GLTF export" @@ -1047,6 +1051,11 @@ DEFAULT_PUBLISH_SETTINGS = { "CollectFbxCamera": { "enabled": False }, + "CollectFbxModel": { + "enabled": False, + "optional": True, + "active": True + }, "CollectGLTF": { "enabled": False },