diff --git a/pype/maya/lib.py b/pype/maya/lib.py index 7cf201cdd9..216b455137 100644 --- a/pype/maya/lib.py +++ b/pype/maya/lib.py @@ -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 diff --git a/pype/plugins/global/publish/collect_filesequences.py b/pype/plugins/global/publish/collect_filesequences.py index 59b2623877..82d876afc6 100644 --- a/pype/plugins/global/publish/collect_filesequences.py +++ b/pype/plugins/global/publish/collect_filesequences.py @@ -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( diff --git a/pype/plugins/maya/create/create_render.py b/pype/plugins/maya/create/create_render.py index 4c07e8c118..159202c51f 100644 --- a/pype/plugins/maya/create/create_render.py +++ b/pype/plugins/maya/create/create_render.py @@ -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///_', + 'vray': '"maya///', + 'arnold': 'maya///_', + 'renderman': 'maya///_', + 'redshift': 'maya///_' + } + 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 = [] diff --git a/pype/plugins/maya/publish/collect_render.py b/pype/plugins/maya/publish/collect_render.py index 4096ef3c0e..5179acf416 100644 --- a/pype/plugins/maya/publish/collect_render.py +++ b/pype/plugins/maya/publish/collect_render.py @@ -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 "