1

Maya で最近レンダリングされたプレビュー イメージで動作するプラグインを作成しようとしています。主に Houdini、Nuke、および C4D に関するツールとパイプラインを作成しているため、Maya を移動するのはやや困難でした。

現在アクティブなレンダリング設定の完全な出力パスを見つける必要があります。ほとんどの場合、アーティストは VRay を使用してレンダリングしますが、ソフトウェアと mentalray を使用するアーティストもいるため、現在アクティブなレイヤーへのパスを単純に呼び出すことができない場合を除き、最初にどちらを使用しているかを把握し、次にパスを見つける必要があります。 .

これまでのところ、レンダリング設定全体で他のほとんどの値を見つけて使用することができますが、デフォルト レイヤー以外でレンダリングしようとしている画像への完全な出力パスが回避されました。

その値を保持する変数を見つけることができなかったので、プロジェクトの現在の画像ディレクトリへのパスや「ファイル名プレフィックス」など、見つけたものからパスを作成しようとしました。そこで、アーティストが出力用のレンダリング変数を呼び出すという問題に遭遇しました。シーン、レイヤーなど。他の方法でそれらのいくつかを見つける方法を知っているので、必要に応じて翻訳できるかもしれませんが、それらの値を呼び出す方法が必要だと感じており、単にそれを知りません.

TL;DR:

renderSettings(fullpath=True) のような、現在アクティブなレンダー レイヤーのフル パスを見つける方法を探していますが、実際には a.

また

レンダー変数を呼び出す方法を探しているので、「ファイル名プレフィックス」が Scene/Layer/Scene であることがわかったら、変換してフル パスを見つけることができます。

ティア!

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 の Web サイトには mel でそれを理解するためのトリックがあり、Python に簡単に変換できます。

于 2013-10-02T20:52:50.663 に答える