Merge pull request #1 from pypeclub/initialisation

Initialisation convert colorbleed to studio or config
This commit is contained in:
Jakub Ježek 2018-09-27 21:51:08 +02:00 committed by GitHub
commit cfea9c8f5c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
156 changed files with 1076 additions and 471 deletions

View file

@ -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

View file

@ -1,4 +1,7 @@
import os
import sys
import imp
from pyblish import api as pyblish
from avalon import api as avalon

View file

@ -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']

View file

@ -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

View file

@ -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"):

View file

@ -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():

View file

@ -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})

View file

@ -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
View 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
View 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"])}

View file

@ -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):

View file

@ -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", {})

View file

@ -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"

View file

@ -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
})

View file

@ -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)

View file

@ -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"

View file

@ -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

View file

@ -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):

View file

@ -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):

View file

@ -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):

View file

@ -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

View file

@ -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):

View file

@ -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

View file

@ -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):

View file

@ -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

View file

@ -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):

View file

@ -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

View file

@ -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"

View file

@ -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"""

View 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"

View file

@ -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):

View file

@ -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)

View file

@ -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):

View file

@ -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):

View file

@ -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):

View file

@ -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):

View file

@ -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"

View file

@ -6,5 +6,5 @@ class CreateModel(avalon.maya.Creator):
name = "modelDefault"
label = "Model"
family = "colorbleed.model"
family = "studio.model"
icon = "cube"

View file

@ -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):

View file

@ -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):

View file

@ -8,7 +8,7 @@ class CreateRig(avalon.maya.Creator):
name = "rigDefault"
label = "Rig"
family = "colorbleed.rig"
family = "studio.rig"
icon = "wheelchair"
def process(self):

View file

@ -6,5 +6,5 @@ class CreateSetDress(avalon.maya.Creator):
name = "setdress"
label = "Set Dress"
family = "colorbleed.setdress"
family = "studio.setdress"
icon = "cubes"

View file

@ -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):

View file

@ -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):

View file

@ -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):

View file

@ -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

View file

@ -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)"

View file

@ -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

View file

@ -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

View file

@ -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"

View file

@ -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"

View file

@ -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"

View file

@ -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})

View file

@ -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

View file

@ -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(

View file

@ -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"

View file

@ -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"

View file

@ -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"]

View file

@ -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):

View file

@ -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"]

View file

@ -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)

View file

@ -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):

View file

@ -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"],

View file

@ -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):

View file

@ -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"]

View file

@ -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):

View file

@ -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):

View file

@ -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):

View file

@ -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):

View file

@ -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):

View file

@ -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):

View file

@ -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):

View file

@ -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):

View file

@ -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):

View file

@ -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):

View file

@ -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):

View file

@ -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):

View file

@ -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):

View file

@ -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"

View file

@ -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

View file

@ -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):

View file

@ -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):

View file

@ -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"""

View file

@ -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),

View file

@ -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):

View file

@ -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):

View file

@ -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):

View file

@ -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):

View file

@ -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"

View file

@ -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):

View file

@ -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):

View file

@ -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):

View file

@ -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"""

View file

@ -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'

View file

@ -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