From 8c3fc367907b02842ded2a26ad49ad2e144edc4a Mon Sep 17 00:00:00 2001 From: aardschok Date: Tue, 3 Oct 2017 16:15:17 +0200 Subject: [PATCH 1/5] added render settings validator --- .../maya/publish/validate_rendersettings.py | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 colorbleed/plugins/maya/publish/validate_rendersettings.py diff --git a/colorbleed/plugins/maya/publish/validate_rendersettings.py b/colorbleed/plugins/maya/publish/validate_rendersettings.py new file mode 100644 index 0000000000..29dd1abf47 --- /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("defeaultRenderGlobals.currentRenderer") + + default_padding = 4 + default_prefix = { + "vray": "renders//_/", + "arnold": "renders//_/" + } + + 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 + ) \ No newline at end of file From 259e8888b0e75fc697977edbd27c3c950ea0a2ef Mon Sep 17 00:00:00 2001 From: aardschok Date: Tue, 3 Oct 2017 16:35:49 +0200 Subject: [PATCH 2/5] ensured images will be stored in renders --- res/workspace.mel | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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"; From db90ae1676ab140ce85a8019e4ad066add86cb43 Mon Sep 17 00:00:00 2001 From: aardschok Date: Tue, 3 Oct 2017 17:45:27 +0200 Subject: [PATCH 3/5] fixed typo --- colorbleed/plugins/maya/publish/validate_rendersettings.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/colorbleed/plugins/maya/publish/validate_rendersettings.py b/colorbleed/plugins/maya/publish/validate_rendersettings.py index 29dd1abf47..1c2302e966 100644 --- a/colorbleed/plugins/maya/publish/validate_rendersettings.py +++ b/colorbleed/plugins/maya/publish/validate_rendersettings.py @@ -23,7 +23,7 @@ class ValidateResources(pyblish.api.InstancePlugin): def process(self, instance): - renderer = cmds.getAttr("defeaultRenderGlobals.currentRenderer") + renderer = cmds.getAttr("defaultRenderGlobals.currentRenderer") default_padding = 4 default_prefix = { @@ -44,4 +44,4 @@ class ValidateResources(pyblish.api.InstancePlugin): ) assert prefix == filename_prefix, AttributeError( "Wrong file name prefix, expecting %s" % filename_prefix - ) \ No newline at end of file + ) From e7833e26a16b33aaf81f37c0c580a5d927893f4f Mon Sep 17 00:00:00 2001 From: aardschok Date: Tue, 3 Oct 2017 17:49:26 +0200 Subject: [PATCH 4/5] udpated expected output path --- colorbleed/plugins/maya/publish/submit_deadline.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) 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 From e2d4a9a93d1bf82004b132047e8b6c96c3cfae07 Mon Sep 17 00:00:00 2001 From: aardschok Date: Tue, 3 Oct 2017 17:49:57 +0200 Subject: [PATCH 5/5] updated prefix string --- colorbleed/plugins/maya/publish/validate_rendersettings.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/colorbleed/plugins/maya/publish/validate_rendersettings.py b/colorbleed/plugins/maya/publish/validate_rendersettings.py index 1c2302e966..4995bf915a 100644 --- a/colorbleed/plugins/maya/publish/validate_rendersettings.py +++ b/colorbleed/plugins/maya/publish/validate_rendersettings.py @@ -27,8 +27,8 @@ class ValidateResources(pyblish.api.InstancePlugin): default_padding = 4 default_prefix = { - "vray": "renders//_/", - "arnold": "renders//_/" + "vray": "/_/", + "arnold": "/_/" } if renderer == "vray":