1

我正在尝试编写一个适用于 Maya 中最近渲染的预览图像的插件。我主要围绕 Houdini、Nuke 和 C4D 编写工具和管道,所以在 Maya 中移动有点困难。

我需要能够找到当前活动渲染设置的完整输出路径。在大多数情况下,我们的艺术家使用 VRay 进行渲染,但有些确实使用软件和 mentalray,所以我需要弄清楚我首先使用的是哪个,然后找到路径,除非我能够简单地调用当前活动层的路径.

到目前为止,我能够在整个渲染设置中找到并使用大多数其他值,但是我将为除默认图层之外的任何内容渲染的图像的完整输出路径避开了我。

由于我无法找到包含该值的变量,因此我一直在尝试根据我能够找到的内容构建路径,例如项目当前图像目录的路径和“文件名前缀”。在那里,我遇到了艺术家为他们的输出调用渲染变量的问题;场景、图层等。我知道如何通过其他方法找到其中的一些,所以如果需要我可以翻译,但我觉得必须有一种方法来调用它们的值,我根本不知道。

TL;博士:

寻找一种方法来找到当前活动渲染层的完整路径,类似于 renderSettings(fullpath=True) 但实际上返回 a.

或者

寻找一种调用渲染变量的方法,所以一旦我发现“文件名前缀”是场景/图层/场景,我就可以翻译以找到完整路径。

蒂亚!

4

1 回答 1

-1

Maya 通常将图像存放到当前工作空间的图像目录中。您可以使用以下命令在 python 中找到项目树的根目录和图像目录:

 import os
 import maya.cmds as cmds
 workspace_root = cmds.workspace(q=True, dir=True)
 images_dir = cmds.workspace("image", q=True, fre=True).strip()
 file_name = cmds.getAttr('defaultRenderGlobals.imageFilePrefix') or       os.path.basename(cmds.file(q=True, sn=True)) or "untitled"
 # defaultRenderGlobals is a node that exists in the scene which holds the render settings
 # you get the prefix with a standard getAttr

 file_location = os.path.join(workspace_root, images_dir, file_name).replace("\\", "/")

导出文件扩展名有点棘手,但Brian Ewert 的网站有在 mel 中计算出来的技巧,很容易翻译成 python。

于 2013-10-02T20:52:50.663 回答