mirror of
https://github.com/ynput/ayon-core.git
synced 2025-12-25 13:24:54 +01:00
Merge pull request #1 from pypeclub/initialisation
Initialisation convert colorbleed to studio or config
This commit is contained in:
commit
cfea9c8f5c
156 changed files with 1076 additions and 471 deletions
1
LICENSE
1
LICENSE
|
|
@ -2,6 +2,7 @@ MIT License
|
|||
|
||||
Copyright (c) 2018 pype club
|
||||
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
|
|
|
|||
|
|
@ -1,4 +1,7 @@
|
|||
import os
|
||||
import sys
|
||||
|
||||
import imp
|
||||
|
||||
from pyblish import api as pyblish
|
||||
from avalon import api as avalon
|
||||
|
|
|
|||
|
|
@ -192,7 +192,7 @@ class GenerateUUIDsOnInvalidAction(pyblish.api.Action):
|
|||
nodes (list): all nodes to regenerate ids on
|
||||
"""
|
||||
|
||||
import config.apps.maya.lib as lib
|
||||
import config.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 = ["colorbleed.imagesequence",
|
||||
"colorbleed.camera",
|
||||
"colorbleed.pointcache"]
|
||||
family_states = ["studio.imagesequence",
|
||||
"studio.camera",
|
||||
"studio.pointcache"]
|
||||
|
||||
avalon.data["familiesStateDefault"] = False
|
||||
avalon.data["familiesStateToggled"] = family_states
|
||||
|
|
@ -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 = "colorbleed.{}.lib".format(host_name)
|
||||
package_name = "studio.{}.lib".format(host_name)
|
||||
hostlib = importlib.import_module(package_name)
|
||||
|
||||
if not hasattr(hostlib, "get_additional_data"):
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ from ..lib import (
|
|||
from . import menu
|
||||
from . import lib
|
||||
|
||||
log = logging.getLogger("config.apps.maya")
|
||||
log = logging.getLogger("config.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"] = ["colorbleed.imagesequence"]
|
||||
avalon.data["familiesStateToggled"] = ["studio.imagesequence"]
|
||||
|
||||
|
||||
def uninstall():
|
||||
|
|
@ -16,7 +16,7 @@ from avalon import api, maya, io, pipeline
|
|||
from avalon.vendor.six import string_types
|
||||
import avalon.maya.lib
|
||||
|
||||
from colorbleed import lib
|
||||
from config import lib
|
||||
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
|
|
@ -1012,11 +1012,11 @@ def assign_look(nodes, subset="lookDefault"):
|
|||
# Group all nodes per asset id
|
||||
grouped = defaultdict(list)
|
||||
for node in nodes:
|
||||
colorbleed_id = get_id(node)
|
||||
if not colorbleed_id:
|
||||
studio_id = get_id(node)
|
||||
if not studio_id:
|
||||
continue
|
||||
|
||||
parts = colorbleed_id.split(":", 1)
|
||||
parts = studio_id.split(":", 1)
|
||||
grouped[parts[0]].append(node)
|
||||
|
||||
for asset_id, asset_nodes in grouped.items():
|
||||
|
|
@ -1039,7 +1039,7 @@ def assign_look(nodes, subset="lookDefault"):
|
|||
version = io.find_one({"parent": subset_data['_id'],
|
||||
"type": "version",
|
||||
"data.families":
|
||||
{"$in": ["colorbleed.look"]}
|
||||
{"$in": ["studio.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 = "colorbleed"
|
||||
self._menu = "pype_setup"
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
|
|
@ -56,7 +56,7 @@ def uninstall():
|
|||
def install():
|
||||
|
||||
if cmds.about(batch=True):
|
||||
print("Skipping colorbleed.menu initialization in batch mode..")
|
||||
print("Skipping studio.menu initialization in batch mode..")
|
||||
return
|
||||
|
||||
uninstall()
|
||||
65
config/nuke/__init__.py
Normal file
65
config/nuke/__init__.py
Normal file
|
|
@ -0,0 +1,65 @@
|
|||
import os
|
||||
|
||||
from avalon import api as avalon
|
||||
from pyblish import api as pyblish
|
||||
|
||||
PARENT_DIR = os.path.dirname(__file__)
|
||||
PACKAGE_DIR = os.path.dirname(PARENT_DIR)
|
||||
PLUGINS_DIR = os.path.join(PACKAGE_DIR, "plugins")
|
||||
|
||||
PUBLISH_PATH = os.path.join(PLUGINS_DIR, "nuke", "publish")
|
||||
LOAD_PATH = os.path.join(PLUGINS_DIR, "nuke", "load")
|
||||
CREATE_PATH = os.path.join(PLUGINS_DIR, "nuke", "create")
|
||||
INVENTORY_PATH = os.path.join(PLUGINS_DIR, "nuke", "inventory")
|
||||
|
||||
|
||||
def install():
|
||||
print("Registering Nuke plug-ins..")
|
||||
pyblish.register_plugin_path(PUBLISH_PATH)
|
||||
avalon.register_plugin_path(avalon.Loader, LOAD_PATH)
|
||||
avalon.register_plugin_path(avalon.Creator, CREATE_PATH)
|
||||
avalon.register_plugin_path(avalon.InventoryAction, INVENTORY_PATH)
|
||||
|
||||
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"]
|
||||
|
||||
avalon.data["familiesStateDefault"] = False
|
||||
avalon.data["familiesStateToggled"] = family_states
|
||||
|
||||
|
||||
def uninstall():
|
||||
print("Deregistering Nuke plug-ins..")
|
||||
pyblish.deregister_plugin_path(PUBLISH_PATH)
|
||||
avalon.deregister_plugin_path(avalon.Loader, LOAD_PATH)
|
||||
avalon.deregister_plugin_path(avalon.Creator, CREATE_PATH)
|
||||
|
||||
pyblish.deregister_callback("instanceToggled", on_pyblish_instance_toggled)
|
||||
|
||||
|
||||
def on_pyblish_instance_toggled(instance, new_value, old_value):
|
||||
"""Toggle saver tool passthrough states on instance toggles."""
|
||||
|
||||
from avalon.nuke import viewer_update_and_undo_stop, add_publish_knob, log
|
||||
|
||||
writes = [n for n in instance if
|
||||
n.Class() == "Write"]
|
||||
if not writes:
|
||||
return
|
||||
|
||||
# Whether instances should be passthrough based on new value
|
||||
passthrough = not new_value
|
||||
with viewer_update_and_undo_stop():
|
||||
for n in writes:
|
||||
try:
|
||||
n["publish"].value()
|
||||
except ValueError:
|
||||
n = add_publish_knob(n)
|
||||
log.info(" `Publish` knob was added to write node..")
|
||||
|
||||
current = n["publish"].value()
|
||||
if current != passthrough:
|
||||
n["publish"].setValue(passthrough)
|
||||
61
config/nuke/lib.py
Normal file
61
config/nuke/lib.py
Normal file
|
|
@ -0,0 +1,61 @@
|
|||
import sys
|
||||
|
||||
from avalon.vendor.Qt import QtGui
|
||||
import avalon.nuke
|
||||
|
||||
|
||||
self = sys.modules[__name__]
|
||||
self._project = None
|
||||
|
||||
|
||||
def update_frame_range(start, end, root=None, set_render_range=True):
|
||||
"""Set Fusion comp's start and end frame range
|
||||
|
||||
Args:
|
||||
start (float, int): start frame
|
||||
end (float, int): end frame
|
||||
comp (object, Optional): comp object from fusion
|
||||
set_render_range (bool, Optional): When True this will also set the
|
||||
composition's render start and end frame.
|
||||
|
||||
Returns:
|
||||
None
|
||||
|
||||
"""
|
||||
|
||||
if not root:
|
||||
root, nodes = avalon.nuke.get_current_comp()
|
||||
|
||||
knobs = {
|
||||
"COMPN_GlobalStart": start,
|
||||
"COMPN_GlobalEnd": end
|
||||
}
|
||||
|
||||
if set_render_range:
|
||||
knobs.update({
|
||||
"COMPN_RenderStart": start,
|
||||
"COMPN_RenderEnd": end
|
||||
})
|
||||
|
||||
with avalon.nuke.comp_lock_and_undo_chunk():
|
||||
comp.SetAttrs(attrs)
|
||||
|
||||
|
||||
def get_additional_data(container):
|
||||
"""Get Fusion related data for the container
|
||||
|
||||
Args:
|
||||
container(dict): the container found by the ls() function
|
||||
|
||||
Returns:
|
||||
dict
|
||||
"""
|
||||
|
||||
tool = container["_tool"]
|
||||
tile_color = tool.TileColor
|
||||
if tile_color is None:
|
||||
return {}
|
||||
|
||||
return {"color": QtGui.QColor.fromRgbF(tile_color["R"],
|
||||
tile_color["G"],
|
||||
tile_color["B"])}
|
||||
|
|
@ -9,7 +9,7 @@ class CreateTiffSaver(avalon.api.Creator):
|
|||
name = "tiffDefault"
|
||||
label = "Create Tiff Saver"
|
||||
hosts = ["fusion"]
|
||||
family = "colorbleed.saver"
|
||||
family = "studio.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 = ["colorbleed.animation",
|
||||
"colorbleed.camera",
|
||||
"colorbleed.imagesequence",
|
||||
"colorbleed.yeticache",
|
||||
"colorbleed.pointcache"]
|
||||
families = ["studio.animation",
|
||||
"studio.camera",
|
||||
"studio.imagesequence",
|
||||
"studio.yeticache",
|
||||
"studio.pointcache"]
|
||||
representations = ["*"]
|
||||
|
||||
label = "Set frame range"
|
||||
|
|
@ -22,7 +22,7 @@ class FusionSetFrameRangeLoader(api.Loader):
|
|||
|
||||
def load(self, context, name, namespace, data):
|
||||
|
||||
from config.apps.fusion import lib
|
||||
from config.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 = ["colorbleed.animation",
|
||||
"colorbleed.camera",
|
||||
"colorbleed.imagesequence",
|
||||
"colorbleed.yeticache",
|
||||
"colorbleed.pointcache"]
|
||||
families = ["studio.animation",
|
||||
"studio.camera",
|
||||
"studio.imagesequence",
|
||||
"studio.yeticache",
|
||||
"studio.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.apps.fusion import lib
|
||||
from config.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 = ["colorbleed.imagesequence"]
|
||||
families = ["studio.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": ["colorbleed.saver"],
|
||||
"family": "colorbleed.saver",
|
||||
"families": ["studio.saver"],
|
||||
"family": "studio.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("colorbleed.rendermode")
|
||||
comp.GetData("studio.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 = ["colorbleed.saver"]
|
||||
families = ["studio.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("colorbleed.rendermode") or "renderlocal"
|
||||
rendermode = comp.GetData("studio.rendermode") or "renderlocal"
|
||||
assert rendermode in options, "Must be supported render mode"
|
||||
|
||||
self.log.info("Render mode: {0}".format(rendermode))
|
||||
|
||||
# Append family
|
||||
family = "colorbleed.saver.{0}".format(rendermode)
|
||||
family = "studio.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 = ["colorbleed.saver.deadline"]
|
||||
families = ["studio.saver.deadline"]
|
||||
optional = True
|
||||
|
||||
def process(self, context):
|
||||
|
||||
from colorbleed.lib import version_up
|
||||
from colorbleed.action import get_errored_plugins_from_data
|
||||
from config.lib import version_up
|
||||
from config.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 colorbleed.action import get_errored_plugins_from_data
|
||||
from config.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 colorbleed.scripts import publish_filesequence
|
||||
from config.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 = ["colorbleed.saver.renderlocal"]
|
||||
families = ["studio.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": ["colorbleed.imagesequence"],
|
||||
"families": ["studio.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 = ["colorbleed.saver.renderlocal"]
|
||||
families = ["studio.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 = ["colorbleed.saver"]
|
||||
families = ["studio.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 = ["colorbleed.saver.deadline"]
|
||||
families = ["studio.saver.deadline"]
|
||||
|
||||
def process(self, instance):
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
import pyblish.api
|
||||
|
||||
from colorbleed import action
|
||||
from config import action
|
||||
|
||||
|
||||
class ValidateBackgroundDepth(pyblish.api.InstancePlugin):
|
||||
|
|
@ -10,7 +10,7 @@ class ValidateBackgroundDepth(pyblish.api.InstancePlugin):
|
|||
label = "Validate Background Depth 32 bit"
|
||||
actions = [action.RepairAction]
|
||||
hosts = ["fusion"]
|
||||
families = ["colorbleed.saver"]
|
||||
families = ["studio.saver"]
|
||||
optional = True
|
||||
|
||||
@classmethod
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ class ValidateFusionCompSaved(pyblish.api.ContextPlugin):
|
|||
|
||||
order = pyblish.api.ValidatorOrder
|
||||
label = "Validate Comp Saved"
|
||||
families = ["colorbleed.saver"]
|
||||
families = ["studio.saver"]
|
||||
hosts = ["fusion"]
|
||||
|
||||
def process(self, context):
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
import pyblish.api
|
||||
|
||||
from colorbleed import action
|
||||
from config import action
|
||||
|
||||
|
||||
class ValidateCreateFolderChecked(pyblish.api.InstancePlugin):
|
||||
|
|
@ -13,7 +13,7 @@ class ValidateCreateFolderChecked(pyblish.api.InstancePlugin):
|
|||
order = pyblish.api.ValidatorOrder
|
||||
actions = [action.RepairAction]
|
||||
label = "Validate Create Folder Checked"
|
||||
families = ["colorbleed.saver"]
|
||||
families = ["studio.saver"]
|
||||
hosts = ["fusion"]
|
||||
|
||||
@classmethod
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ class ValidateFilenameHasExtension(pyblish.api.InstancePlugin):
|
|||
|
||||
order = pyblish.api.ValidatorOrder
|
||||
label = "Validate Filename Has Extension"
|
||||
families = ["colorbleed.saver"]
|
||||
families = ["studio.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 = ["colorbleed.saver"]
|
||||
families = ["studio.saver"]
|
||||
hosts = ["fusion"]
|
||||
|
||||
@classmethod
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ class ValidateSaverPassthrough(pyblish.api.ContextPlugin):
|
|||
|
||||
order = pyblish.api.ValidatorOrder
|
||||
label = "Validate Saver Passthrough"
|
||||
families = ["colorbleed.saver"]
|
||||
families = ["studio.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 = ["colorbleed.saver"]
|
||||
families = ["studio.saver"]
|
||||
hosts = ["fusion"]
|
||||
|
||||
@classmethod
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ def open(filepath):
|
|||
class PlayImageSequence(api.Loader):
|
||||
"""Open Image Sequence with system default"""
|
||||
|
||||
families = ["colorbleed.imagesequence"]
|
||||
families = ["studio.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 = ["colorbleed.renderlayer", "colorbleed.saver.deadline"]
|
||||
families = ["studio.renderlayer", "studio.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", ["colorbleed.imagesequence"])
|
||||
families = data.get("families", ["studio.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 = ["colorbleed.animation",
|
||||
"colorbleed.camera",
|
||||
"colorbleed.imagesequence",
|
||||
"colorbleed.look",
|
||||
"config.apps.mayaAscii",
|
||||
"colorbleed.model",
|
||||
"colorbleed.pointcache",
|
||||
"colorbleed.setdress",
|
||||
"colorbleed.rig",
|
||||
"colorbleed.vrayproxy",
|
||||
"colorbleed.yetiRig",
|
||||
"colorbleed.yeticache"]
|
||||
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"]
|
||||
|
||||
def process(self, instance):
|
||||
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ import pyblish.api
|
|||
def _get_script():
|
||||
"""Get path to the image sequence script"""
|
||||
try:
|
||||
from colorbleed.scripts import publish_filesequence
|
||||
from config.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 = ["colorbleed.saver.deadline", "colorbleed.renderlayer"]
|
||||
families = ["studio.saver.deadline", "studio.renderlayer"]
|
||||
|
||||
def process(self, instance):
|
||||
|
||||
|
|
@ -168,7 +168,7 @@ class SubmitDependentImageSequenceJobDeadline(pyblish.api.InstancePlugin):
|
|||
"regex": regex,
|
||||
"startFrame": start,
|
||||
"endFrame": end,
|
||||
"families": ["colorbleed.imagesequence"],
|
||||
"families": ["studio.imagesequence"],
|
||||
|
||||
# Optional metadata (for debugging)
|
||||
"metadata": {
|
||||
|
|
@ -185,7 +185,7 @@ class SubmitDependentImageSequenceJobDeadline(pyblish.api.InstancePlugin):
|
|||
|
||||
if data.get("extendFrames", False):
|
||||
|
||||
family = "colorbleed.imagesequence"
|
||||
family = "studio.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 = ["colorbleed.imagesequence"]
|
||||
families = ["studio.imagesequence"]
|
||||
hosts = ["shell"]
|
||||
|
||||
def process(self, instance):
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
from collections import OrderedDict
|
||||
|
||||
import avalon.maya
|
||||
from config.apps.maya import lib
|
||||
from config.maya import lib
|
||||
|
||||
|
||||
class CreateAnimation(avalon.maya.Creator):
|
||||
|
|
@ -9,7 +9,7 @@ class CreateAnimation(avalon.maya.Creator):
|
|||
|
||||
name = "animationDefault"
|
||||
label = "Animation"
|
||||
family = "colorbleed.animation"
|
||||
family = "studio.animation"
|
||||
icon = "male"
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
from collections import OrderedDict
|
||||
import avalon.maya
|
||||
from config.apps.maya import lib
|
||||
from config.maya import lib
|
||||
|
||||
|
||||
class CreateCamera(avalon.maya.Creator):
|
||||
|
|
@ -8,7 +8,7 @@ class CreateCamera(avalon.maya.Creator):
|
|||
|
||||
name = "cameraDefault"
|
||||
label = "Camera"
|
||||
family = "colorbleed.camera"
|
||||
family = "studio.camera"
|
||||
icon = "video-camera"
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
from collections import OrderedDict
|
||||
import avalon.maya
|
||||
from config.apps.maya import lib
|
||||
from config.maya import lib
|
||||
|
||||
|
||||
class CreateLook(avalon.maya.Creator):
|
||||
|
|
@ -8,7 +8,7 @@ class CreateLook(avalon.maya.Creator):
|
|||
|
||||
name = "look"
|
||||
label = "Look"
|
||||
family = "colorbleed.look"
|
||||
family = "studio.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.apps.mayaAscii"
|
||||
family = "config.mayaAscii"
|
||||
icon = "file-archive-o"
|
||||
|
|
|
|||
|
|
@ -6,5 +6,5 @@ class CreateModel(avalon.maya.Creator):
|
|||
|
||||
name = "modelDefault"
|
||||
label = "Model"
|
||||
family = "colorbleed.model"
|
||||
family = "studio.model"
|
||||
icon = "cube"
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
from collections import OrderedDict
|
||||
|
||||
import avalon.maya
|
||||
from config.apps.maya import lib
|
||||
from config.maya import lib
|
||||
|
||||
|
||||
class CreatePointCache(avalon.maya.Creator):
|
||||
|
|
@ -9,7 +9,7 @@ class CreatePointCache(avalon.maya.Creator):
|
|||
|
||||
name = "pointcache"
|
||||
label = "Point Cache"
|
||||
family = "colorbleed.pointcache"
|
||||
family = "studio.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 = "colorbleed.renderglobals"
|
||||
family = "studio.renderglobals"
|
||||
icon = "gears"
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ class CreateRig(avalon.maya.Creator):
|
|||
|
||||
name = "rigDefault"
|
||||
label = "Rig"
|
||||
family = "colorbleed.rig"
|
||||
family = "studio.rig"
|
||||
icon = "wheelchair"
|
||||
|
||||
def process(self):
|
||||
|
|
|
|||
|
|
@ -6,5 +6,5 @@ class CreateSetDress(avalon.maya.Creator):
|
|||
|
||||
name = "setdress"
|
||||
label = "Set Dress"
|
||||
family = "colorbleed.setdress"
|
||||
family = "studio.setdress"
|
||||
icon = "cubes"
|
||||
|
|
@ -8,7 +8,7 @@ class CreateVrayProxy(avalon.maya.Creator):
|
|||
|
||||
name = "vrayproxy"
|
||||
label = "VRay Proxy"
|
||||
family = "colorbleed.vrayproxy"
|
||||
family = "studio.vrayproxy"
|
||||
icon = "gears"
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
from collections import OrderedDict
|
||||
|
||||
import avalon.maya
|
||||
from config.apps.maya import lib
|
||||
from config.maya import lib
|
||||
|
||||
|
||||
class CreateYetiCache(avalon.maya.Creator):
|
||||
|
|
@ -9,7 +9,7 @@ class CreateYetiCache(avalon.maya.Creator):
|
|||
|
||||
name = "yetiDefault"
|
||||
label = "Yeti Cache"
|
||||
family = "colorbleed.yeticache"
|
||||
family = "studio.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 = "colorbleed.yetiRig"
|
||||
family = "studio.yetiRig"
|
||||
icon = "usb"
|
||||
|
||||
def process(self):
|
||||
|
|
|
|||
|
|
@ -1,12 +1,12 @@
|
|||
import config.apps.maya.plugin
|
||||
import config.maya.plugin
|
||||
|
||||
|
||||
class AbcLoader(config.apps.maya.plugin.ReferenceLoader):
|
||||
class AbcLoader(config.maya.plugin.ReferenceLoader):
|
||||
"""Specific loader of Alembic for the avalon.animation family"""
|
||||
|
||||
families = ["colorbleed.animation",
|
||||
"colorbleed.camera",
|
||||
"colorbleed.pointcache"]
|
||||
families = ["studio.animation",
|
||||
"studio.camera",
|
||||
"studio.pointcache"]
|
||||
representations = ["abc"]
|
||||
|
||||
label = "Reference animation"
|
||||
|
|
@ -42,7 +42,7 @@ class AbcLoader(config.apps.maya.plugin.ReferenceLoader):
|
|||
reference=True,
|
||||
returnNewNodes=True)
|
||||
|
||||
# load colorbleed ID attribute
|
||||
# load studio ID attribute
|
||||
self[:] = nodes
|
||||
|
||||
return nodes
|
||||
|
|
|
|||
|
|
@ -8,9 +8,9 @@ from avalon import api
|
|||
class SetFrameRangeLoader(api.Loader):
|
||||
"""Specific loader of Alembic for the avalon.animation family"""
|
||||
|
||||
families = ["colorbleed.animation",
|
||||
"colorbleed.camera",
|
||||
"colorbleed.pointcache"]
|
||||
families = ["studio.animation",
|
||||
"studio.camera",
|
||||
"studio.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 = ["colorbleed.animation",
|
||||
"colorbleed.camera",
|
||||
"colorbleed.pointcache"]
|
||||
families = ["studio.animation",
|
||||
"studio.camera",
|
||||
"studio.pointcache"]
|
||||
representations = ["abc"]
|
||||
|
||||
label = "Set frame range (with handles)"
|
||||
|
|
|
|||
|
|
@ -1,11 +1,11 @@
|
|||
import config.apps.maya.plugin
|
||||
import config.maya.plugin
|
||||
|
||||
|
||||
class AbcLoader(config.apps.maya.plugin.ReferenceLoader):
|
||||
class AbcLoader(config.maya.plugin.ReferenceLoader):
|
||||
"""Specific loader of Alembic for the avalon.animation family"""
|
||||
|
||||
families = ["colorbleed.animation",
|
||||
"colorbleed.pointcache"]
|
||||
families = ["studio.animation",
|
||||
"studio.pointcache"]
|
||||
label = "Reference animation"
|
||||
representations = ["abc"]
|
||||
order = -10
|
||||
|
|
|
|||
|
|
@ -1,10 +1,10 @@
|
|||
import config.apps.maya.plugin
|
||||
import config.maya.plugin
|
||||
|
||||
|
||||
class CameraLoader(config.apps.maya.plugin.ReferenceLoader):
|
||||
class CameraLoader(config.maya.plugin.ReferenceLoader):
|
||||
"""Specific loader of Alembic for the avalon.animation family"""
|
||||
|
||||
families = ["colorbleed.camera"]
|
||||
families = ["studio.camera"]
|
||||
label = "Reference camera"
|
||||
representations = ["abc", "ma"]
|
||||
order = -10
|
||||
|
|
|
|||
|
|
@ -1,10 +1,10 @@
|
|||
import config.apps.maya.plugin
|
||||
import config.maya.plugin
|
||||
|
||||
|
||||
class LookLoader(config.apps.maya.plugin.ReferenceLoader):
|
||||
class LookLoader(config.maya.plugin.ReferenceLoader):
|
||||
"""Specific loader for lookdev"""
|
||||
|
||||
families = ["colorbleed.look"]
|
||||
families = ["studio.look"]
|
||||
representations = ["ma"]
|
||||
|
||||
label = "Reference look"
|
||||
|
|
|
|||
|
|
@ -1,10 +1,10 @@
|
|||
import config.apps.maya.plugin
|
||||
import config.maya.plugin
|
||||
|
||||
|
||||
class MayaAsciiLoader(config.apps.maya.plugin.ReferenceLoader):
|
||||
class MayaAsciiLoader(config.maya.plugin.ReferenceLoader):
|
||||
"""Load the model"""
|
||||
|
||||
families = ["config.apps.mayaAscii"]
|
||||
families = ["config.mayaAscii"]
|
||||
representations = ["ma"]
|
||||
|
||||
label = "Reference Maya Ascii"
|
||||
|
|
|
|||
|
|
@ -1,11 +1,11 @@
|
|||
from avalon import api
|
||||
import config.apps.maya.plugin
|
||||
import config.maya.plugin
|
||||
|
||||
|
||||
class ModelLoader(config.apps.maya.plugin.ReferenceLoader):
|
||||
class ModelLoader(config.maya.plugin.ReferenceLoader):
|
||||
"""Load the model"""
|
||||
|
||||
families = ["colorbleed.model"]
|
||||
families = ["studio.model"]
|
||||
representations = ["ma"]
|
||||
|
||||
label = "Reference Model"
|
||||
|
|
@ -37,7 +37,7 @@ class ModelLoader(config.apps.maya.plugin.ReferenceLoader):
|
|||
class GpuCacheLoader(api.Loader):
|
||||
"""Load model Alembic as gpuCache"""
|
||||
|
||||
families = ["colorbleed.model"]
|
||||
families = ["studio.model"]
|
||||
representations = ["abc"]
|
||||
|
||||
label = "Import Gpu Cache"
|
||||
|
|
|
|||
|
|
@ -1,17 +1,17 @@
|
|||
from maya import cmds
|
||||
|
||||
import config.apps.maya.plugin
|
||||
import config.maya.plugin
|
||||
from avalon import api, maya
|
||||
|
||||
|
||||
class RigLoader(config.apps.maya.plugin.ReferenceLoader):
|
||||
class RigLoader(config.maya.plugin.ReferenceLoader):
|
||||
"""Specific loader for rigs
|
||||
|
||||
This automatically creates an instance for animators upon load.
|
||||
|
||||
"""
|
||||
|
||||
families = ["colorbleed.rig"]
|
||||
families = ["studio.rig"]
|
||||
representations = ["ma"]
|
||||
|
||||
label = "Reference rig"
|
||||
|
|
@ -62,7 +62,7 @@ class RigLoader(config.apps.maya.plugin.ReferenceLoader):
|
|||
cmds.select([output, controls] + roots, noExpand=True)
|
||||
api.create(name=namespace,
|
||||
asset=asset,
|
||||
family="colorbleed.animation",
|
||||
family="studio.animation",
|
||||
options={"useSelection": True},
|
||||
data={"dependencies": dependency})
|
||||
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ from avalon import api
|
|||
|
||||
class SetDressLoader(api.Loader):
|
||||
|
||||
families = ["colorbleed.setdress"]
|
||||
families = ["studio.setdress"]
|
||||
representations = ["json"]
|
||||
|
||||
label = "Load Set Dress"
|
||||
|
|
@ -23,7 +23,7 @@ class SetDressLoader(api.Loader):
|
|||
suffix="_",
|
||||
)
|
||||
|
||||
from colorbleed import setdress_api
|
||||
from config import setdress_api
|
||||
|
||||
containers = setdress_api.load_package(filepath=self.fname,
|
||||
name=name,
|
||||
|
|
@ -45,7 +45,7 @@ class SetDressLoader(api.Loader):
|
|||
|
||||
def update(self, container, representation):
|
||||
|
||||
from colorbleed import setdress_api
|
||||
from config import setdress_api
|
||||
return setdress_api.update_package(container,
|
||||
representation)
|
||||
|
||||
|
|
@ -53,7 +53,7 @@ class SetDressLoader(api.Loader):
|
|||
"""Remove all sub containers"""
|
||||
|
||||
from avalon import api
|
||||
from colorbleed import setdress_api
|
||||
from config import setdress_api
|
||||
import maya.cmds as cmds
|
||||
|
||||
# Remove all members
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ import maya.cmds as cmds
|
|||
class VRayProxyLoader(api.Loader):
|
||||
"""Load VRayMesh proxy"""
|
||||
|
||||
families = ["colorbleed.vrayproxy"]
|
||||
families = ["studio.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.apps.maya.lib import namespaced
|
||||
from config.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.apps.maya import lib
|
||||
from config.maya import lib
|
||||
|
||||
|
||||
class YetiCacheLoader(api.Loader):
|
||||
|
||||
families = ["colorbleed.yeticache", "colorbleed.yetiRig"]
|
||||
families = ["studio.yeticache", "studio.yetiRig"]
|
||||
representations = ["fur"]
|
||||
|
||||
label = "Load Yeti Cache"
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
import config.apps.maya.plugin
|
||||
import config.maya.plugin
|
||||
|
||||
|
||||
class YetiRigLoader(config.apps.maya.plugin.ReferenceLoader):
|
||||
class YetiRigLoader(config.maya.plugin.ReferenceLoader):
|
||||
|
||||
families = ["colorbleed.yetiRig"]
|
||||
families = ["studio.yetiRig"]
|
||||
representations = ["ma"]
|
||||
|
||||
label = "Load Yeti Rig"
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ class CollectAnimationOutputGeometry(pyblish.api.InstancePlugin):
|
|||
"""
|
||||
|
||||
order = pyblish.api.CollectorOrder + 0.4
|
||||
families = ["colorbleed.animation"]
|
||||
families = ["studio.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 = ["colorbleed.rig"]
|
||||
families = ["studio.rig"]
|
||||
verbose = False
|
||||
|
||||
def process(self, instance):
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
from maya import cmds
|
||||
import pyblish.api
|
||||
import config.apps.maya.lib as lib
|
||||
import config.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 = ["colorbleed.look"]
|
||||
families = ["studio.look"]
|
||||
label = "Collect Look"
|
||||
hosts = ["maya"]
|
||||
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ class CollectModelData(pyblish.api.InstancePlugin):
|
|||
Ensures always only a single frame is extracted (current frame).
|
||||
|
||||
Note:
|
||||
This is a workaround so that the `colorbleed.model` family can use the
|
||||
This is a workaround so that the `studio.model` family can use the
|
||||
same pointcache extractor implementation as animation and pointcaches.
|
||||
This always enforces the "current" frame to be published.
|
||||
|
||||
|
|
@ -17,7 +17,7 @@ class CollectModelData(pyblish.api.InstancePlugin):
|
|||
|
||||
order = pyblish.api.CollectorOrder + 0.499
|
||||
label = 'Collect Model Data'
|
||||
families = ["colorbleed.model"]
|
||||
families = ["studio.model"]
|
||||
|
||||
def process(self, instance):
|
||||
# Extract only current frame (override)
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ from maya import cmds
|
|||
|
||||
import pyblish.api
|
||||
|
||||
import config.apps.maya.lib as lib
|
||||
import config.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 = ["colorbleed.renderlayer"]
|
||||
families = ["studio.renderlayer"]
|
||||
|
||||
def process(self, instance):
|
||||
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ from maya import cmds
|
|||
import pyblish.api
|
||||
|
||||
from avalon import maya, api
|
||||
import config.apps.maya.lib as lib
|
||||
import config.maya.lib as lib
|
||||
|
||||
|
||||
class CollectMayaRenderlayers(pyblish.api.ContextPlugin):
|
||||
|
|
@ -74,7 +74,7 @@ class CollectMayaRenderlayers(pyblish.api.ContextPlugin):
|
|||
|
||||
# instance subset
|
||||
"family": "Render Layers",
|
||||
"families": ["colorbleed.renderlayer"],
|
||||
"families": ["studio.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.apps.maya import lib
|
||||
from config.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 = ["colorbleed.setdress"]
|
||||
families = ["studio.setdress"]
|
||||
|
||||
def process(self, instance):
|
||||
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ from maya import cmds
|
|||
|
||||
import pyblish.api
|
||||
|
||||
from config.apps.maya import lib
|
||||
from config.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 = ["colorbleed.yetiRig", "colorbleed.yeticache"]
|
||||
families = ["studio.yetiRig", "studio.yeticache"]
|
||||
hosts = ["maya"]
|
||||
tasks = ["animation", "fx"]
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ from maya import cmds
|
|||
|
||||
import pyblish.api
|
||||
|
||||
from config.apps.maya import lib
|
||||
from config.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 = ["colorbleed.yetiRig"]
|
||||
families = ["studio.yetiRig"]
|
||||
hosts = ["maya"]
|
||||
|
||||
def process(self, instance):
|
||||
|
|
|
|||
|
|
@ -3,11 +3,11 @@ import os
|
|||
from maya import cmds
|
||||
|
||||
import avalon.maya
|
||||
import colorbleed.api
|
||||
from config.apps.maya.lib import extract_alembic
|
||||
import config.api
|
||||
from config.maya.lib import extract_alembic
|
||||
|
||||
|
||||
class ExtractColorbleedAnimation(colorbleed.api.Extractor):
|
||||
class ExtractColorbleedAnimation(config.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(colorbleed.api.Extractor):
|
|||
|
||||
label = "Extract Animation"
|
||||
hosts = ["maya"]
|
||||
families = ["colorbleed.animation"]
|
||||
families = ["studio.animation"]
|
||||
|
||||
def process(self, instance):
|
||||
|
||||
|
|
|
|||
|
|
@ -3,12 +3,12 @@ import os
|
|||
from maya import cmds
|
||||
|
||||
import avalon.maya
|
||||
import colorbleed.api
|
||||
import config.api
|
||||
|
||||
import cb.utils.maya.context as context
|
||||
|
||||
|
||||
class ExtractCameraAlembic(colorbleed.api.Extractor):
|
||||
class ExtractCameraAlembic(config.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(colorbleed.api.Extractor):
|
|||
|
||||
label = "Camera (Alembic)"
|
||||
hosts = ["maya"]
|
||||
families = ["colorbleed.camera"]
|
||||
families = ["studio.camera"]
|
||||
|
||||
def process(self, instance):
|
||||
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ import os
|
|||
from maya import cmds
|
||||
|
||||
import avalon.maya
|
||||
import colorbleed.api
|
||||
import config.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(colorbleed.api.Extractor):
|
||||
class ExtractCameraMayaAscii(config.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(colorbleed.api.Extractor):
|
|||
|
||||
label = "Camera (Maya Ascii)"
|
||||
hosts = ["maya"]
|
||||
families = ["colorbleed.camera"]
|
||||
families = ["studio.camera"]
|
||||
|
||||
def process(self, instance):
|
||||
|
||||
|
|
|
|||
|
|
@ -6,13 +6,13 @@ from maya import cmds
|
|||
|
||||
import pyblish.api
|
||||
import avalon.maya
|
||||
import colorbleed.api
|
||||
import config.apps.maya.lib as maya
|
||||
import config.api
|
||||
import config.maya.lib as maya
|
||||
|
||||
from cb.utils.maya import context
|
||||
|
||||
|
||||
class ExtractLook(colorbleed.api.Extractor):
|
||||
class ExtractLook(config.api.Extractor):
|
||||
"""Extract Look (Maya Ascii + JSON)
|
||||
|
||||
Only extracts the sets (shadingEngines and alike) alongside a .json file
|
||||
|
|
@ -23,7 +23,7 @@ class ExtractLook(colorbleed.api.Extractor):
|
|||
|
||||
label = "Extract Look (Maya ASCII + JSON)"
|
||||
hosts = ["maya"]
|
||||
families = ["colorbleed.look"]
|
||||
families = ["studio.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 colorbleed.api
|
||||
import config.api
|
||||
|
||||
|
||||
class ExtractMayaAsciiRaw(colorbleed.api.Extractor):
|
||||
class ExtractMayaAsciiRaw(config.api.Extractor):
|
||||
"""Extract as Maya Ascii (raw)
|
||||
|
||||
This will preserve all references, construction history, etc.
|
||||
|
|
@ -15,7 +15,7 @@ class ExtractMayaAsciiRaw(colorbleed.api.Extractor):
|
|||
|
||||
label = "Maya ASCII (Raw)"
|
||||
hosts = ["maya"]
|
||||
families = ["config.apps.mayaAscii"]
|
||||
families = ["config.mayaAscii"]
|
||||
|
||||
def process(self, instance):
|
||||
|
||||
|
|
|
|||
|
|
@ -3,12 +3,12 @@ import os
|
|||
from maya import cmds
|
||||
|
||||
import avalon.maya
|
||||
import colorbleed.api
|
||||
import config.api
|
||||
|
||||
from cb.utils.maya import context
|
||||
|
||||
|
||||
class ExtractModel(colorbleed.api.Extractor):
|
||||
class ExtractModel(config.api.Extractor):
|
||||
"""Extract as Model (Maya Ascii)
|
||||
|
||||
Only extracts contents based on the original "setMembers" data to ensure
|
||||
|
|
@ -25,7 +25,7 @@ class ExtractModel(colorbleed.api.Extractor):
|
|||
|
||||
label = "Model (Maya ASCII)"
|
||||
hosts = ["maya"]
|
||||
families = ["colorbleed.model"]
|
||||
families = ["studio.model"]
|
||||
|
||||
def process(self, instance):
|
||||
|
||||
|
|
|
|||
|
|
@ -3,11 +3,11 @@ import os
|
|||
from maya import cmds
|
||||
|
||||
import avalon.maya
|
||||
import colorbleed.api
|
||||
from config.apps.maya.lib import extract_alembic
|
||||
import config.api
|
||||
from config.maya.lib import extract_alembic
|
||||
|
||||
|
||||
class ExtractColorbleedAlembic(colorbleed.api.Extractor):
|
||||
class ExtractColorbleedAlembic(config.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(colorbleed.api.Extractor):
|
|||
|
||||
label = "Extract Pointcache (Alembic)"
|
||||
hosts = ["maya"]
|
||||
families = ["colorbleed.pointcache",
|
||||
"colorbleed.model"]
|
||||
families = ["studio.pointcache",
|
||||
"studio.model"]
|
||||
|
||||
def process(self, instance):
|
||||
|
||||
|
|
|
|||
|
|
@ -3,15 +3,15 @@ import os
|
|||
from maya import cmds
|
||||
|
||||
import avalon.maya
|
||||
import colorbleed.api
|
||||
import config.api
|
||||
|
||||
|
||||
class ExtractColorbleedRig(colorbleed.api.Extractor):
|
||||
class ExtractColorbleedRig(config.api.Extractor):
|
||||
"""Extract rig as Maya Ascii"""
|
||||
|
||||
label = "Extract Rig (Maya ASCII)"
|
||||
hosts = ["maya"]
|
||||
families = ["colorbleed.rig"]
|
||||
families = ["studio.rig"]
|
||||
|
||||
def process(self, instance):
|
||||
|
||||
|
|
|
|||
|
|
@ -2,13 +2,13 @@ import json
|
|||
|
||||
import os
|
||||
|
||||
import colorbleed.api
|
||||
from config.apps.maya.lib import extract_alembic
|
||||
import config.api
|
||||
from config.maya.lib import extract_alembic
|
||||
|
||||
from maya import cmds
|
||||
|
||||
|
||||
class ExtractSetDress(colorbleed.api.Extractor):
|
||||
class ExtractSetDress(config.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(colorbleed.api.Extractor):
|
|||
|
||||
label = "Extract Set Dress"
|
||||
hosts = ["maya"]
|
||||
families = ["colorbleed.setdress"]
|
||||
families = ["studio.setdress"]
|
||||
|
||||
def process(self, instance):
|
||||
|
||||
|
|
|
|||
|
|
@ -1,12 +1,12 @@
|
|||
import os
|
||||
|
||||
import avalon.maya
|
||||
import colorbleed.api
|
||||
import config.api
|
||||
|
||||
from maya import cmds
|
||||
|
||||
|
||||
class ExtractVRayProxy(colorbleed.api.Extractor):
|
||||
class ExtractVRayProxy(config.api.Extractor):
|
||||
"""Extract the content of the instance to a vrmesh file
|
||||
|
||||
Things to pay attention to:
|
||||
|
|
@ -16,7 +16,7 @@ class ExtractVRayProxy(colorbleed.api.Extractor):
|
|||
|
||||
label = "VRay Proxy (.vrmesh)"
|
||||
hosts = ["maya"]
|
||||
families = ["colorbleed.vrayproxy"]
|
||||
families = ["studio.vrayproxy"]
|
||||
|
||||
def process(self, instance):
|
||||
|
||||
|
|
|
|||
|
|
@ -3,10 +3,10 @@ import json
|
|||
|
||||
from maya import cmds
|
||||
|
||||
import colorbleed.api
|
||||
import config.api
|
||||
|
||||
|
||||
class ExtractYetiCache(colorbleed.api.Extractor):
|
||||
class ExtractYetiCache(config.api.Extractor):
|
||||
"""Produce an alembic of just point positions and normals.
|
||||
|
||||
Positions and normals are preserved, but nothing more,
|
||||
|
|
@ -16,7 +16,7 @@ class ExtractYetiCache(colorbleed.api.Extractor):
|
|||
|
||||
label = "Extract Yeti Cache"
|
||||
hosts = ["maya"]
|
||||
families = ["colorbleed.yetiRig", "colorbleed.yeticache"]
|
||||
families = ["studio.yetiRig", "studio.yeticache"]
|
||||
|
||||
def process(self, instance):
|
||||
|
||||
|
|
|
|||
|
|
@ -5,8 +5,8 @@ import contextlib
|
|||
from maya import cmds
|
||||
|
||||
import avalon.maya.lib as lib
|
||||
import colorbleed.api
|
||||
import config.apps.maya.lib as maya
|
||||
import config.api
|
||||
import config.maya.lib as maya
|
||||
|
||||
|
||||
@contextlib.contextmanager
|
||||
|
|
@ -56,7 +56,7 @@ def disconnected_attributes(settings, members):
|
|||
continue
|
||||
|
||||
|
||||
class ExtractYetiRig(colorbleed.api.Extractor):
|
||||
class ExtractYetiRig(config.api.Extractor):
|
||||
"""Produce an alembic of just point positions and normals.
|
||||
|
||||
Positions and normals are preserved, but nothing more,
|
||||
|
|
@ -66,7 +66,7 @@ class ExtractYetiRig(colorbleed.api.Extractor):
|
|||
|
||||
label = "Extract Yeti Rig"
|
||||
hosts = ["maya"]
|
||||
families = ["colorbleed.yetiRig"]
|
||||
families = ["studio.yetiRig"]
|
||||
|
||||
def process(self, instance):
|
||||
|
||||
|
|
|
|||
|
|
@ -11,15 +11,15 @@ class IncrementCurrentFileDeadline(pyblish.api.ContextPlugin):
|
|||
label = "Increment current file"
|
||||
order = pyblish.api.IntegratorOrder + 9.0
|
||||
hosts = ["maya"]
|
||||
families = ["colorbleed.renderlayer"]
|
||||
families = ["studio.renderlayer"]
|
||||
optional = True
|
||||
|
||||
def process(self, context):
|
||||
|
||||
import os
|
||||
from maya import cmds
|
||||
from colorbleed.lib import version_up
|
||||
from colorbleed.action import get_errored_plugins_from_data
|
||||
from config.lib import version_up
|
||||
from config.action import get_errored_plugins_from_data
|
||||
|
||||
errored_plugins = get_errored_plugins_from_data(context)
|
||||
if any(plugin.__name__ == "MayaSubmitDeadline"
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ class SaveCurrentScene(pyblish.api.ContextPlugin):
|
|||
label = "Save current file"
|
||||
order = pyblish.api.IntegratorOrder - 0.49
|
||||
hosts = ["maya"]
|
||||
families = ["colorbleed.renderlayer"]
|
||||
families = ["studio.renderlayer"]
|
||||
|
||||
def process(self, context):
|
||||
import maya.cmds as cmds
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ from avalon.vendor import requests
|
|||
|
||||
import pyblish.api
|
||||
|
||||
import config.apps.maya.lib as lib
|
||||
import config.maya.lib as lib
|
||||
|
||||
|
||||
def get_renderer_variables(renderlayer=None):
|
||||
|
|
@ -99,7 +99,7 @@ class MayaSubmitDeadline(pyblish.api.InstancePlugin):
|
|||
label = "Submit to Deadline"
|
||||
order = pyblish.api.IntegratorOrder
|
||||
hosts = ["maya"]
|
||||
families = ["colorbleed.renderlayer"]
|
||||
families = ["studio.renderlayer"]
|
||||
|
||||
def process(self, instance):
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
import pyblish.api
|
||||
import colorbleed.api
|
||||
import config.api
|
||||
|
||||
|
||||
class ValidateAnimationContent(pyblish.api.InstancePlugin):
|
||||
|
|
@ -10,11 +10,11 @@ class ValidateAnimationContent(pyblish.api.InstancePlugin):
|
|||
|
||||
"""
|
||||
|
||||
order = colorbleed.api.ValidateContentsOrder
|
||||
order = config.api.ValidateContentsOrder
|
||||
hosts = ["maya"]
|
||||
families = ["colorbleed.animation"]
|
||||
families = ["studio.animation"]
|
||||
label = "Animation Content"
|
||||
actions = [colorbleed.api.SelectInvalidAction]
|
||||
actions = [config.api.SelectInvalidAction]
|
||||
|
||||
@classmethod
|
||||
def get_invalid(cls, instance):
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
import maya.cmds as cmds
|
||||
|
||||
import pyblish.api
|
||||
import colorbleed.api
|
||||
import config.apps.maya.lib as lib
|
||||
import config.api
|
||||
import config.maya.lib as lib
|
||||
|
||||
|
||||
class ValidateOutRelatedNodeIds(pyblish.api.InstancePlugin):
|
||||
|
|
@ -15,11 +15,11 @@ class ValidateOutRelatedNodeIds(pyblish.api.InstancePlugin):
|
|||
|
||||
"""
|
||||
|
||||
order = colorbleed.api.ValidateContentsOrder
|
||||
families = ['colorbleed.animation', "colorbleed.pointcache"]
|
||||
order = config.api.ValidateContentsOrder
|
||||
families = ['studio.animation', "studio.pointcache"]
|
||||
hosts = ['maya']
|
||||
label = 'Animation Out Set Related Node Ids'
|
||||
actions = [colorbleed.api.SelectInvalidAction, colorbleed.api.RepairAction]
|
||||
actions = [config.api.SelectInvalidAction, config.api.RepairAction]
|
||||
|
||||
def process(self, instance):
|
||||
"""Process all meshes"""
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
from maya import cmds
|
||||
|
||||
import pyblish.api
|
||||
import colorbleed.api
|
||||
import config.api
|
||||
|
||||
|
||||
class ValidateCameraAttributes(pyblish.api.InstancePlugin):
|
||||
|
|
@ -13,11 +13,11 @@ class ValidateCameraAttributes(pyblish.api.InstancePlugin):
|
|||
|
||||
"""
|
||||
|
||||
order = colorbleed.api.ValidateContentsOrder
|
||||
families = ['colorbleed.camera']
|
||||
order = config.api.ValidateContentsOrder
|
||||
families = ['studio.camera']
|
||||
hosts = ['maya']
|
||||
label = 'Camera Attributes'
|
||||
actions = [colorbleed.api.SelectInvalidAction]
|
||||
actions = [config.api.SelectInvalidAction]
|
||||
|
||||
DEFAULTS = [
|
||||
("filmFitOffset", 0.0),
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
from maya import cmds
|
||||
|
||||
import pyblish.api
|
||||
import colorbleed.api
|
||||
import config.api
|
||||
|
||||
|
||||
class ValidateCameraContents(pyblish.api.InstancePlugin):
|
||||
|
|
@ -14,11 +14,11 @@ class ValidateCameraContents(pyblish.api.InstancePlugin):
|
|||
|
||||
"""
|
||||
|
||||
order = colorbleed.api.ValidateContentsOrder
|
||||
families = ['colorbleed.camera']
|
||||
order = config.api.ValidateContentsOrder
|
||||
families = ['studio.camera']
|
||||
hosts = ['maya']
|
||||
label = 'Camera Contents'
|
||||
actions = [colorbleed.api.SelectInvalidAction]
|
||||
actions = [config.api.SelectInvalidAction]
|
||||
|
||||
@classmethod
|
||||
def get_invalid(cls, instance):
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ class ValidateDeadlineConnection(pyblish.api.ContextPlugin):
|
|||
label = "Validate Deadline Web Service"
|
||||
order = pyblish.api.ValidatorOrder
|
||||
hosts = ["maya"]
|
||||
families = ["colorbleed.renderlayer"]
|
||||
families = ["studio.renderlayer"]
|
||||
|
||||
def process(self, instance):
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
import pyblish.api
|
||||
import colorbleed.api
|
||||
import config.api
|
||||
|
||||
|
||||
class ValidateFrameRange(pyblish.api.InstancePlugin):
|
||||
|
|
@ -16,11 +16,11 @@ class ValidateFrameRange(pyblish.api.InstancePlugin):
|
|||
"""
|
||||
|
||||
label = "Validate Frame Range"
|
||||
order = colorbleed.api.ValidateContentsOrder
|
||||
families = ["colorbleed.animation",
|
||||
"colorbleed.pointcache",
|
||||
"colorbleed.camera",
|
||||
"colorbleed.renderlayer"]
|
||||
order = config.api.ValidateContentsOrder
|
||||
families = ["studio.animation",
|
||||
"studio.pointcache",
|
||||
"studio.camera",
|
||||
"studio.renderlayer"]
|
||||
|
||||
def process(self, instance):
|
||||
|
||||
|
|
|
|||
|
|
@ -1,14 +1,14 @@
|
|||
import pyblish.api
|
||||
import colorbleed.api
|
||||
import config.api
|
||||
|
||||
|
||||
class ValidateInstanceHasMembers(pyblish.api.InstancePlugin):
|
||||
"""Validates instance objectSet has *any* members."""
|
||||
|
||||
order = colorbleed.api.ValidateContentsOrder
|
||||
order = config.api.ValidateContentsOrder
|
||||
hosts = ["maya"]
|
||||
label = 'Instance has members'
|
||||
actions = [colorbleed.api.SelectInvalidAction]
|
||||
actions = [config.api.SelectInvalidAction]
|
||||
|
||||
@classmethod
|
||||
def get_invalid(cls, instance):
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
import pyblish.api
|
||||
import colorbleed.api
|
||||
import config.api
|
||||
import string
|
||||
|
||||
# Allow only characters, numbers and underscore
|
||||
|
|
@ -16,7 +16,7 @@ def validate_name(subset):
|
|||
class ValidateSubsetName(pyblish.api.InstancePlugin):
|
||||
"""Validates subset name has only valid characters"""
|
||||
|
||||
order = colorbleed.api.ValidateContentsOrder
|
||||
order = config.api.ValidateContentsOrder
|
||||
families = ["*"]
|
||||
label = "Subset Name"
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
import maya.cmds as cmds
|
||||
|
||||
import pyblish.api
|
||||
import config.apps.maya.lib as lib
|
||||
import config.maya.lib as lib
|
||||
|
||||
|
||||
class ValidateInstancerContent(pyblish.api.InstancePlugin):
|
||||
|
|
@ -12,7 +12,7 @@ class ValidateInstancerContent(pyblish.api.InstancePlugin):
|
|||
"""
|
||||
order = pyblish.api.ValidatorOrder
|
||||
label = 'Instancer Content'
|
||||
families = ['colorbleed.instancer']
|
||||
families = ['studio.instancer']
|
||||
|
||||
def process(self, instance):
|
||||
|
||||
|
|
|
|||
|
|
@ -44,7 +44,7 @@ class ValidateInstancerFrameRanges(pyblish.api.InstancePlugin):
|
|||
"""
|
||||
order = pyblish.api.ValidatorOrder
|
||||
label = 'Instancer Cache Frame Ranges'
|
||||
families = ['colorbleed.instancer']
|
||||
families = ['studio.instancer']
|
||||
|
||||
@classmethod
|
||||
def get_invalid(cls, instance):
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
from maya import cmds
|
||||
|
||||
import pyblish.api
|
||||
import colorbleed.api
|
||||
import config.apps.maya.lib as lib
|
||||
import config.api
|
||||
import config.maya.lib as lib
|
||||
|
||||
|
||||
class ValidateJointsHidden(pyblish.api.InstancePlugin):
|
||||
|
|
@ -16,14 +16,14 @@ class ValidateJointsHidden(pyblish.api.InstancePlugin):
|
|||
|
||||
"""
|
||||
|
||||
order = colorbleed.api.ValidateContentsOrder
|
||||
order = config.api.ValidateContentsOrder
|
||||
hosts = ['maya']
|
||||
families = ['colorbleed.rig']
|
||||
families = ['studio.rig']
|
||||
category = 'rig'
|
||||
version = (0, 1, 0)
|
||||
label = "Joints Hidden"
|
||||
actions = [colorbleed.api.SelectInvalidAction,
|
||||
colorbleed.api.RepairAction]
|
||||
actions = [config.api.SelectInvalidAction,
|
||||
config.api.RepairAction]
|
||||
|
||||
@staticmethod
|
||||
def get_invalid(instance):
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
import pyblish.api
|
||||
import colorbleed.api
|
||||
import config.api
|
||||
|
||||
|
||||
class ValidateLookContents(pyblish.api.InstancePlugin):
|
||||
|
|
@ -16,11 +16,11 @@ class ValidateLookContents(pyblish.api.InstancePlugin):
|
|||
|
||||
"""
|
||||
|
||||
order = colorbleed.api.ValidateContentsOrder
|
||||
families = ['colorbleed.look']
|
||||
order = config.api.ValidateContentsOrder
|
||||
families = ['studio.look']
|
||||
hosts = ['maya']
|
||||
label = 'Look Data Contents'
|
||||
actions = [colorbleed.api.SelectInvalidAction]
|
||||
actions = [config.api.SelectInvalidAction]
|
||||
|
||||
def process(self, instance):
|
||||
"""Process all the nodes in the instance"""
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
from maya import cmds
|
||||
|
||||
import pyblish.api
|
||||
import colorbleed.api
|
||||
import config.api
|
||||
|
||||
|
||||
class ValidateLookDefaultShadersConnections(pyblish.api.InstancePlugin):
|
||||
|
|
@ -16,8 +16,8 @@ class ValidateLookDefaultShadersConnections(pyblish.api.InstancePlugin):
|
|||
|
||||
"""
|
||||
|
||||
order = colorbleed.api.ValidateContentsOrder
|
||||
families = ['colorbleed.look']
|
||||
order = config.api.ValidateContentsOrder
|
||||
families = ['studio.look']
|
||||
hosts = ['maya']
|
||||
label = 'Look Default Shader Connections'
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
from collections import defaultdict
|
||||
|
||||
import pyblish.api
|
||||
import colorbleed.api
|
||||
import config.api
|
||||
|
||||
|
||||
class ValidateUniqueRelationshipMembers(pyblish.api.InstancePlugin):
|
||||
|
|
@ -19,13 +19,13 @@ class ValidateUniqueRelationshipMembers(pyblish.api.InstancePlugin):
|
|||
|
||||
"""
|
||||
|
||||
order = colorbleed.api.ValidatePipelineOrder
|
||||
order = config.api.ValidatePipelineOrder
|
||||
label = 'Look members unique'
|
||||
hosts = ['maya']
|
||||
families = ['colorbleed.look']
|
||||
families = ['studio.look']
|
||||
|
||||
actions = [colorbleed.api.SelectInvalidAction,
|
||||
colorbleed.api.GenerateUUIDsOnInvalidAction]
|
||||
actions = [config.api.SelectInvalidAction,
|
||||
config.api.GenerateUUIDsOnInvalidAction]
|
||||
|
||||
def process(self, instance):
|
||||
"""Process all meshes"""
|
||||
|
|
|
|||
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