fixed subset name, removing rendering instance, fixed layer creaton and image prefix

This commit is contained in:
Ondrej Samohel 2020-02-06 12:58:25 +01:00
parent 255947b2a5
commit cb26f7ae66
No known key found for this signature in database
GPG key ID: 8A29C663C672C2B7
4 changed files with 36 additions and 4 deletions

View file

@ -2462,7 +2462,7 @@ def _get_render_instance():
if not has_family:
continue
if cmds.getAttr("{}.family".format(objset)) == 'render':
if cmds.getAttr("{}.family".format(objset)) == 'rendering':
return objset
return None

View file

@ -479,12 +479,17 @@ class CollectRenderedFrames(pyblish.api.ContextPlugin):
self.log.info("Creating new subset: {}".format(subset))
new_instance = context.create_instance(subset)
data = copy.deepcopy(data)
task = data["metadata"]["session"]["AVALON_TASK"]
new_subset_name = 'render{}{}{}{}'.format(
task[0].upper(), task[1:],
subset[0].upper(), subset[1:])
new_instance.data.update(
{
"name": subset,
"name": new_subset_name,
"family": 'render',
"families": ['render'],
"subset": subset,
"subset": new_subset_name,
"asset": data.get(
"asset", api.Session["AVALON_ASSET"]),
"stagingDir": root,
@ -500,7 +505,7 @@ class CollectRenderedFrames(pyblish.api.ContextPlugin):
)
new_instance.data["representations"] = data["metadata"]["instance"]["representations"]
if new_instance:
if new_instance is not None:
self.log.info("remapping paths ...")
new_instance.data["representations"] = [PypeLauncher.path_remapper(r) for r in new_instance.data["representations"]] # noqa: E501
self.log.debug(

View file

@ -25,6 +25,22 @@ class CreateRender(avalon.maya.Creator):
# renderSetup instance
_rs = None
_image_prefix_nodes = {
'mentalray': 'defaultRenderGlobals.imageFilePrefix',
'vray': 'vraySettings.fileNamePrefix',
'arnold': 'defaultRenderGlobals.imageFilePrefix',
'renderman': 'defaultRenderGlobals.imageFilePrefix',
'redshift': 'defaultRenderGlobals.imageFilePrefix'
}
_image_prefixes = {
'mentalray': 'maya/<Scene>/<RenderLayer>/<RenderLayer>_<RenderPass>',
'vray': '"maya/<scene>/<Layer>/<Layer>',
'arnold': 'maya/<Scene>/<RenderLayer>/<RenderLayer>_<RenderPass>',
'renderman': 'maya/<Scene>/<layer>/<layer>_<aov>',
'redshift': 'maya/<Scene>/<RenderLayer>/<RenderLayer>_<RenderPass>'
}
def __init__(self, *args, **kwargs):
super(CreateRender, self).__init__(*args, **kwargs)
@ -49,6 +65,16 @@ class CreateRender(avalon.maya.Creator):
sets.append(render_set)
cmds.sets(sets, forceElement=instance)
renderer = cmds.getAttr(
'defaultRenderGlobals.currentRenderer').lower()
# handle various renderman names
if renderer.startswith('renderman'):
renderer = 'renderman'
cmds.setAttr(self._image_prefix_nodes[renderer],
self._image_prefixes[renderer],
type="string")
def _create_render_settings(self):
# get pools
pools = []

View file

@ -55,6 +55,7 @@ class CollectMayaRender(pyblish.api.ContextPlugin):
for instance in context:
if 'rendering' in instance.data['families']:
render_instance = instance
render_instance.data["remove"] = True
if not render_instance:
self.log.info("No render instance found, skipping render "