mirror of
https://github.com/ynput/ayon-core.git
synced 2025-12-24 21:04:40 +01:00
Merge branch 'develop' into enhancement/AY-4911_Move-Celaction-client-code
This commit is contained in:
commit
491e0f6bd2
82 changed files with 147 additions and 98 deletions
|
|
@ -15,11 +15,11 @@ from ayon_core.pipeline.publish.lib import (
|
|||
replace_with_published_scene_path
|
||||
)
|
||||
from ayon_core.pipeline.publish import KnownPublishError
|
||||
from ayon_core.hosts.max.api.lib import (
|
||||
from ayon_max.api.lib import (
|
||||
get_current_renderer,
|
||||
get_multipass_setting
|
||||
)
|
||||
from ayon_core.hosts.max.api.lib_rendersettings import RenderSettings
|
||||
from ayon_max.api.lib_rendersettings import RenderSettings
|
||||
from openpype_modules.deadline import abstract_submit_deadline
|
||||
from openpype_modules.deadline.abstract_submit_deadline import DeadlineJobInfo
|
||||
|
||||
|
|
@ -205,11 +205,11 @@ class MaxSubmitDeadline(abstract_submit_deadline.AbstractSubmitDeadline,
|
|||
|
||||
def _use_published_name(self, data, project_settings):
|
||||
# Not all hosts can import these modules.
|
||||
from ayon_core.hosts.max.api.lib import (
|
||||
from ayon_max.api.lib import (
|
||||
get_current_renderer,
|
||||
get_multipass_setting
|
||||
)
|
||||
from ayon_core.hosts.max.api.lib_rendersettings import RenderSettings
|
||||
from ayon_max.api.lib_rendersettings import RenderSettings
|
||||
|
||||
instance = self._instance
|
||||
job_info = copy.deepcopy(self.job_info)
|
||||
|
|
|
|||
|
|
@ -558,7 +558,7 @@ class ExtractBurninProfile(BaseSettingsModel):
|
|||
_layout = "expanded"
|
||||
product_types: list[str] = SettingsField(
|
||||
default_factory=list,
|
||||
title="Produt types"
|
||||
title="Product types"
|
||||
)
|
||||
hosts: list[str] = SettingsField(
|
||||
default_factory=list,
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ from pymxs import runtime as rt
|
|||
|
||||
|
||||
JSON_PREFIX = "JSON::"
|
||||
log = logging.getLogger("ayon_core.hosts.max")
|
||||
log = logging.getLogger("ayon_max")
|
||||
|
||||
|
||||
def get_main_window():
|
||||
|
|
@ -6,7 +6,7 @@ import os
|
|||
|
||||
from pymxs import runtime as rt
|
||||
|
||||
from ayon_core.hosts.max.api.lib import get_current_renderer
|
||||
from ayon_max.api.lib import get_current_renderer
|
||||
from ayon_core.pipeline import get_current_project_name
|
||||
from ayon_core.settings import get_project_settings
|
||||
|
||||
|
|
@ -5,7 +5,7 @@ from ayon_core.settings import get_project_settings
|
|||
from ayon_core.pipeline import get_current_project_name
|
||||
from ayon_core.pipeline.context_tools import get_current_folder_entity
|
||||
|
||||
from ayon_core.hosts.max.api.lib import (
|
||||
from ayon_max.api.lib import (
|
||||
set_render_frame_range,
|
||||
get_current_renderer,
|
||||
get_default_render_folder
|
||||
|
|
@ -5,7 +5,7 @@ from qtpy import QtWidgets, QtCore
|
|||
from pymxs import runtime as rt
|
||||
|
||||
from ayon_core.tools.utils import host_tools
|
||||
from ayon_core.hosts.max.api import lib
|
||||
from ayon_max.api import lib
|
||||
|
||||
|
||||
class AYONMenu(object):
|
||||
|
|
@ -14,14 +14,14 @@ from ayon_core.pipeline import (
|
|||
AVALON_CONTAINER_ID,
|
||||
AYON_CONTAINER_ID,
|
||||
)
|
||||
from ayon_core.hosts.max.api.menu import AYONMenu
|
||||
from ayon_core.hosts.max.api import lib
|
||||
from ayon_core.hosts.max.api.plugin import MS_CUSTOM_ATTRIB
|
||||
from ayon_core.hosts.max import MAX_HOST_DIR
|
||||
from ayon_max.api.menu import AYONMenu
|
||||
from ayon_max.api import lib
|
||||
from ayon_max.api.plugin import MS_CUSTOM_ATTRIB
|
||||
from ayon_max import MAX_HOST_DIR
|
||||
|
||||
from pymxs import runtime as rt # noqa
|
||||
|
||||
log = logging.getLogger("ayon_core.hosts.max")
|
||||
log = logging.getLogger("ayon_max")
|
||||
|
||||
PLUGINS_DIR = os.path.join(MAX_HOST_DIR, "plugins")
|
||||
PUBLISH_PATH = os.path.join(PLUGINS_DIR, "publish")
|
||||
|
|
@ -3,7 +3,7 @@ import contextlib
|
|||
from pymxs import runtime as rt
|
||||
from .lib import get_max_version, render_resolution
|
||||
|
||||
log = logging.getLogger("ayon_core.hosts.max")
|
||||
log = logging.getLogger("ayon_max")
|
||||
|
||||
|
||||
@contextlib.contextmanager
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
"""Pre-launch to force 3ds max startup script."""
|
||||
import os
|
||||
from ayon_core.hosts.max import MAX_HOST_DIR
|
||||
from ayon_max import MAX_HOST_DIR
|
||||
from ayon_applications import PreLaunchHook, LaunchTypes
|
||||
|
||||
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
"""Creator plugin for creating camera."""
|
||||
from ayon_core.hosts.max.api import plugin
|
||||
from ayon_max.api import plugin
|
||||
|
||||
|
||||
class CreateCamera(plugin.MaxCreator):
|
||||
|
|
@ -9,3 +9,5 @@ class CreateCamera(plugin.MaxCreator):
|
|||
label = "Camera"
|
||||
product_type = "camera"
|
||||
icon = "gear"
|
||||
|
||||
settings_category = "max"
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
"""Creator plugin for creating raw max scene."""
|
||||
from ayon_core.hosts.max.api import plugin
|
||||
from ayon_max.api import plugin
|
||||
|
||||
|
||||
class CreateMaxScene(plugin.MaxCreator):
|
||||
|
|
@ -9,3 +9,5 @@ class CreateMaxScene(plugin.MaxCreator):
|
|||
label = "Max Scene"
|
||||
product_type = "maxScene"
|
||||
icon = "gear"
|
||||
|
||||
settings_category = "max"
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
"""Creator plugin for model."""
|
||||
from ayon_core.hosts.max.api import plugin
|
||||
from ayon_max.api import plugin
|
||||
|
||||
|
||||
class CreateModel(plugin.MaxCreator):
|
||||
|
|
@ -9,3 +9,5 @@ class CreateModel(plugin.MaxCreator):
|
|||
label = "Model"
|
||||
product_type = "model"
|
||||
icon = "gear"
|
||||
|
||||
settings_category = "max"
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
"""Creator plugin for creating pointcache alembics."""
|
||||
from ayon_core.hosts.max.api import plugin
|
||||
from ayon_max.api import plugin
|
||||
|
||||
|
||||
class CreatePointCache(plugin.MaxCreator):
|
||||
|
|
@ -9,3 +9,5 @@ class CreatePointCache(plugin.MaxCreator):
|
|||
label = "Point Cache"
|
||||
product_type = "pointcache"
|
||||
icon = "gear"
|
||||
|
||||
settings_category = "max"
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
"""Creator plugin for creating point cloud."""
|
||||
from ayon_core.hosts.max.api import plugin
|
||||
from ayon_max.api import plugin
|
||||
|
||||
|
||||
class CreatePointCloud(plugin.MaxCreator):
|
||||
|
|
@ -9,3 +9,5 @@ class CreatePointCloud(plugin.MaxCreator):
|
|||
label = "Point Cloud"
|
||||
product_type = "pointcloud"
|
||||
icon = "gear"
|
||||
|
||||
settings_category = "max"
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
"""Creator plugin for creating camera."""
|
||||
from ayon_core.hosts.max.api import plugin
|
||||
from ayon_max.api import plugin
|
||||
|
||||
|
||||
class CreateRedshiftProxy(plugin.MaxCreator):
|
||||
|
|
@ -8,3 +8,5 @@ class CreateRedshiftProxy(plugin.MaxCreator):
|
|||
label = "Redshift Proxy"
|
||||
product_type = "redshiftproxy"
|
||||
icon = "gear"
|
||||
|
||||
settings_category = "max"
|
||||
|
|
@ -1,9 +1,9 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
"""Creator plugin for creating camera."""
|
||||
import os
|
||||
from ayon_core.hosts.max.api import plugin
|
||||
from ayon_max.api import plugin
|
||||
from ayon_core.lib import BoolDef
|
||||
from ayon_core.hosts.max.api.lib_rendersettings import RenderSettings
|
||||
from ayon_max.api.lib_rendersettings import RenderSettings
|
||||
|
||||
|
||||
class CreateRender(plugin.MaxCreator):
|
||||
|
|
@ -13,6 +13,8 @@ class CreateRender(plugin.MaxCreator):
|
|||
product_type = "maxrender"
|
||||
icon = "gear"
|
||||
|
||||
settings_category = "max"
|
||||
|
||||
def create(self, product_name, instance_data, pre_create_data):
|
||||
from pymxs import runtime as rt
|
||||
file = rt.maxFileName
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
"""Creator plugin for creating review in Max."""
|
||||
from ayon_core.hosts.max.api import plugin
|
||||
from ayon_max.api import plugin
|
||||
from ayon_core.lib import BoolDef, EnumDef, NumberDef
|
||||
|
||||
|
||||
|
|
@ -12,6 +12,8 @@ class CreateReview(plugin.MaxCreator):
|
|||
product_type = "review"
|
||||
icon = "video-camera"
|
||||
|
||||
settings_category = "max"
|
||||
|
||||
review_width = 1920
|
||||
review_height = 1080
|
||||
percentSize = 100
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
"""Creator plugin for creating TyCache."""
|
||||
from ayon_core.hosts.max.api import plugin
|
||||
from ayon_max.api import plugin
|
||||
|
||||
|
||||
class CreateTyCache(plugin.MaxCreator):
|
||||
|
|
@ -9,3 +9,5 @@ class CreateTyCache(plugin.MaxCreator):
|
|||
label = "TyCache"
|
||||
product_type = "tycache"
|
||||
icon = "gear"
|
||||
|
||||
settings_category = "max"
|
||||
|
|
@ -3,8 +3,8 @@
|
|||
import ayon_api
|
||||
|
||||
from ayon_core.pipeline import CreatedInstance, AutoCreator
|
||||
from ayon_core.hosts.max.api import plugin
|
||||
from ayon_core.hosts.max.api.lib import read, imprint
|
||||
from ayon_max.api import plugin
|
||||
from ayon_max.api.lib import read, imprint
|
||||
from pymxs import runtime as rt
|
||||
|
||||
|
||||
|
|
@ -17,6 +17,8 @@ class CreateWorkfile(plugin.MaxCreatorBase, AutoCreator):
|
|||
|
||||
default_variant = "Main"
|
||||
|
||||
settings_category = "max"
|
||||
|
||||
def create(self):
|
||||
variant = self.default_variant
|
||||
current_instance = next(
|
||||
|
|
@ -1,12 +1,12 @@
|
|||
import os
|
||||
|
||||
from ayon_core.hosts.max.api import lib
|
||||
from ayon_core.hosts.max.api.lib import (
|
||||
from ayon_max.api import lib
|
||||
from ayon_max.api.lib import (
|
||||
unique_namespace,
|
||||
get_namespace,
|
||||
object_transform_set
|
||||
)
|
||||
from ayon_core.hosts.max.api.pipeline import (
|
||||
from ayon_max.api.pipeline import (
|
||||
containerise,
|
||||
get_previous_loaded_object,
|
||||
update_custom_attribute_data,
|
||||
|
|
@ -1,14 +1,14 @@
|
|||
import os
|
||||
from qtpy import QtWidgets, QtCore
|
||||
from ayon_core.lib.attribute_definitions import EnumDef
|
||||
from ayon_core.hosts.max.api import lib
|
||||
from ayon_core.hosts.max.api.lib import (
|
||||
from ayon_max.api import lib
|
||||
from ayon_max.api.lib import (
|
||||
unique_namespace,
|
||||
get_namespace,
|
||||
object_transform_set,
|
||||
is_headless
|
||||
)
|
||||
from ayon_core.hosts.max.api.pipeline import (
|
||||
from ayon_max.api.pipeline import (
|
||||
containerise, get_previous_loaded_object,
|
||||
update_custom_attribute_data,
|
||||
remove_container_data
|
||||
|
|
@ -1,12 +1,12 @@
|
|||
import os
|
||||
from ayon_core.pipeline import load, get_representation_path
|
||||
from ayon_core.hosts.max.api.pipeline import (
|
||||
from ayon_max.api.pipeline import (
|
||||
containerise,
|
||||
get_previous_loaded_object,
|
||||
remove_container_data
|
||||
)
|
||||
from ayon_core.hosts.max.api import lib
|
||||
from ayon_core.hosts.max.api.lib import (
|
||||
from ayon_max.api import lib
|
||||
from ayon_max.api.lib import (
|
||||
maintained_selection, unique_namespace
|
||||
)
|
||||
|
||||
|
|
@ -1,17 +1,17 @@
|
|||
import os
|
||||
from ayon_core.pipeline import load, get_representation_path
|
||||
from ayon_core.hosts.max.api.pipeline import (
|
||||
from ayon_max.api.pipeline import (
|
||||
containerise, get_previous_loaded_object,
|
||||
update_custom_attribute_data,
|
||||
remove_container_data
|
||||
)
|
||||
from ayon_core.hosts.max.api import lib
|
||||
from ayon_core.hosts.max.api.lib import (
|
||||
from ayon_max.api import lib
|
||||
from ayon_max.api.lib import (
|
||||
unique_namespace,
|
||||
get_namespace,
|
||||
object_transform_set
|
||||
)
|
||||
from ayon_core.hosts.max.api.lib import maintained_selection
|
||||
from ayon_max.api.lib import maintained_selection
|
||||
|
||||
|
||||
class FbxModelLoader(load.LoaderPlugin):
|
||||
|
|
@ -1,13 +1,13 @@
|
|||
import os
|
||||
|
||||
from ayon_core.hosts.max.api import lib
|
||||
from ayon_core.hosts.max.api.lib import (
|
||||
from ayon_max.api import lib
|
||||
from ayon_max.api.lib import (
|
||||
unique_namespace,
|
||||
get_namespace,
|
||||
maintained_selection,
|
||||
object_transform_set
|
||||
)
|
||||
from ayon_core.hosts.max.api.pipeline import (
|
||||
from ayon_max.api.pipeline import (
|
||||
containerise,
|
||||
get_previous_loaded_object,
|
||||
update_custom_attribute_data,
|
||||
|
|
@ -2,15 +2,15 @@ import os
|
|||
|
||||
from pymxs import runtime as rt
|
||||
from ayon_core.pipeline.load import LoadError
|
||||
from ayon_core.hosts.max.api import lib
|
||||
from ayon_core.hosts.max.api.lib import (
|
||||
from ayon_max.api import lib
|
||||
from ayon_max.api.lib import (
|
||||
unique_namespace,
|
||||
get_namespace,
|
||||
object_transform_set,
|
||||
get_plugins
|
||||
)
|
||||
from ayon_core.hosts.max.api.lib import maintained_selection
|
||||
from ayon_core.hosts.max.api.pipeline import (
|
||||
from ayon_max.api.lib import maintained_selection
|
||||
from ayon_max.api.pipeline import (
|
||||
containerise,
|
||||
get_previous_loaded_object,
|
||||
update_custom_attribute_data,
|
||||
|
|
@ -6,9 +6,9 @@ Because of limited api, alembics can be only loaded, but not easily updated.
|
|||
"""
|
||||
import os
|
||||
from ayon_core.pipeline import load, get_representation_path
|
||||
from ayon_core.hosts.max.api import lib, maintained_selection
|
||||
from ayon_core.hosts.max.api.lib import unique_namespace
|
||||
from ayon_core.hosts.max.api.pipeline import (
|
||||
from ayon_max.api import lib, maintained_selection
|
||||
from ayon_max.api.lib import unique_namespace
|
||||
from ayon_max.api.pipeline import (
|
||||
containerise,
|
||||
get_previous_loaded_object,
|
||||
remove_container_data
|
||||
|
|
@ -1,20 +1,20 @@
|
|||
import os
|
||||
from ayon_core.pipeline import load, get_representation_path
|
||||
from ayon_core.pipeline.load import LoadError
|
||||
from ayon_core.hosts.max.api.pipeline import (
|
||||
from ayon_max.api.pipeline import (
|
||||
containerise,
|
||||
get_previous_loaded_object,
|
||||
update_custom_attribute_data,
|
||||
remove_container_data
|
||||
)
|
||||
|
||||
from ayon_core.hosts.max.api.lib import (
|
||||
from ayon_max.api.lib import (
|
||||
unique_namespace,
|
||||
get_namespace,
|
||||
object_transform_set,
|
||||
get_plugins
|
||||
)
|
||||
from ayon_core.hosts.max.api import lib
|
||||
from ayon_max.api import lib
|
||||
from pymxs import runtime as rt
|
||||
|
||||
|
||||
|
|
@ -1,11 +1,11 @@
|
|||
import os
|
||||
|
||||
from ayon_core.hosts.max.api import lib, maintained_selection
|
||||
from ayon_core.hosts.max.api.lib import (
|
||||
from ayon_max.api import lib, maintained_selection
|
||||
from ayon_max.api.lib import (
|
||||
unique_namespace,
|
||||
|
||||
)
|
||||
from ayon_core.hosts.max.api.pipeline import (
|
||||
from ayon_max.api.pipeline import (
|
||||
containerise,
|
||||
get_previous_loaded_object,
|
||||
update_custom_attribute_data,
|
||||
|
|
@ -6,14 +6,14 @@ from ayon_core.pipeline import (
|
|||
get_representation_path
|
||||
)
|
||||
from ayon_core.pipeline.load import LoadError
|
||||
from ayon_core.hosts.max.api.pipeline import (
|
||||
from ayon_max.api.pipeline import (
|
||||
containerise,
|
||||
update_custom_attribute_data,
|
||||
get_previous_loaded_object,
|
||||
remove_container_data
|
||||
)
|
||||
from ayon_core.hosts.max.api import lib
|
||||
from ayon_core.hosts.max.api.lib import (
|
||||
from ayon_max.api import lib
|
||||
from ayon_max.api.lib import (
|
||||
unique_namespace,
|
||||
get_plugins
|
||||
)
|
||||
|
|
@ -1,10 +1,10 @@
|
|||
import os
|
||||
from ayon_core.hosts.max.api import lib, maintained_selection
|
||||
from ayon_core.hosts.max.api.lib import (
|
||||
from ayon_max.api import lib, maintained_selection
|
||||
from ayon_max.api.lib import (
|
||||
unique_namespace,
|
||||
|
||||
)
|
||||
from ayon_core.hosts.max.api.pipeline import (
|
||||
from ayon_max.api.pipeline import (
|
||||
containerise,
|
||||
get_previous_loaded_object,
|
||||
update_custom_attribute_data,
|
||||
|
|
@ -5,10 +5,10 @@ import pyblish.api
|
|||
|
||||
from pymxs import runtime as rt
|
||||
from ayon_core.pipeline.publish import KnownPublishError
|
||||
from ayon_core.hosts.max.api import colorspace
|
||||
from ayon_core.hosts.max.api.lib import get_max_version, get_current_renderer
|
||||
from ayon_core.hosts.max.api.lib_rendersettings import RenderSettings
|
||||
from ayon_core.hosts.max.api.lib_renderproducts import RenderProducts
|
||||
from ayon_max.api import colorspace
|
||||
from ayon_max.api.lib import get_max_version, get_current_renderer
|
||||
from ayon_max.api.lib_rendersettings import RenderSettings
|
||||
from ayon_max.api.lib_renderproducts import RenderProducts
|
||||
|
||||
|
||||
class CollectRender(pyblish.api.InstancePlugin):
|
||||
|
|
@ -4,7 +4,7 @@ import pyblish.api
|
|||
|
||||
from pymxs import runtime as rt
|
||||
from ayon_core.lib import BoolDef
|
||||
from ayon_core.hosts.max.api.lib import get_max_version
|
||||
from ayon_max.api.lib import get_max_version
|
||||
from ayon_core.pipeline.publish import (
|
||||
AYONPyblishPluginMixin,
|
||||
KnownPublishError
|
||||
|
|
@ -41,8 +41,8 @@ import os
|
|||
import pyblish.api
|
||||
from ayon_core.pipeline import publish, OptionalPyblishPluginMixin
|
||||
from pymxs import runtime as rt
|
||||
from ayon_core.hosts.max.api import maintained_selection
|
||||
from ayon_core.hosts.max.api.lib import suspended_refresh
|
||||
from ayon_max.api import maintained_selection
|
||||
from ayon_max.api.lib import suspended_refresh
|
||||
from ayon_core.lib import BoolDef
|
||||
|
||||
|
||||
|
|
@ -2,8 +2,8 @@ import os
|
|||
import pyblish.api
|
||||
from ayon_core.pipeline import publish, OptionalPyblishPluginMixin
|
||||
from pymxs import runtime as rt
|
||||
from ayon_core.hosts.max.api import maintained_selection
|
||||
from ayon_core.hosts.max.api.lib import convert_unit_scale
|
||||
from ayon_max.api import maintained_selection
|
||||
from ayon_max.api.lib import convert_unit_scale
|
||||
|
||||
|
||||
class ExtractModelFbx(publish.Extractor, OptionalPyblishPluginMixin):
|
||||
|
|
@ -15,6 +15,8 @@ class ExtractMaxSceneRaw(publish.Extractor, OptionalPyblishPluginMixin):
|
|||
families = ["camera", "maxScene", "model"]
|
||||
optional = True
|
||||
|
||||
settings_category = "max"
|
||||
|
||||
def process(self, instance):
|
||||
if not self.is_active(instance.data):
|
||||
return
|
||||
|
|
@ -2,8 +2,8 @@ import os
|
|||
import pyblish.api
|
||||
from ayon_core.pipeline import publish, OptionalPyblishPluginMixin
|
||||
from pymxs import runtime as rt
|
||||
from ayon_core.hosts.max.api import maintained_selection
|
||||
from ayon_core.hosts.max.api.lib import suspended_refresh
|
||||
from ayon_max.api import maintained_selection
|
||||
from ayon_max.api.lib import suspended_refresh
|
||||
from ayon_core.pipeline.publish import KnownPublishError
|
||||
|
||||
|
||||
|
|
@ -18,6 +18,8 @@ class ExtractModelObj(publish.Extractor, OptionalPyblishPluginMixin):
|
|||
families = ["model"]
|
||||
optional = True
|
||||
|
||||
settings_category = "max"
|
||||
|
||||
def process(self, instance):
|
||||
if not self.is_active(instance.data):
|
||||
return
|
||||
|
|
@ -3,7 +3,7 @@ import os
|
|||
import pyblish.api
|
||||
from pymxs import runtime as rt
|
||||
|
||||
from ayon_core.hosts.max.api import maintained_selection
|
||||
from ayon_max.api import maintained_selection
|
||||
from ayon_core.pipeline import OptionalPyblishPluginMixin, publish
|
||||
|
||||
|
||||
|
|
@ -17,6 +17,8 @@ class ExtractModelUSD(publish.Extractor,
|
|||
families = ["model"]
|
||||
optional = True
|
||||
|
||||
settings_category = "max"
|
||||
|
||||
def process(self, instance):
|
||||
if not self.is_active(instance.data):
|
||||
return
|
||||
|
|
@ -3,7 +3,7 @@ import os
|
|||
import pyblish.api
|
||||
from pymxs import runtime as rt
|
||||
|
||||
from ayon_core.hosts.max.api import maintained_selection
|
||||
from ayon_max.api import maintained_selection
|
||||
from ayon_core.pipeline import publish
|
||||
|
||||
|
||||
|
|
@ -2,7 +2,7 @@ import os
|
|||
import pyblish.api
|
||||
from ayon_core.pipeline import publish
|
||||
from pymxs import runtime as rt
|
||||
from ayon_core.hosts.max.api import maintained_selection
|
||||
from ayon_max.api import maintained_selection
|
||||
|
||||
|
||||
class ExtractRedshiftProxy(publish.Extractor):
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
import os
|
||||
import pyblish.api
|
||||
from ayon_core.pipeline import publish
|
||||
from ayon_core.hosts.max.api.preview_animation import (
|
||||
from ayon_max.api.preview_animation import (
|
||||
render_preview_animation
|
||||
)
|
||||
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
import os
|
||||
import pyblish.api
|
||||
from ayon_core.pipeline import publish
|
||||
from ayon_core.hosts.max.api.preview_animation import render_preview_animation
|
||||
from ayon_max.api.preview_animation import render_preview_animation
|
||||
|
||||
|
||||
class ExtractThumbnail(publish.Extractor):
|
||||
|
|
@ -3,7 +3,7 @@ import os
|
|||
import pyblish.api
|
||||
from pymxs import runtime as rt
|
||||
|
||||
from ayon_core.hosts.max.api import maintained_selection
|
||||
from ayon_max.api import maintained_selection
|
||||
from ayon_core.pipeline import publish
|
||||
|
||||
|
||||
|
|
@ -5,8 +5,8 @@ import tempfile
|
|||
|
||||
from pymxs import runtime as rt
|
||||
from ayon_core.lib import run_subprocess
|
||||
from ayon_core.hosts.max.api.lib_rendersettings import RenderSettings
|
||||
from ayon_core.hosts.max.api.lib_renderproducts import RenderProducts
|
||||
from ayon_max.api.lib_rendersettings import RenderSettings
|
||||
from ayon_max.api.lib_renderproducts import RenderProducts
|
||||
|
||||
|
||||
class SaveScenesForCamera(pyblish.api.InstancePlugin):
|
||||
|
|
@ -61,6 +61,8 @@ class ValidateAttributes(OptionalPyblishPluginMixin,
|
|||
actions = [RepairContextAction]
|
||||
optional = True
|
||||
|
||||
settings_category = "max"
|
||||
|
||||
@classmethod
|
||||
def get_invalid(cls, context):
|
||||
attributes = json.loads(
|
||||
|
|
@ -6,7 +6,7 @@ from ayon_core.pipeline.publish import (
|
|||
OptionalPyblishPluginMixin,
|
||||
PublishValidationError
|
||||
)
|
||||
from ayon_core.hosts.max.api.action import SelectInvalidAction
|
||||
from ayon_max.api.action import SelectInvalidAction
|
||||
|
||||
|
||||
class ValidateCameraAttributes(OptionalPyblishPluginMixin,
|
||||
|
|
@ -23,6 +23,8 @@ class ValidateCameraAttributes(OptionalPyblishPluginMixin,
|
|||
actions = [SelectInvalidAction, RepairAction]
|
||||
optional = True
|
||||
|
||||
settings_category = "max"
|
||||
|
||||
DEFAULTS = ["fov", "nearrange", "farrange",
|
||||
"nearclip", "farclip"]
|
||||
CAM_TYPE = ["Freecamera", "Targetcamera",
|
||||
|
|
@ -10,7 +10,7 @@ from ayon_core.pipeline.publish import (
|
|||
PublishValidationError,
|
||||
KnownPublishError
|
||||
)
|
||||
from ayon_core.hosts.max.api.lib import get_frame_range, set_timeline
|
||||
from ayon_max.api.lib import get_frame_range, set_timeline
|
||||
|
||||
|
||||
class ValidateFrameRange(pyblish.api.InstancePlugin,
|
||||
|
|
@ -36,6 +36,8 @@ class ValidateFrameRange(pyblish.api.InstancePlugin,
|
|||
optional = True
|
||||
actions = [RepairAction]
|
||||
|
||||
settings_category = "max"
|
||||
|
||||
def process(self, instance):
|
||||
if not self.is_active(instance.data):
|
||||
self.log.debug("Skipping Validate Frame Range...")
|
||||
|
|
@ -7,7 +7,7 @@ from ayon_core.pipeline.publish import (
|
|||
PublishValidationError,
|
||||
OptionalPyblishPluginMixin
|
||||
)
|
||||
from ayon_core.hosts.max.api.action import SelectInvalidAction
|
||||
from ayon_max.api.action import SelectInvalidAction
|
||||
from pymxs import runtime as rt
|
||||
|
||||
|
||||
|
|
@ -27,6 +27,8 @@ class ValidateInstanceInContext(pyblish.api.InstancePlugin,
|
|||
hosts = ["max"]
|
||||
actions = [SelectInvalidAction, RepairAction]
|
||||
|
||||
settings_category = "max"
|
||||
|
||||
def process(self, instance):
|
||||
if not self.is_active(instance.data):
|
||||
return
|
||||
|
|
@ -9,7 +9,7 @@ from ayon_core.pipeline.publish import (
|
|||
OptionalPyblishPluginMixin,
|
||||
PublishValidationError
|
||||
)
|
||||
from ayon_core.hosts.max.api.lib import get_plugins
|
||||
from ayon_max.api.lib import get_plugins
|
||||
|
||||
|
||||
class ValidateLoadedPlugin(OptionalPyblishPluginMixin,
|
||||
|
|
@ -25,6 +25,8 @@ class ValidateLoadedPlugin(OptionalPyblishPluginMixin,
|
|||
optional = True
|
||||
actions = [RepairAction]
|
||||
|
||||
settings_category = "max"
|
||||
|
||||
family_plugins_mapping = []
|
||||
|
||||
@classmethod
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
|
||||
import pyblish.api
|
||||
from ayon_core.hosts.max.api.action import SelectInvalidAction
|
||||
from ayon_max.api.action import SelectInvalidAction
|
||||
from ayon_core.pipeline.publish import (
|
||||
ValidateMeshOrder,
|
||||
OptionalPyblishPluginMixin,
|
||||
|
|
@ -30,6 +30,8 @@ class ValidateMeshHasUVs(pyblish.api.InstancePlugin,
|
|||
actions = [SelectInvalidAction]
|
||||
optional = True
|
||||
|
||||
settings_category = "max"
|
||||
|
||||
@classmethod
|
||||
def get_invalid(cls, instance):
|
||||
meshes = [member for member in instance.data["members"]
|
||||
|
|
@ -4,7 +4,7 @@ import re
|
|||
|
||||
import pyblish.api
|
||||
|
||||
from ayon_core.hosts.max.api.action import SelectInvalidAction
|
||||
from ayon_max.api.action import SelectInvalidAction
|
||||
|
||||
from ayon_core.pipeline.publish import (
|
||||
OptionalPyblishPluginMixin,
|
||||
|
|
@ -39,6 +39,9 @@ class ValidateModelName(pyblish.api.InstancePlugin,
|
|||
families = ["model"]
|
||||
label = "Validate Model Name"
|
||||
actions = [SelectInvalidAction]
|
||||
|
||||
settings_category = "max"
|
||||
|
||||
# defined by settings
|
||||
regex = r"(.*)_(?P<subset>.*)_(GEO)"
|
||||
# cache
|
||||
|
|
@ -5,7 +5,7 @@ from ayon_core.pipeline import (
|
|||
PublishValidationError,
|
||||
OptionalPyblishPluginMixin
|
||||
)
|
||||
from ayon_core.hosts.max.api.action import SelectInvalidAction
|
||||
from ayon_max.api.action import SelectInvalidAction
|
||||
|
||||
|
||||
def get_invalid_keys(obj):
|
||||
|
|
@ -39,6 +39,8 @@ class ValidateNoAnimation(pyblish.api.InstancePlugin,
|
|||
label = "Validate No Animation"
|
||||
actions = [SelectInvalidAction]
|
||||
|
||||
settings_category = "max"
|
||||
|
||||
def process(self, instance):
|
||||
if not self.is_active(instance.data):
|
||||
return
|
||||
|
|
@ -4,7 +4,7 @@ from ayon_core.pipeline import (
|
|||
PublishValidationError,
|
||||
OptionalPyblishPluginMixin)
|
||||
from ayon_core.pipeline.publish import RepairAction
|
||||
from ayon_core.hosts.max.api.lib import get_current_renderer
|
||||
from ayon_max.api.lib import get_current_renderer
|
||||
|
||||
from pymxs import runtime as rt
|
||||
|
||||
|
|
@ -3,7 +3,7 @@ import pyblish.api
|
|||
from ayon_core.pipeline import PublishValidationError
|
||||
from pymxs import runtime as rt
|
||||
from ayon_core.pipeline.publish import RepairAction
|
||||
from ayon_core.hosts.max.api.lib import get_current_renderer
|
||||
from ayon_max.api.lib import get_current_renderer
|
||||
|
||||
|
||||
class ValidateRendererRedshiftProxy(pyblish.api.InstancePlugin):
|
||||
|
|
@ -7,7 +7,7 @@ from ayon_core.pipeline.publish import (
|
|||
PublishValidationError,
|
||||
OptionalPyblishPluginMixin
|
||||
)
|
||||
from ayon_core.hosts.max.api.lib_rendersettings import RenderSettings
|
||||
from ayon_max.api.lib_rendersettings import RenderSettings
|
||||
|
||||
|
||||
class ValidateRenderPasses(OptionalPyblishPluginMixin,
|
||||
|
|
@ -21,6 +21,8 @@ class ValidateRenderPasses(OptionalPyblishPluginMixin,
|
|||
label = "Validate Render Passes"
|
||||
actions = [RepairAction]
|
||||
|
||||
settings_category = "max"
|
||||
|
||||
def process(self, instance):
|
||||
invalid = self.get_invalid(instance)
|
||||
if invalid:
|
||||
|
|
@ -7,7 +7,7 @@ from ayon_core.pipeline.publish import (
|
|||
RepairAction,
|
||||
PublishValidationError
|
||||
)
|
||||
from ayon_core.hosts.max.api.lib import (
|
||||
from ayon_max.api.lib import (
|
||||
reset_scene_resolution,
|
||||
imprint
|
||||
)
|
||||
|
|
@ -1,15 +1,13 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
import os
|
||||
import sys
|
||||
|
||||
from ayon_max.api import MaxHost
|
||||
from ayon_core.pipeline import install_host
|
||||
# this might happen in some 3dsmax version where PYTHONPATH isn't added
|
||||
# to sys.path automatically
|
||||
for path in os.environ["PYTHONPATH"].split(os.pathsep):
|
||||
if path and path not in sys.path:
|
||||
sys.path.append(path)
|
||||
|
||||
from ayon_core.hosts.max.api import MaxHost
|
||||
from ayon_core.pipeline import install_host
|
||||
|
||||
host = MaxHost()
|
||||
install_host(host)
|
||||
|
|
@ -1,3 +1,9 @@
|
|||
name = "max"
|
||||
title = "Max"
|
||||
version = "0.1.7"
|
||||
version = "0.2.0"
|
||||
client_dir = "ayon_max"
|
||||
|
||||
ayon_required_addons = {
|
||||
"core": ">0.3.2",
|
||||
}
|
||||
ayon_compatible_addons = {}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue