Improve ValidateRenderSettings; fix class name, fix checking prefix within the layer, remove redundant AttributeError

This commit is contained in:
Roy Nieterau 2017-10-04 18:02:30 +02:00
parent b00fb1c14a
commit db34b11c26

View file

@ -2,15 +2,16 @@ import maya.cmds as cmds
import pyblish.api
import colorbleed.api
import colorbleed.maya.lib as lib
class ValidateResources(pyblish.api.InstancePlugin):
class ValidateRenderSettings(pyblish.api.InstancePlugin):
"""Validates the global render settings
* File Name Prefix must be as followed:
* vray: renders/<Scene>/<Layer>/<Layer>
* arnold: renders/<Scene>/<RenderLayer>/<RenderLayer>
* default: renders/<Scene>/<RenderLayer>/<RenderLayer>
* vray: <Scene>/<Layer>/<Layer>
* arnold: <Scene>/<RenderLayer>/<RenderLayer>
* default: <Scene>/<RenderLayer>/<RenderLayer>
* Frame Padding must be:
* default: 4
@ -21,27 +22,31 @@ class ValidateResources(pyblish.api.InstancePlugin):
hosts = ["maya"]
families = ["colorbleed.renderlayer"]
def process(self, instance):
renderer = cmds.getAttr("defaultRenderGlobals.currentRenderer")
default_padding = 4
default_prefix = {
DEFAULT_PADDING = 4
DEFAULT_PREFIX = {
"vray": "<Scene>/<Scene>_<Layer>/<Layer>",
"arnold": "<Scene>/<Scene>_<RenderLayer>/<RenderLayer>"
}
}
if renderer == "vray":
prefix = cmds.getAttr("vraySettings.fileNamePrefix")
padding = cmds.getAttr("vraySettings.fileNamePadding")
else:
prefix = cmds.getAttr("defaultRenderGlobals.fileNamePrefix")
padding = cmds.getAttr("defaultRenderGlobals.fileNamePadding")
def process(self, instance):
filename_prefix = default_prefix[renderer]
assert padding == default_padding, (
"Expecting padding of 4 ( 0000 )"
)
renderer = instance.data['renderer']
layer_node = instance.data['setMembers']
# Collect the filename prefix in the renderlayer
with lib.renderlayer(layer_node):
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 = self.DEFAULT_PREFIX[renderer]
assert prefix == filename_prefix, (
"Wrong file name prefix, expecting %s" % filename_prefix
)
assert padding == self.DEFAULT_PADDING, (
"Expecting padding of {} ( {} )".format(self.DEFAULT_PADDING,
"0"*self.DEFAULT_PADDING)
)