mirror of
https://github.com/ynput/ayon-core.git
synced 2026-01-01 08:24:53 +01:00
Merge pull request #3981 from pypeclub/bugfix/OP-4208_invalid-prefix-in-multipart-exrs
Maya: remove invalid prefix token for non-multipart outputs
This commit is contained in:
commit
41e7382a3a
2 changed files with 22 additions and 12 deletions
|
|
@ -260,20 +260,20 @@ class ARenderProducts:
|
||||||
|
|
||||||
"""
|
"""
|
||||||
try:
|
try:
|
||||||
file_prefix_attr = IMAGE_PREFIXES[self.renderer]
|
prefix_attr = IMAGE_PREFIXES[self.renderer]
|
||||||
except KeyError:
|
except KeyError:
|
||||||
raise UnsupportedRendererException(
|
raise UnsupportedRendererException(
|
||||||
"Unsupported renderer {}".format(self.renderer)
|
"Unsupported renderer {}".format(self.renderer)
|
||||||
)
|
)
|
||||||
|
|
||||||
file_prefix = self._get_attr(file_prefix_attr)
|
prefix = self._get_attr(prefix_attr)
|
||||||
|
|
||||||
if not file_prefix:
|
if not prefix:
|
||||||
# Fall back to scene name by default
|
# Fall back to scene name by default
|
||||||
log.debug("Image prefix not set, using <Scene>")
|
log.debug("Image prefix not set, using <Scene>")
|
||||||
file_prefix = "<Scene>"
|
file_prefix = "<Scene>"
|
||||||
|
|
||||||
return file_prefix
|
return prefix
|
||||||
|
|
||||||
def get_render_attribute(self, attribute):
|
def get_render_attribute(self, attribute):
|
||||||
"""Get attribute from render options.
|
"""Get attribute from render options.
|
||||||
|
|
@ -730,13 +730,16 @@ class RenderProductsVray(ARenderProducts):
|
||||||
"""Get image prefix for V-Ray.
|
"""Get image prefix for V-Ray.
|
||||||
|
|
||||||
This overrides :func:`ARenderProducts.get_renderer_prefix()` as
|
This overrides :func:`ARenderProducts.get_renderer_prefix()` as
|
||||||
we must add `<aov>` token manually.
|
we must add `<aov>` token manually. This is done only for
|
||||||
|
non-multipart outputs, where `<aov>` token doesn't make sense.
|
||||||
|
|
||||||
See also:
|
See also:
|
||||||
:func:`ARenderProducts.get_renderer_prefix()`
|
:func:`ARenderProducts.get_renderer_prefix()`
|
||||||
|
|
||||||
"""
|
"""
|
||||||
prefix = super(RenderProductsVray, self).get_renderer_prefix()
|
prefix = super(RenderProductsVray, self).get_renderer_prefix()
|
||||||
|
if self.multipart:
|
||||||
|
return prefix
|
||||||
aov_separator = self._get_aov_separator()
|
aov_separator = self._get_aov_separator()
|
||||||
prefix = "{}{}<aov>".format(prefix, aov_separator)
|
prefix = "{}{}<aov>".format(prefix, aov_separator)
|
||||||
return prefix
|
return prefix
|
||||||
|
|
@ -974,15 +977,18 @@ class RenderProductsRedshift(ARenderProducts):
|
||||||
"""Get image prefix for Redshift.
|
"""Get image prefix for Redshift.
|
||||||
|
|
||||||
This overrides :func:`ARenderProducts.get_renderer_prefix()` as
|
This overrides :func:`ARenderProducts.get_renderer_prefix()` as
|
||||||
we must add `<aov>` token manually.
|
we must add `<aov>` token manually. This is done only for
|
||||||
|
non-multipart outputs, where `<aov>` token doesn't make sense.
|
||||||
|
|
||||||
See also:
|
See also:
|
||||||
:func:`ARenderProducts.get_renderer_prefix()`
|
:func:`ARenderProducts.get_renderer_prefix()`
|
||||||
|
|
||||||
"""
|
"""
|
||||||
file_prefix = super(RenderProductsRedshift, self).get_renderer_prefix()
|
prefix = super(RenderProductsRedshift, self).get_renderer_prefix()
|
||||||
separator = self.extract_separator(file_prefix)
|
if self.multipart:
|
||||||
prefix = "{}{}<aov>".format(file_prefix, separator or "_")
|
return prefix
|
||||||
|
separator = self.extract_separator(prefix)
|
||||||
|
prefix = "{}{}<aov>".format(prefix, separator or "_")
|
||||||
return prefix
|
return prefix
|
||||||
|
|
||||||
def get_render_products(self):
|
def get_render_products(self):
|
||||||
|
|
|
||||||
|
|
@ -32,6 +32,9 @@ from maya import cmds
|
||||||
|
|
||||||
from openpype.pipeline import legacy_io
|
from openpype.pipeline import legacy_io
|
||||||
|
|
||||||
|
from openpype.hosts.maya.api.lib_rendersettings import RenderSettings
|
||||||
|
from openpype.hosts.maya.api.lib import get_attr_in_layer
|
||||||
|
|
||||||
from openpype_modules.deadline import abstract_submit_deadline
|
from openpype_modules.deadline import abstract_submit_deadline
|
||||||
from openpype_modules.deadline.abstract_submit_deadline import DeadlineJobInfo
|
from openpype_modules.deadline.abstract_submit_deadline import DeadlineJobInfo
|
||||||
|
|
||||||
|
|
@ -498,9 +501,10 @@ class MayaSubmitDeadline(abstract_submit_deadline.AbstractSubmitDeadline):
|
||||||
job_info.AssetDependency += self.scene_path
|
job_info.AssetDependency += self.scene_path
|
||||||
|
|
||||||
# Get layer prefix
|
# Get layer prefix
|
||||||
render_products = self._instance.data["renderProducts"]
|
renderlayer = self._instance.data["setMembers"]
|
||||||
layer_metadata = render_products.layer_data
|
renderer = self._instance.data["renderer"]
|
||||||
layer_prefix = layer_metadata.filePrefix
|
layer_prefix_attr = RenderSettings.get_image_prefix_attr(renderer)
|
||||||
|
layer_prefix = get_attr_in_layer(layer_prefix_attr, layer=renderlayer)
|
||||||
|
|
||||||
plugin_info = copy.deepcopy(self.plugin_info)
|
plugin_info = copy.deepcopy(self.plugin_info)
|
||||||
plugin_info.update({
|
plugin_info.update({
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue