【问题标题】:Finding the full output path for a VRay render setting in Maya using Python?使用 Python 在 Maya 中查找 VRay 渲染设置的完整输出路径?
【发布时间】:2013-10-09 06:17:30
【问题描述】:

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

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

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

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

TL;DR:

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

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

TIA!

【问题讨论】:

    标签: python render layer maya


    【解决方案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's website 有在 mel 中计算出来的诀窍,很容易翻译成 python。

    【讨论】:

    • 感谢您的回复。这些是我到目前为止能够得出的值。棘手的部分是找出当艺术家使用以下内容时我们所在的图层:$MayaProj/images/SceneName/LayerName/SceneName.Frame.ext
    • 场景中的图层是renderLayer节点;你可以用 cmds.ls(type='renderLayer') 得到那些。如果您编写自己的前端并向艺术家询问您需要的信息,然后确保以您想要的方式手动设置渲染,这对您来说可能会更容易——很难从渲染命令中推断出来
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-11
    • 1970-01-01
    • 1970-01-01
    • 2016-03-04
    • 2020-12-14
    • 2015-07-27
    相关资源
    最近更新 更多