diff --git a/colorbleed/plugins/maya/publish/submit_deadline.py b/colorbleed/plugins/maya/publish/submit_deadline.py index 19d935a97f..ea96fb486c 100644 --- a/colorbleed/plugins/maya/publish/submit_deadline.py +++ b/colorbleed/plugins/maya/publish/submit_deadline.py @@ -45,16 +45,14 @@ def get_renderer_variables(): if renderer == "vray": # Maya's renderSettings function does not resolved V-Ray extension # Getting the extension for VRay settings node - extension = cmds.getAttr("{}.{}".format(render_attrs["node"], - render_attrs["ext"])) - filename_prefix = "//" + extension = cmds.getAttr("vraySettings.imageFormatStr") + filename_prefix = "/_/" else: # Get the extension, getAttr defaultRenderGlobals.imageFormat # returns an index number. filename_base = os.path.basename(filename_0) extension = os.path.splitext(filename_base)[-1].strip(".") - filename_prefix = cmds.getAttr("{}.{}".format(render_attrs["node"], - render_attrs["prefix"])) + filename_prefix = "/_/" return {"ext": extension, "filename_prefix": filename_prefix, @@ -97,7 +95,7 @@ class MindbenderSubmitDeadline(pyblish.api.InstancePlugin): # Get the variables depending on the renderer render_variables = get_renderer_variables() - # following hardcoded "//" + # following hardcoded "renders//_/" output_filename_0 = self.preview_fname(scene, instance.name, dirname, @@ -241,7 +239,9 @@ class MindbenderSubmitDeadline(pyblish.api.InstancePlugin): """ padded_basename = "{}.{}.{}".format(layer, "#" * padding, ext) - preview_fname = os.path.join(folder, scene, layer, padded_basename) + scene_layer_folder = "{}_{}".format(scene, layer) + preview_fname = os.path.join(folder, scene, scene_layer_folder, + layer, padded_basename) return preview_fname diff --git a/colorbleed/plugins/maya/publish/validate_rendersettings.py b/colorbleed/plugins/maya/publish/validate_rendersettings.py new file mode 100644 index 0000000000..4995bf915a --- /dev/null +++ b/colorbleed/plugins/maya/publish/validate_rendersettings.py @@ -0,0 +1,47 @@ +import maya.cmds as cmds + +import pyblish.api +import colorbleed.api + + +class ValidateResources(pyblish.api.InstancePlugin): + """Validates the globar render settings + + * File Name Prefix must be as followed: + * vray: renders/// + * arnold: renders/// + * default: renders/// + + * Frame Padding must be: + * default: 4 + """ + + order = colorbleed.api.ValidateContentsOrder + label = "Render Settings" + hosts = ["maya"] + families = ["colorbleed.renderlayer"] + + def process(self, instance): + + renderer = cmds.getAttr("defaultRenderGlobals.currentRenderer") + + default_padding = 4 + default_prefix = { + "vray": "/_/", + "arnold": "/_/" + } + + if renderer == "vray": + prefix = cmds.getAttr("vraySettings.fileNamePrefix") + padding = cmds.getAttr("vraySettings.fileNamePadding") + else: + prefix = cmds.getAttr("defaultRenderGlobals.fileNamePrefix") + padding = cmds.getAttr("defaultRenderGlobals.fileNamePadding") + + filename_prefix = default_prefix[renderer] + assert padding == default_padding, AttributeError( + "Expecting padding of 4 ( 0000 )" + ) + assert prefix == filename_prefix, AttributeError( + "Wrong file name prefix, expecting %s" % filename_prefix + ) diff --git a/res/workspace.mel b/res/workspace.mel index 81d7f628a5..60fda895d5 100644 --- a/res/workspace.mel +++ b/res/workspace.mel @@ -2,7 +2,7 @@ workspace -fr "fluidCache" "cache/nCache/fluid"; workspace -fr "JT_ATF" "data"; -workspace -fr "images" "images"; +workspace -fr "images" "renders"; workspace -fr "offlineEdit" "scenes/edits"; workspace -fr "STEP_ATF Export" "data"; workspace -fr "furShadowMap" "renderData/fur/furShadowMap";