mirror of
https://github.com/ynput/ayon-core.git
synced 2025-12-24 21:04:40 +01:00
commit
d341fbbc03
182 changed files with 434 additions and 434 deletions
|
|
@ -192,7 +192,7 @@ class GenerateUUIDsOnInvalidAction(pyblish.api.Action):
|
|||
nodes (list): all nodes to regenerate ids on
|
||||
"""
|
||||
|
||||
import config.maya.lib as lib
|
||||
import pype.maya.lib as lib
|
||||
import avalon.io as io
|
||||
|
||||
asset = instance.data['asset']
|
||||
|
|
@ -24,9 +24,9 @@ def install():
|
|||
pyblish.register_callback("instanceToggled", on_pyblish_instance_toggled)
|
||||
|
||||
# Disable all families except for the ones we explicitly want to see
|
||||
family_states = ["studio.imagesequence",
|
||||
"studio.camera",
|
||||
"studio.pointcache"]
|
||||
family_states = ["imagesequence",
|
||||
"camera",
|
||||
"pointcache"]
|
||||
|
||||
avalon.data["familiesStateDefault"] = False
|
||||
avalon.data["familiesStateToggled"] = family_states
|
||||
|
|
@ -75,7 +75,7 @@ def update_task_from_path(path):
|
|||
|
||||
# Find the current context from the filename
|
||||
project = io.find_one({"type": "project"},
|
||||
projection={"config.template.work": True})
|
||||
projection={"pype.template.work": True})
|
||||
template = project['config']['template']['work']
|
||||
# Force to use the registered to root to avoid using wrong paths
|
||||
template = pather.format(template, {"root": avalon.api.registered_root()})
|
||||
|
|
@ -243,7 +243,7 @@ def collect_container_metadata(container):
|
|||
"""
|
||||
# TODO: Improve method of getting the host lib module
|
||||
host_name = _get_host_name()
|
||||
package_name = "studio.{}.lib".format(host_name)
|
||||
package_name = "pype.{}.lib".format(host_name)
|
||||
hostlib = importlib.import_module(package_name)
|
||||
|
||||
if not hasattr(hostlib, "get_additional_data"):
|
||||
|
|
@ -267,6 +267,6 @@ def get_project_fps():
|
|||
config = project.get("config", None)
|
||||
assert config, "This is a bug"
|
||||
|
||||
fps = config.get("fps", 25.0)
|
||||
fps = pype.get("fps", 25.0)
|
||||
|
||||
return fps
|
||||
|
|
@ -14,7 +14,7 @@ from ..lib import (
|
|||
from . import menu
|
||||
from . import lib
|
||||
|
||||
log = logging.getLogger("config.maya")
|
||||
log = logging.getLogger("pype.maya")
|
||||
|
||||
PARENT_DIR = os.path.dirname(__file__)
|
||||
PACKAGE_DIR = os.path.dirname(PARENT_DIR)
|
||||
|
|
@ -43,7 +43,7 @@ def install():
|
|||
override_event("taskChanged", on_task_changed)
|
||||
|
||||
log.info("Setting default family states for loader..")
|
||||
avalon.data["familiesStateToggled"] = ["studio.imagesequence"]
|
||||
avalon.data["familiesStateToggled"] = ["imagesequence"]
|
||||
|
||||
|
||||
def uninstall():
|
||||
|
|
@ -1039,7 +1039,7 @@ def assign_look(nodes, subset="lookDefault"):
|
|||
version = io.find_one({"parent": subset_data['_id'],
|
||||
"type": "version",
|
||||
"data.families":
|
||||
{"$in": ["studio.look"]}
|
||||
{"$in": ["look"]}
|
||||
},
|
||||
sort=[("name", -1)],
|
||||
projection={"_id": True, "name": True})
|
||||
|
|
@ -7,7 +7,7 @@ from avalon.vendor.Qt import QtWidgets, QtCore, QtGui
|
|||
import maya.cmds as cmds
|
||||
|
||||
self = sys.modules[__name__]
|
||||
self._menu = "pype_setup"
|
||||
self._menu = "pype"
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
|
|
@ -23,9 +23,9 @@ def install():
|
|||
pyblish.register_callback("instanceToggled", on_pyblish_instance_toggled)
|
||||
|
||||
# Disable all families except for the ones we explicitly want to see
|
||||
family_states = ["studio.imagesequence",
|
||||
"studio.camera",
|
||||
"studio.pointcache"]
|
||||
family_states = ["imagesequence",
|
||||
"camera",
|
||||
"pointcache"]
|
||||
|
||||
avalon.data["familiesStateDefault"] = False
|
||||
avalon.data["familiesStateToggled"] = family_states
|
||||
|
|
@ -9,7 +9,7 @@ class CreateTiffSaver(avalon.api.Creator):
|
|||
name = "tiffDefault"
|
||||
label = "Create Tiff Saver"
|
||||
hosts = ["fusion"]
|
||||
family = "studio.saver"
|
||||
family = "saver"
|
||||
|
||||
def process(self):
|
||||
|
||||
|
|
@ -8,11 +8,11 @@ from avalon import api
|
|||
class FusionSetFrameRangeLoader(api.Loader):
|
||||
"""Specific loader of Alembic for the avalon.animation family"""
|
||||
|
||||
families = ["studio.animation",
|
||||
"studio.camera",
|
||||
"studio.imagesequence",
|
||||
"studio.yeticache",
|
||||
"studio.pointcache"]
|
||||
families = ["animation",
|
||||
"camera",
|
||||
"imagesequence",
|
||||
"yeticache",
|
||||
"pointcache"]
|
||||
representations = ["*"]
|
||||
|
||||
label = "Set frame range"
|
||||
|
|
@ -22,7 +22,7 @@ class FusionSetFrameRangeLoader(api.Loader):
|
|||
|
||||
def load(self, context, name, namespace, data):
|
||||
|
||||
from config.fusion import lib
|
||||
from pype.fusion import lib
|
||||
|
||||
version = context['version']
|
||||
version_data = version.get("data", {})
|
||||
|
|
@ -41,11 +41,11 @@ class FusionSetFrameRangeLoader(api.Loader):
|
|||
class FusionSetFrameRangeWithHandlesLoader(api.Loader):
|
||||
"""Specific loader of Alembic for the avalon.animation family"""
|
||||
|
||||
families = ["studio.animation",
|
||||
"studio.camera",
|
||||
"studio.imagesequence",
|
||||
"studio.yeticache",
|
||||
"studio.pointcache"]
|
||||
families = ["animation",
|
||||
"camera",
|
||||
"imagesequence",
|
||||
"yeticache",
|
||||
"pointcache"]
|
||||
representations = ["*"]
|
||||
|
||||
label = "Set frame range (with handles)"
|
||||
|
|
@ -55,7 +55,7 @@ class FusionSetFrameRangeWithHandlesLoader(api.Loader):
|
|||
|
||||
def load(self, context, name, namespace, data):
|
||||
|
||||
from config.fusion import lib
|
||||
from pype.fusion import lib
|
||||
|
||||
version = context['version']
|
||||
version_data = version.get("data", {})
|
||||
|
|
@ -113,7 +113,7 @@ def loader_shift(loader, frame, relative=True):
|
|||
class FusionLoadSequence(api.Loader):
|
||||
"""Load image sequence into Fusion"""
|
||||
|
||||
families = ["studio.imagesequence"]
|
||||
families = ["imagesequence"]
|
||||
representations = ["*"]
|
||||
|
||||
label = "Load sequence"
|
||||
|
|
@ -76,8 +76,8 @@ class CollectInstances(pyblish.api.ContextPlugin):
|
|||
"outputDir": os.path.dirname(path),
|
||||
"ext": ext, # todo: should be redundant
|
||||
"label": label,
|
||||
"families": ["studio.saver"],
|
||||
"family": "studio.saver",
|
||||
"families": ["saver"],
|
||||
"family": "saver",
|
||||
"active": active,
|
||||
"publish": active # backwards compatibility
|
||||
})
|
||||
|
|
@ -13,7 +13,7 @@ class CollectFusionRenderMode(pyblish.api.InstancePlugin):
|
|||
available tool does not visualize which render mode is set for the
|
||||
current comp, please run the following line in the console (Py2)
|
||||
|
||||
comp.GetData("studio.rendermode")
|
||||
comp.GetData("rendermode")
|
||||
|
||||
This will return the name of the current render mode as seen above under
|
||||
Options.
|
||||
|
|
@ -23,7 +23,7 @@ class CollectFusionRenderMode(pyblish.api.InstancePlugin):
|
|||
order = pyblish.api.CollectorOrder + 0.4
|
||||
label = "Collect Render Mode"
|
||||
hosts = ["fusion"]
|
||||
families = ["studio.saver"]
|
||||
families = ["saver"]
|
||||
|
||||
def process(self, instance):
|
||||
"""Collect all image sequence tools"""
|
||||
|
|
@ -34,11 +34,11 @@ class CollectFusionRenderMode(pyblish.api.InstancePlugin):
|
|||
raise RuntimeError("No comp previously collected, unable to "
|
||||
"retrieve Fusion version.")
|
||||
|
||||
rendermode = comp.GetData("studio.rendermode") or "renderlocal"
|
||||
rendermode = comp.GetData("rendermode") or "renderlocal"
|
||||
assert rendermode in options, "Must be supported render mode"
|
||||
|
||||
self.log.info("Render mode: {0}".format(rendermode))
|
||||
|
||||
# Append family
|
||||
family = "studio.saver.{0}".format(rendermode)
|
||||
family = "saver.{0}".format(rendermode)
|
||||
instance.data["families"].append(family)
|
||||
|
|
@ -11,13 +11,13 @@ class FusionIncrementCurrentFile(pyblish.api.ContextPlugin):
|
|||
label = "Increment current file"
|
||||
order = pyblish.api.IntegratorOrder + 9.0
|
||||
hosts = ["fusion"]
|
||||
families = ["studio.saver.deadline"]
|
||||
families = ["saver.deadline"]
|
||||
optional = True
|
||||
|
||||
def process(self, context):
|
||||
|
||||
from config.lib import version_up
|
||||
from config.action import get_errored_plugins_from_data
|
||||
from pype.lib import version_up
|
||||
from pype.action import get_errored_plugins_from_data
|
||||
|
||||
errored_plugins = get_errored_plugins_from_data(context)
|
||||
if any(plugin.__name__ == "FusionSubmitDeadline"
|
||||
|
|
@ -5,7 +5,7 @@ import subprocess
|
|||
|
||||
import pyblish.api
|
||||
|
||||
from config.action import get_errored_plugins_from_data
|
||||
from pype.action import get_errored_plugins_from_data
|
||||
|
||||
|
||||
def _get_script():
|
||||
|
|
@ -14,7 +14,7 @@ def _get_script():
|
|||
# todo: use a more elegant way to get the python script
|
||||
|
||||
try:
|
||||
from config.scripts import publish_filesequence
|
||||
from pype.scripts import publish_filesequence
|
||||
except Exception:
|
||||
raise RuntimeError("Expected module 'publish_imagesequence'"
|
||||
"to be available")
|
||||
|
|
@ -32,7 +32,7 @@ class PublishImageSequence(pyblish.api.InstancePlugin):
|
|||
order = pyblish.api.IntegratorOrder
|
||||
label = "Publish Rendered Image Sequence(s)"
|
||||
hosts = ["fusion"]
|
||||
families = ["studio.saver.renderlocal"]
|
||||
families = ["saver.renderlocal"]
|
||||
|
||||
def process(self, instance):
|
||||
|
||||
|
|
@ -55,7 +55,7 @@ class PublishImageSequence(pyblish.api.InstancePlugin):
|
|||
"regex": regex,
|
||||
"startFrame": instance.context.data["startFrame"],
|
||||
"endFrame": instance.context.data["endFrame"],
|
||||
"families": ["studio.imagesequence"],
|
||||
"families": ["imagesequence"],
|
||||
}
|
||||
|
||||
# Write metadata and store the path in the instance
|
||||
|
|
@ -14,7 +14,7 @@ class FusionRenderLocal(pyblish.api.InstancePlugin):
|
|||
order = pyblish.api.ExtractorOrder
|
||||
label = "Render Local"
|
||||
hosts = ["fusion"]
|
||||
families = ["studio.saver.renderlocal"]
|
||||
families = ["saver.renderlocal"]
|
||||
|
||||
def process(self, instance):
|
||||
|
||||
|
|
@ -7,7 +7,7 @@ class FusionSaveComp(pyblish.api.ContextPlugin):
|
|||
label = "Save current file"
|
||||
order = pyblish.api.ExtractorOrder - 0.49
|
||||
hosts = ["fusion"]
|
||||
families = ["studio.saver"]
|
||||
families = ["saver"]
|
||||
|
||||
def process(self, context):
|
||||
|
||||
|
|
@ -19,7 +19,7 @@ class FusionSubmitDeadline(pyblish.api.InstancePlugin):
|
|||
label = "Submit to Deadline"
|
||||
order = pyblish.api.IntegratorOrder
|
||||
hosts = ["fusion"]
|
||||
families = ["studio.saver.deadline"]
|
||||
families = ["saver.deadline"]
|
||||
|
||||
def process(self, instance):
|
||||
|
||||
|
|
@ -10,7 +10,7 @@ class ValidateBackgroundDepth(pyblish.api.InstancePlugin):
|
|||
label = "Validate Background Depth 32 bit"
|
||||
actions = [action.RepairAction]
|
||||
hosts = ["fusion"]
|
||||
families = ["studio.saver"]
|
||||
families = ["saver"]
|
||||
optional = True
|
||||
|
||||
@classmethod
|
||||
|
|
@ -8,7 +8,7 @@ class ValidateFusionCompSaved(pyblish.api.ContextPlugin):
|
|||
|
||||
order = pyblish.api.ValidatorOrder
|
||||
label = "Validate Comp Saved"
|
||||
families = ["studio.saver"]
|
||||
families = ["saver"]
|
||||
hosts = ["fusion"]
|
||||
|
||||
def process(self, context):
|
||||
|
|
@ -13,7 +13,7 @@ class ValidateCreateFolderChecked(pyblish.api.InstancePlugin):
|
|||
order = pyblish.api.ValidatorOrder
|
||||
actions = [action.RepairAction]
|
||||
label = "Validate Create Folder Checked"
|
||||
families = ["studio.saver"]
|
||||
families = ["saver"]
|
||||
hosts = ["fusion"]
|
||||
|
||||
@classmethod
|
||||
|
|
@ -14,7 +14,7 @@ class ValidateFilenameHasExtension(pyblish.api.InstancePlugin):
|
|||
|
||||
order = pyblish.api.ValidatorOrder
|
||||
label = "Validate Filename Has Extension"
|
||||
families = ["studio.saver"]
|
||||
families = ["saver"]
|
||||
hosts = ["fusion"]
|
||||
|
||||
def process(self, instance):
|
||||
|
|
@ -10,7 +10,7 @@ class ValidateSaverHasInput(pyblish.api.InstancePlugin):
|
|||
|
||||
order = pyblish.api.ValidatorOrder
|
||||
label = "Validate Saver Has Input"
|
||||
families = ["studio.saver"]
|
||||
families = ["saver"]
|
||||
hosts = ["fusion"]
|
||||
|
||||
@classmethod
|
||||
|
|
@ -6,7 +6,7 @@ class ValidateSaverPassthrough(pyblish.api.ContextPlugin):
|
|||
|
||||
order = pyblish.api.ValidatorOrder
|
||||
label = "Validate Saver Passthrough"
|
||||
families = ["studio.saver"]
|
||||
families = ["saver"]
|
||||
hosts = ["fusion"]
|
||||
|
||||
def process(self, context):
|
||||
|
|
@ -6,7 +6,7 @@ class ValidateUniqueSubsets(pyblish.api.InstancePlugin):
|
|||
|
||||
order = pyblish.api.ValidatorOrder
|
||||
label = "Validate Unique Subsets"
|
||||
families = ["studio.saver"]
|
||||
families = ["saver"]
|
||||
hosts = ["fusion"]
|
||||
|
||||
@classmethod
|
||||
|
|
@ -18,7 +18,7 @@ def open(filepath):
|
|||
class PlayImageSequence(api.Loader):
|
||||
"""Open Image Sequence with system default"""
|
||||
|
||||
families = ["studio.imagesequence"]
|
||||
families = ["imagesequence"]
|
||||
representations = ["*"]
|
||||
|
||||
label = "Play sequence"
|
||||
|
|
@ -35,7 +35,7 @@ class CollectDeadlineUser(pyblish.api.ContextPlugin):
|
|||
order = pyblish.api.CollectorOrder + 0.499
|
||||
label = "Deadline User"
|
||||
hosts = ['maya', 'fusion']
|
||||
families = ["studio.renderlayer", "studio.saver.deadline"]
|
||||
families = ["renderlayer", "saver.deadline"]
|
||||
|
||||
def process(self, context):
|
||||
"""Inject the current working file"""
|
||||
|
|
@ -148,7 +148,7 @@ class CollectFileSequences(pyblish.api.ContextPlugin):
|
|||
raise RuntimeError("Invalid sequence")
|
||||
|
||||
# Get family from the data
|
||||
families = data.get("families", ["studio.imagesequence"])
|
||||
families = data.get("families", ["imagesequence"])
|
||||
assert isinstance(families, (list, tuple)), "Must be iterable"
|
||||
assert families, "Must have at least a single family"
|
||||
|
||||
|
|
@ -23,18 +23,18 @@ class IntegrateAsset(pyblish.api.InstancePlugin):
|
|||
|
||||
label = "Integrate Asset"
|
||||
order = pyblish.api.IntegratorOrder
|
||||
families = ["studio.animation",
|
||||
"studio.camera",
|
||||
"studio.imagesequence",
|
||||
"studio.look",
|
||||
"config.mayaAscii",
|
||||
"studio.model",
|
||||
"studio.pointcache",
|
||||
"studio.setdress",
|
||||
"studio.rig",
|
||||
"studio.vrayproxy",
|
||||
"studio.yetiRig",
|
||||
"studio.yeticache"]
|
||||
families = ["animation",
|
||||
"camera",
|
||||
"imagesequence",
|
||||
"look",
|
||||
"pype.mayaAscii",
|
||||
"model",
|
||||
"pointcache",
|
||||
"setdress",
|
||||
"rig",
|
||||
"vrayproxy",
|
||||
"yetiRig",
|
||||
"yeticache"]
|
||||
|
||||
def process(self, instance):
|
||||
|
||||
|
|
@ -82,7 +82,7 @@ class IntegrateAsset(pyblish.api.InstancePlugin):
|
|||
self.log.debug("Establishing staging directory @ %s" % stagingdir)
|
||||
|
||||
project = io.find_one({"type": "project"},
|
||||
projection={"config.template.publish": True})
|
||||
projection={"pype.template.publish": True})
|
||||
|
||||
asset = io.find_one({"type": "asset",
|
||||
"name": ASSET,
|
||||
|
|
@ -12,7 +12,7 @@ import pyblish.api
|
|||
def _get_script():
|
||||
"""Get path to the image sequence script"""
|
||||
try:
|
||||
from config.scripts import publish_filesequence
|
||||
from pype.scripts import publish_filesequence
|
||||
except Exception as e:
|
||||
raise RuntimeError("Expected module 'publish_imagesequence'"
|
||||
"to be available")
|
||||
|
|
@ -123,7 +123,7 @@ class SubmitDependentImageSequenceJobDeadline(pyblish.api.InstancePlugin):
|
|||
label = "Submit image sequence jobs to Deadline"
|
||||
order = pyblish.api.IntegratorOrder + 0.1
|
||||
hosts = ["fusion", "maya"]
|
||||
families = ["studio.saver.deadline", "studio.renderlayer"]
|
||||
families = ["saver.deadline", "renderlayer"]
|
||||
|
||||
def process(self, instance):
|
||||
|
||||
|
|
@ -168,7 +168,7 @@ class SubmitDependentImageSequenceJobDeadline(pyblish.api.InstancePlugin):
|
|||
"regex": regex,
|
||||
"startFrame": start,
|
||||
"endFrame": end,
|
||||
"families": ["studio.imagesequence"],
|
||||
"families": ["imagesequence"],
|
||||
|
||||
# Optional metadata (for debugging)
|
||||
"metadata": {
|
||||
|
|
@ -185,7 +185,7 @@ class SubmitDependentImageSequenceJobDeadline(pyblish.api.InstancePlugin):
|
|||
|
||||
if data.get("extendFrames", False):
|
||||
|
||||
family = "studio.imagesequence"
|
||||
family = "imagesequence"
|
||||
override = data["overrideExistingFrame"]
|
||||
|
||||
# override = data.get("overrideExistingFrame", False)
|
||||
|
|
@ -11,7 +11,7 @@ class ValidateSequenceFrames(pyblish.api.InstancePlugin):
|
|||
|
||||
order = pyblish.api.ValidatorOrder
|
||||
label = "Validate Sequence Frames"
|
||||
families = ["studio.imagesequence"]
|
||||
families = ["imagesequence"]
|
||||
hosts = ["shell"]
|
||||
|
||||
def process(self, instance):
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
from collections import OrderedDict
|
||||
|
||||
import avalon.maya
|
||||
from config.maya import lib
|
||||
from pype.maya import lib
|
||||
|
||||
|
||||
class CreateAnimation(avalon.maya.Creator):
|
||||
|
|
@ -9,7 +9,7 @@ class CreateAnimation(avalon.maya.Creator):
|
|||
|
||||
name = "animationDefault"
|
||||
label = "Animation"
|
||||
family = "studio.animation"
|
||||
family = "animation"
|
||||
icon = "male"
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
from collections import OrderedDict
|
||||
import avalon.maya
|
||||
from config.maya import lib
|
||||
from pype.maya import lib
|
||||
|
||||
|
||||
class CreateCamera(avalon.maya.Creator):
|
||||
|
|
@ -8,7 +8,7 @@ class CreateCamera(avalon.maya.Creator):
|
|||
|
||||
name = "cameraDefault"
|
||||
label = "Camera"
|
||||
family = "studio.camera"
|
||||
family = "camera"
|
||||
icon = "video-camera"
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
from collections import OrderedDict
|
||||
import avalon.maya
|
||||
from config.maya import lib
|
||||
from pype.maya import lib
|
||||
|
||||
|
||||
class CreateLook(avalon.maya.Creator):
|
||||
|
|
@ -8,7 +8,7 @@ class CreateLook(avalon.maya.Creator):
|
|||
|
||||
name = "look"
|
||||
label = "Look"
|
||||
family = "studio.look"
|
||||
family = "look"
|
||||
icon = "paint-brush"
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
|
|
@ -6,5 +6,5 @@ class CreateMayaAscii(avalon.maya.Creator):
|
|||
|
||||
name = "mayaAscii"
|
||||
label = "Maya Ascii"
|
||||
family = "config.mayaAscii"
|
||||
family = "pype.mayaAscii"
|
||||
icon = "file-archive-o"
|
||||
|
|
@ -6,5 +6,5 @@ class CreateModel(avalon.maya.Creator):
|
|||
|
||||
name = "modelDefault"
|
||||
label = "Model"
|
||||
family = "studio.model"
|
||||
family = "model"
|
||||
icon = "cube"
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
from collections import OrderedDict
|
||||
|
||||
import avalon.maya
|
||||
from config.maya import lib
|
||||
from pype.maya import lib
|
||||
|
||||
|
||||
class CreatePointCache(avalon.maya.Creator):
|
||||
|
|
@ -9,7 +9,7 @@ class CreatePointCache(avalon.maya.Creator):
|
|||
|
||||
name = "pointcache"
|
||||
label = "Point Cache"
|
||||
family = "studio.pointcache"
|
||||
family = "pointcache"
|
||||
icon = "gears"
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
|
|
@ -10,7 +10,7 @@ from avalon import api
|
|||
class CreateRenderGlobals(avalon.maya.Creator):
|
||||
|
||||
label = "Render Globals"
|
||||
family = "studio.renderglobals"
|
||||
family = "renderglobals"
|
||||
icon = "gears"
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
|
|
@ -8,7 +8,7 @@ class CreateRig(avalon.maya.Creator):
|
|||
|
||||
name = "rigDefault"
|
||||
label = "Rig"
|
||||
family = "studio.rig"
|
||||
family = "rig"
|
||||
icon = "wheelchair"
|
||||
|
||||
def process(self):
|
||||
|
|
@ -6,5 +6,5 @@ class CreateSetDress(avalon.maya.Creator):
|
|||
|
||||
name = "setdress"
|
||||
label = "Set Dress"
|
||||
family = "studio.setdress"
|
||||
family = "setdress"
|
||||
icon = "cubes"
|
||||
|
|
@ -8,7 +8,7 @@ class CreateVrayProxy(avalon.maya.Creator):
|
|||
|
||||
name = "vrayproxy"
|
||||
label = "VRay Proxy"
|
||||
family = "studio.vrayproxy"
|
||||
family = "vrayproxy"
|
||||
icon = "gears"
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
from collections import OrderedDict
|
||||
|
||||
import avalon.maya
|
||||
from config.maya import lib
|
||||
from pype.maya import lib
|
||||
|
||||
|
||||
class CreateYetiCache(avalon.maya.Creator):
|
||||
|
|
@ -9,7 +9,7 @@ class CreateYetiCache(avalon.maya.Creator):
|
|||
|
||||
name = "yetiDefault"
|
||||
label = "Yeti Cache"
|
||||
family = "studio.yeticache"
|
||||
family = "yeticache"
|
||||
icon = "pagelines"
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
|
|
@ -7,7 +7,7 @@ class CreateYetiRig(avalon.maya.Creator):
|
|||
"""Output for procedural plugin nodes ( Yeti / XGen / etc)"""
|
||||
|
||||
label = "Yeti Rig"
|
||||
family = "studio.yetiRig"
|
||||
family = "yetiRig"
|
||||
icon = "usb"
|
||||
|
||||
def process(self):
|
||||
|
|
@ -1,12 +1,12 @@
|
|||
import config.maya.plugin
|
||||
import pype.maya.plugin
|
||||
|
||||
|
||||
class AbcLoader(config.maya.plugin.ReferenceLoader):
|
||||
class AbcLoader(pype.maya.plugin.ReferenceLoader):
|
||||
"""Specific loader of Alembic for the avalon.animation family"""
|
||||
|
||||
families = ["studio.animation",
|
||||
"studio.camera",
|
||||
"studio.pointcache"]
|
||||
families = ["animation",
|
||||
"camera",
|
||||
"pointcache"]
|
||||
representations = ["abc"]
|
||||
|
||||
label = "Reference animation"
|
||||
|
|
@ -8,9 +8,9 @@ from avalon import api
|
|||
class SetFrameRangeLoader(api.Loader):
|
||||
"""Specific loader of Alembic for the avalon.animation family"""
|
||||
|
||||
families = ["studio.animation",
|
||||
"studio.camera",
|
||||
"studio.pointcache"]
|
||||
families = ["animation",
|
||||
"camera",
|
||||
"pointcache"]
|
||||
representations = ["abc"]
|
||||
|
||||
label = "Set frame range"
|
||||
|
|
@ -42,9 +42,9 @@ class SetFrameRangeLoader(api.Loader):
|
|||
class SetFrameRangeWithHandlesLoader(api.Loader):
|
||||
"""Specific loader of Alembic for the avalon.animation family"""
|
||||
|
||||
families = ["studio.animation",
|
||||
"studio.camera",
|
||||
"studio.pointcache"]
|
||||
families = ["animation",
|
||||
"camera",
|
||||
"pointcache"]
|
||||
representations = ["abc"]
|
||||
|
||||
label = "Set frame range (with handles)"
|
||||
|
|
@ -1,11 +1,11 @@
|
|||
import config.maya.plugin
|
||||
import pype.maya.plugin
|
||||
|
||||
|
||||
class AbcLoader(config.maya.plugin.ReferenceLoader):
|
||||
class AbcLoader(pype.maya.plugin.ReferenceLoader):
|
||||
"""Specific loader of Alembic for the avalon.animation family"""
|
||||
|
||||
families = ["studio.animation",
|
||||
"studio.pointcache"]
|
||||
families = ["animation",
|
||||
"pointcache"]
|
||||
label = "Reference animation"
|
||||
representations = ["abc"]
|
||||
order = -10
|
||||
|
|
@ -1,10 +1,10 @@
|
|||
import config.maya.plugin
|
||||
import pype.maya.plugin
|
||||
|
||||
|
||||
class CameraLoader(config.maya.plugin.ReferenceLoader):
|
||||
class CameraLoader(pype.maya.plugin.ReferenceLoader):
|
||||
"""Specific loader of Alembic for the avalon.animation family"""
|
||||
|
||||
families = ["studio.camera"]
|
||||
families = ["camera"]
|
||||
label = "Reference camera"
|
||||
representations = ["abc", "ma"]
|
||||
order = -10
|
||||
|
|
@ -1,10 +1,10 @@
|
|||
import config.maya.plugin
|
||||
import pype.maya.plugin
|
||||
|
||||
|
||||
class LookLoader(config.maya.plugin.ReferenceLoader):
|
||||
class LookLoader(pype.maya.plugin.ReferenceLoader):
|
||||
"""Specific loader for lookdev"""
|
||||
|
||||
families = ["studio.look"]
|
||||
families = ["look"]
|
||||
representations = ["ma"]
|
||||
|
||||
label = "Reference look"
|
||||
|
|
@ -1,10 +1,10 @@
|
|||
import config.maya.plugin
|
||||
import pype.maya.plugin
|
||||
|
||||
|
||||
class MayaAsciiLoader(config.maya.plugin.ReferenceLoader):
|
||||
class MayaAsciiLoader(pype.maya.plugin.ReferenceLoader):
|
||||
"""Load the model"""
|
||||
|
||||
families = ["config.mayaAscii"]
|
||||
families = ["pype.mayaAscii"]
|
||||
representations = ["ma"]
|
||||
|
||||
label = "Reference Maya Ascii"
|
||||
|
|
@ -1,11 +1,11 @@
|
|||
from avalon import api
|
||||
import config.maya.plugin
|
||||
import pype.maya.plugin
|
||||
|
||||
|
||||
class ModelLoader(config.maya.plugin.ReferenceLoader):
|
||||
class ModelLoader(pype.maya.plugin.ReferenceLoader):
|
||||
"""Load the model"""
|
||||
|
||||
families = ["studio.model"]
|
||||
families = ["model"]
|
||||
representations = ["ma"]
|
||||
|
||||
label = "Reference Model"
|
||||
|
|
@ -37,7 +37,7 @@ class ModelLoader(config.maya.plugin.ReferenceLoader):
|
|||
class GpuCacheLoader(api.Loader):
|
||||
"""Load model Alembic as gpuCache"""
|
||||
|
||||
families = ["studio.model"]
|
||||
families = ["model"]
|
||||
representations = ["abc"]
|
||||
|
||||
label = "Import Gpu Cache"
|
||||
|
|
@ -1,17 +1,17 @@
|
|||
from maya import cmds
|
||||
|
||||
import config.maya.plugin
|
||||
import pype.maya.plugin
|
||||
from avalon import api, maya
|
||||
|
||||
|
||||
class RigLoader(config.maya.plugin.ReferenceLoader):
|
||||
class RigLoader(pype.maya.plugin.ReferenceLoader):
|
||||
"""Specific loader for rigs
|
||||
|
||||
This automatically creates an instance for animators upon load.
|
||||
|
||||
"""
|
||||
|
||||
families = ["studio.rig"]
|
||||
families = ["rig"]
|
||||
representations = ["ma"]
|
||||
|
||||
label = "Reference rig"
|
||||
|
|
@ -62,7 +62,7 @@ class RigLoader(config.maya.plugin.ReferenceLoader):
|
|||
cmds.select([output, controls] + roots, noExpand=True)
|
||||
api.create(name=namespace,
|
||||
asset=asset,
|
||||
family="studio.animation",
|
||||
family="animation",
|
||||
options={"useSelection": True},
|
||||
data={"dependencies": dependency})
|
||||
|
||||
|
|
@ -3,7 +3,7 @@ from avalon import api
|
|||
|
||||
class SetDressLoader(api.Loader):
|
||||
|
||||
families = ["studio.setdress"]
|
||||
families = ["setdress"]
|
||||
representations = ["json"]
|
||||
|
||||
label = "Load Set Dress"
|
||||
|
|
@ -7,7 +7,7 @@ import maya.cmds as cmds
|
|||
class VRayProxyLoader(api.Loader):
|
||||
"""Load VRayMesh proxy"""
|
||||
|
||||
families = ["studio.vrayproxy"]
|
||||
families = ["vrayproxy"]
|
||||
representations = ["vrmesh"]
|
||||
|
||||
label = "Import VRay Proxy"
|
||||
|
|
@ -18,7 +18,7 @@ class VRayProxyLoader(api.Loader):
|
|||
def load(self, context, name, namespace, data):
|
||||
|
||||
from avalon.maya.pipeline import containerise
|
||||
from config.maya.lib import namespaced
|
||||
from pype.maya.lib import namespaced
|
||||
|
||||
asset_name = context['asset']["name"]
|
||||
namespace = namespace or lib.unique_namespace(
|
||||
|
|
@ -8,12 +8,12 @@ from maya import cmds
|
|||
|
||||
from avalon import api
|
||||
from avalon.maya import lib as avalon_lib, pipeline
|
||||
from config.maya import lib
|
||||
from pype.maya import lib
|
||||
|
||||
|
||||
class YetiCacheLoader(api.Loader):
|
||||
|
||||
families = ["studio.yeticache", "studio.yetiRig"]
|
||||
families = ["yeticache", "yetiRig"]
|
||||
representations = ["fur"]
|
||||
|
||||
label = "Load Yeti Cache"
|
||||
|
|
@ -1,9 +1,9 @@
|
|||
import config.maya.plugin
|
||||
import pype.maya.plugin
|
||||
|
||||
|
||||
class YetiRigLoader(config.maya.plugin.ReferenceLoader):
|
||||
class YetiRigLoader(pype.maya.plugin.ReferenceLoader):
|
||||
|
||||
families = ["studio.yetiRig"]
|
||||
families = ["yetiRig"]
|
||||
representations = ["ma"]
|
||||
|
||||
label = "Load Yeti Rig"
|
||||
|
|
@ -16,7 +16,7 @@ class CollectAnimationOutputGeometry(pyblish.api.InstancePlugin):
|
|||
"""
|
||||
|
||||
order = pyblish.api.CollectorOrder + 0.4
|
||||
families = ["studio.animation"]
|
||||
families = ["animation"]
|
||||
label = "Collect Animation Output Geometry"
|
||||
hosts = ["maya"]
|
||||
|
||||
|
|
@ -17,7 +17,7 @@ class CollectMayaHistory(pyblish.api.InstancePlugin):
|
|||
order = pyblish.api.CollectorOrder + 0.1
|
||||
hosts = ["maya"]
|
||||
label = "Maya History"
|
||||
families = ["studio.rig"]
|
||||
families = ["rig"]
|
||||
verbose = False
|
||||
|
||||
def process(self, instance):
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
from maya import cmds
|
||||
import pyblish.api
|
||||
import config.maya.lib as lib
|
||||
import pype.maya.lib as lib
|
||||
from cb.utils.maya import context, shaders
|
||||
|
||||
SHAPE_ATTRS = ["castsShadows",
|
||||
|
|
@ -67,7 +67,7 @@ class CollectLook(pyblish.api.InstancePlugin):
|
|||
"""
|
||||
|
||||
order = pyblish.api.CollectorOrder + 0.4
|
||||
families = ["studio.look"]
|
||||
families = ["look"]
|
||||
label = "Collect Look"
|
||||
hosts = ["maya"]
|
||||
|
||||
|
|
@ -17,7 +17,7 @@ class CollectModelData(pyblish.api.InstancePlugin):
|
|||
|
||||
order = pyblish.api.CollectorOrder + 0.499
|
||||
label = 'Collect Model Data'
|
||||
families = ["studio.model"]
|
||||
families = ["model"]
|
||||
|
||||
def process(self, instance):
|
||||
# Extract only current frame (override)
|
||||
|
|
@ -2,7 +2,7 @@ from maya import cmds
|
|||
|
||||
import pyblish.api
|
||||
|
||||
import config.maya.lib as lib
|
||||
import pype.maya.lib as lib
|
||||
|
||||
|
||||
class CollectRenderLayerAOVS(pyblish.api.InstancePlugin):
|
||||
|
|
@ -28,7 +28,7 @@ class CollectRenderLayerAOVS(pyblish.api.InstancePlugin):
|
|||
order = pyblish.api.CollectorOrder + 0.01
|
||||
label = "Render Elements / AOVs"
|
||||
hosts = ["maya"]
|
||||
families = ["studio.renderlayer"]
|
||||
families = ["renderlayer"]
|
||||
|
||||
def process(self, instance):
|
||||
|
||||
|
|
@ -3,7 +3,7 @@ from maya import cmds
|
|||
import pyblish.api
|
||||
|
||||
from avalon import maya, api
|
||||
import config.maya.lib as lib
|
||||
import pype.maya.lib as lib
|
||||
|
||||
|
||||
class CollectMayaRenderlayers(pyblish.api.ContextPlugin):
|
||||
|
|
@ -74,7 +74,7 @@ class CollectMayaRenderlayers(pyblish.api.ContextPlugin):
|
|||
|
||||
# instance subset
|
||||
"family": "Render Layers",
|
||||
"families": ["studio.renderlayer"],
|
||||
"families": ["renderlayer"],
|
||||
"asset": asset,
|
||||
"time": api.time(),
|
||||
"author": context.data["user"],
|
||||
|
|
@ -3,7 +3,7 @@ import pyblish.api
|
|||
|
||||
from maya import cmds, mel
|
||||
from avalon import maya as avalon
|
||||
from config.maya import lib
|
||||
from pype.maya import lib
|
||||
|
||||
# TODO : Publish of setdress: -unique namespace for all assets, VALIDATOR!
|
||||
|
||||
|
|
@ -25,7 +25,7 @@ class CollectSetDress(pyblish.api.InstancePlugin):
|
|||
|
||||
order = pyblish.api.CollectorOrder + 0.49
|
||||
label = "Set Dress"
|
||||
families = ["studio.setdress"]
|
||||
families = ["setdress"]
|
||||
|
||||
def process(self, instance):
|
||||
|
||||
|
|
@ -2,7 +2,7 @@ from maya import cmds
|
|||
|
||||
import pyblish.api
|
||||
|
||||
from config.maya import lib
|
||||
from pype.maya import lib
|
||||
|
||||
SETTINGS = {"renderDensity",
|
||||
"renderWidth",
|
||||
|
|
@ -28,7 +28,7 @@ class CollectYetiCache(pyblish.api.InstancePlugin):
|
|||
|
||||
order = pyblish.api.CollectorOrder + 0.45
|
||||
label = "Collect Yeti Cache"
|
||||
families = ["studio.yetiRig", "studio.yeticache"]
|
||||
families = ["yetiRig", "yeticache"]
|
||||
hosts = ["maya"]
|
||||
tasks = ["animation", "fx"]
|
||||
|
||||
|
|
@ -5,7 +5,7 @@ from maya import cmds
|
|||
|
||||
import pyblish.api
|
||||
|
||||
from config.maya import lib
|
||||
from pype.maya import lib
|
||||
|
||||
|
||||
SETTINGS = {"renderDensity",
|
||||
|
|
@ -21,7 +21,7 @@ class CollectYetiRig(pyblish.api.InstancePlugin):
|
|||
|
||||
order = pyblish.api.CollectorOrder + 0.4
|
||||
label = "Collect Yeti Rig"
|
||||
families = ["studio.yetiRig"]
|
||||
families = ["yetiRig"]
|
||||
hosts = ["maya"]
|
||||
|
||||
def process(self, instance):
|
||||
|
|
@ -3,11 +3,11 @@ import os
|
|||
from maya import cmds
|
||||
|
||||
import avalon.maya
|
||||
import config.api
|
||||
from config.maya.lib import extract_alembic
|
||||
import pype.api
|
||||
from pype.maya.lib import extract_alembic
|
||||
|
||||
|
||||
class ExtractColorbleedAnimation(config.api.Extractor):
|
||||
class ExtractColorbleedAnimation(pype.api.Extractor):
|
||||
"""Produce an alembic of just point positions and normals.
|
||||
|
||||
Positions and normals, uvs, creases are preserved, but nothing more,
|
||||
|
|
@ -17,7 +17,7 @@ class ExtractColorbleedAnimation(config.api.Extractor):
|
|||
|
||||
label = "Extract Animation"
|
||||
hosts = ["maya"]
|
||||
families = ["studio.animation"]
|
||||
families = ["animation"]
|
||||
|
||||
def process(self, instance):
|
||||
|
||||
|
|
@ -3,12 +3,12 @@ import os
|
|||
from maya import cmds
|
||||
|
||||
import avalon.maya
|
||||
import config.api
|
||||
import pype.api
|
||||
|
||||
import cb.utils.maya.context as context
|
||||
|
||||
|
||||
class ExtractCameraAlembic(config.api.Extractor):
|
||||
class ExtractCameraAlembic(pype.api.Extractor):
|
||||
"""Extract a Camera as Alembic.
|
||||
|
||||
The cameras gets baked to world space by default. Only when the instance's
|
||||
|
|
@ -18,7 +18,7 @@ class ExtractCameraAlembic(config.api.Extractor):
|
|||
|
||||
label = "Camera (Alembic)"
|
||||
hosts = ["maya"]
|
||||
families = ["studio.camera"]
|
||||
families = ["camera"]
|
||||
|
||||
def process(self, instance):
|
||||
|
||||
|
|
@ -3,7 +3,7 @@ import os
|
|||
from maya import cmds
|
||||
|
||||
import avalon.maya
|
||||
import config.api
|
||||
import pype.api
|
||||
|
||||
import cb.utils.maya.context as context
|
||||
from cb.utils.maya.animation import bakeToWorldSpace
|
||||
|
|
@ -35,7 +35,7 @@ def massage_ma_file(path):
|
|||
f.close()
|
||||
|
||||
|
||||
class ExtractCameraMayaAscii(config.api.Extractor):
|
||||
class ExtractCameraMayaAscii(pype.api.Extractor):
|
||||
"""Extract a Camera as Maya Ascii.
|
||||
|
||||
This will create a duplicate of the camera that will be baked *with*
|
||||
|
|
@ -53,7 +53,7 @@ class ExtractCameraMayaAscii(config.api.Extractor):
|
|||
|
||||
label = "Camera (Maya Ascii)"
|
||||
hosts = ["maya"]
|
||||
families = ["studio.camera"]
|
||||
families = ["camera"]
|
||||
|
||||
def process(self, instance):
|
||||
|
||||
|
|
@ -6,13 +6,13 @@ from maya import cmds
|
|||
|
||||
import pyblish.api
|
||||
import avalon.maya
|
||||
import config.api
|
||||
import config.maya.lib as maya
|
||||
import pype.api
|
||||
import pype.maya.lib as maya
|
||||
|
||||
from cb.utils.maya import context
|
||||
|
||||
|
||||
class ExtractLook(config.api.Extractor):
|
||||
class ExtractLook(pype.api.Extractor):
|
||||
"""Extract Look (Maya Ascii + JSON)
|
||||
|
||||
Only extracts the sets (shadingEngines and alike) alongside a .json file
|
||||
|
|
@ -23,7 +23,7 @@ class ExtractLook(config.api.Extractor):
|
|||
|
||||
label = "Extract Look (Maya ASCII + JSON)"
|
||||
hosts = ["maya"]
|
||||
families = ["studio.look"]
|
||||
families = ["look"]
|
||||
order = pyblish.api.ExtractorOrder + 0.2
|
||||
|
||||
def process(self, instance):
|
||||
|
|
@ -3,10 +3,10 @@ import os
|
|||
from maya import cmds
|
||||
|
||||
import avalon.maya
|
||||
import config.api
|
||||
import pype.api
|
||||
|
||||
|
||||
class ExtractMayaAsciiRaw(config.api.Extractor):
|
||||
class ExtractMayaAsciiRaw(pype.api.Extractor):
|
||||
"""Extract as Maya Ascii (raw)
|
||||
|
||||
This will preserve all references, construction history, etc.
|
||||
|
|
@ -15,7 +15,7 @@ class ExtractMayaAsciiRaw(config.api.Extractor):
|
|||
|
||||
label = "Maya ASCII (Raw)"
|
||||
hosts = ["maya"]
|
||||
families = ["config.mayaAscii"]
|
||||
families = ["pype.mayaAscii"]
|
||||
|
||||
def process(self, instance):
|
||||
|
||||
|
|
@ -3,12 +3,12 @@ import os
|
|||
from maya import cmds
|
||||
|
||||
import avalon.maya
|
||||
import config.api
|
||||
import pype.api
|
||||
|
||||
from cb.utils.maya import context
|
||||
|
||||
|
||||
class ExtractModel(config.api.Extractor):
|
||||
class ExtractModel(pype.api.Extractor):
|
||||
"""Extract as Model (Maya Ascii)
|
||||
|
||||
Only extracts contents based on the original "setMembers" data to ensure
|
||||
|
|
@ -25,7 +25,7 @@ class ExtractModel(config.api.Extractor):
|
|||
|
||||
label = "Model (Maya ASCII)"
|
||||
hosts = ["maya"]
|
||||
families = ["studio.model"]
|
||||
families = ["model"]
|
||||
|
||||
def process(self, instance):
|
||||
|
||||
|
|
@ -3,11 +3,11 @@ import os
|
|||
from maya import cmds
|
||||
|
||||
import avalon.maya
|
||||
import config.api
|
||||
from config.maya.lib import extract_alembic
|
||||
import pype.api
|
||||
from pype.maya.lib import extract_alembic
|
||||
|
||||
|
||||
class ExtractColorbleedAlembic(config.api.Extractor):
|
||||
class ExtractColorbleedAlembic(pype.api.Extractor):
|
||||
"""Produce an alembic of just point positions and normals.
|
||||
|
||||
Positions and normals, uvs, creases are preserved, but nothing more,
|
||||
|
|
@ -17,8 +17,8 @@ class ExtractColorbleedAlembic(config.api.Extractor):
|
|||
|
||||
label = "Extract Pointcache (Alembic)"
|
||||
hosts = ["maya"]
|
||||
families = ["studio.pointcache",
|
||||
"studio.model"]
|
||||
families = ["pointcache",
|
||||
"model"]
|
||||
|
||||
def process(self, instance):
|
||||
|
||||
|
|
@ -3,15 +3,15 @@ import os
|
|||
from maya import cmds
|
||||
|
||||
import avalon.maya
|
||||
import config.api
|
||||
import pype.api
|
||||
|
||||
|
||||
class ExtractColorbleedRig(config.api.Extractor):
|
||||
class ExtractColorbleedRig(pype.api.Extractor):
|
||||
"""Extract rig as Maya Ascii"""
|
||||
|
||||
label = "Extract Rig (Maya ASCII)"
|
||||
hosts = ["maya"]
|
||||
families = ["studio.rig"]
|
||||
families = ["rig"]
|
||||
|
||||
def process(self, instance):
|
||||
|
||||
|
|
@ -2,13 +2,13 @@ import json
|
|||
|
||||
import os
|
||||
|
||||
import config.api
|
||||
from config.maya.lib import extract_alembic
|
||||
import pype.api
|
||||
from pype.maya.lib import extract_alembic
|
||||
|
||||
from maya import cmds
|
||||
|
||||
|
||||
class ExtractSetDress(config.api.Extractor):
|
||||
class ExtractSetDress(pype.api.Extractor):
|
||||
"""Produce an alembic of just point positions and normals.
|
||||
|
||||
Positions and normals are preserved, but nothing more,
|
||||
|
|
@ -18,7 +18,7 @@ class ExtractSetDress(config.api.Extractor):
|
|||
|
||||
label = "Extract Set Dress"
|
||||
hosts = ["maya"]
|
||||
families = ["studio.setdress"]
|
||||
families = ["setdress"]
|
||||
|
||||
def process(self, instance):
|
||||
|
||||
|
|
@ -1,12 +1,12 @@
|
|||
import os
|
||||
|
||||
import avalon.maya
|
||||
import config.api
|
||||
import pype.api
|
||||
|
||||
from maya import cmds
|
||||
|
||||
|
||||
class ExtractVRayProxy(config.api.Extractor):
|
||||
class ExtractVRayProxy(pype.api.Extractor):
|
||||
"""Extract the content of the instance to a vrmesh file
|
||||
|
||||
Things to pay attention to:
|
||||
|
|
@ -16,7 +16,7 @@ class ExtractVRayProxy(config.api.Extractor):
|
|||
|
||||
label = "VRay Proxy (.vrmesh)"
|
||||
hosts = ["maya"]
|
||||
families = ["studio.vrayproxy"]
|
||||
families = ["vrayproxy"]
|
||||
|
||||
def process(self, instance):
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue