From 5916389022aa5f632900e0edb9052aa0163fd278 Mon Sep 17 00:00:00 2001 From: Ondrej Samohel Date: Fri, 12 Nov 2021 17:15:57 +0100 Subject: [PATCH] fix aov separator character usage --- openpype/hosts/maya/api/lib_renderproducts.py | 3 ++- .../hosts/maya/plugins/create/create_render.py | 17 ++++++++++++++++- .../maya/plugins/publish/collect_render.py | 12 ++++++++++++ tools/run_mongo.ps1 | 2 +- 4 files changed, 31 insertions(+), 3 deletions(-) diff --git a/openpype/hosts/maya/api/lib_renderproducts.py b/openpype/hosts/maya/api/lib_renderproducts.py index 4983109d58..e8e4b9aaef 100644 --- a/openpype/hosts/maya/api/lib_renderproducts.py +++ b/openpype/hosts/maya/api/lib_renderproducts.py @@ -180,6 +180,7 @@ class ARenderProducts: self.layer = layer self.render_instance = render_instance self.multipart = False + self.aov_separator = render_instance.data.get("aovSeparator", "_") # Initialize self.layer_data = self._get_layer_data() @@ -676,7 +677,7 @@ class RenderProductsVray(ARenderProducts): """ prefix = super(RenderProductsVray, self).get_renderer_prefix() - prefix = "{}.".format(prefix) + prefix = "{}{}".format(prefix, self.aov_separator) return prefix def _get_layer_data(self): diff --git a/openpype/hosts/maya/plugins/create/create_render.py b/openpype/hosts/maya/plugins/create/create_render.py index e936406710..85919d1166 100644 --- a/openpype/hosts/maya/plugins/create/create_render.py +++ b/openpype/hosts/maya/plugins/create/create_render.py @@ -21,6 +21,7 @@ from openpype.api import ( from openpype.modules import ModulesManager from avalon.api import Session +from avalon.api import CreatorError class CreateRender(plugin.Creator): @@ -476,7 +477,21 @@ class CreateRender(plugin.Creator): # set separator # set it in vray menu - cmds.optionMenuGrp("vrayRenderElementSeparator", v=self.aov_separator) + if cmds.optionMenuGrp("vrayRenderElementSeparator", exists=True, + q=True): + items = cmds.optionMenuGrp( + "vrayRenderElementSeparator", ill=True, query=True) + + separators = [cmds.menuItem(i, label=True, query=True) for i in items] # noqa: E501 + try: + sep_idx = separators.index(self.aov_separator) + except ValueError: + raise CreatorError( + "AOV character {} not in {}".format( + self.aov_separator, separators)) + + cmds.optionMenuGrp( + "vrayRenderElementSeparator", sl=sep_idx + 1, edit=True) cmds.setAttr( "{}.fileNameRenderElementSeparator".format(node), self.aov_separator, diff --git a/openpype/hosts/maya/plugins/publish/collect_render.py b/openpype/hosts/maya/plugins/publish/collect_render.py index 2f63fbc39b..c67fc9e50b 100644 --- a/openpype/hosts/maya/plugins/publish/collect_render.py +++ b/openpype/hosts/maya/plugins/publish/collect_render.py @@ -172,6 +172,18 @@ class CollectMayaRender(pyblish.api.ContextPlugin): if renderer.startswith("renderman"): renderer = "renderman" + try: + aov_separator = self._aov_chars[( + context.data["project_settings"] + ["create"] + ["CreateRender"] + ["aov_separator"] + )] + except KeyError: + aov_separator = "_" + + render_instance.data["aovSeparator"] = aov_separator + # return all expected files for all cameras and aovs in given # frame range layer_render_products = get_layer_render_products( diff --git a/tools/run_mongo.ps1 b/tools/run_mongo.ps1 index 32f6cfed17..f6fa37207d 100644 --- a/tools/run_mongo.ps1 +++ b/tools/run_mongo.ps1 @@ -113,7 +113,7 @@ $port = 2707 # path to database $dbpath = (Get-Item $openpype_root).parent.FullName + "\mongo_db_data" -$preferred_version = "4.0" +$preferred_version = "5.0" $mongoPath = Find-Mongo $preferred_version Write-Host ">>> " -NoNewLine -ForegroundColor Green