ジャンプ先: 概要. 戻り値. キーワード. 関連. フラグ. Python 例.
prepareRender([defaultTraversalSet=string], [deregister=string], [invokePostRender=boolean], [invokePostRenderFrame=boolean], [invokePostRenderLayer=boolean], [invokePreRender=boolean], [invokePreRenderFrame=boolean], [invokePreRenderLayer=boolean], [invokeSettingsUI=boolean], [label=string], [listTraversalSets=boolean], [postRender=script], [postRenderFrame=script], [postRenderLayer=script], [preRender=script], [preRenderFrame=script], [preRenderLayer=script], [restore=boolean], [saveAssemblyConfig=boolean], [settingsUI=script], [setup=boolean], [traversalSet=string], [traversalSetInit=script])
注: オブジェクトの名前と引数を表す文字列は、カンマで区切る必要があります。これはシノプシスに示されていません。
prepareRender は、取り消し可能、照会可能、および編集可能です。
このコマンドは、レンダー縦断を登録、管理および呼び出すために使用されます。レンダー縦断は、シーンを構成してレンダリングの準備をするために使用されます。
このコマンドは、シーン アセンブリ ノードに対して特別なサポートを提供します。シーン アセンブリ ノードをレンダリングするために、レンダリング縦断はシーン内の各アセンブリ ノードのために適切なリプリゼンテーションをアクティブにすることができます。レンダリングが完了すると、このコマンドはそれに応じて各アセンブリ上でレンダリング前にアクティブだったリプリゼンテーションを復元することができます。レンダー縦断は縦断のセットにグループ化されています。レンダー縦断セットには、以下に示す 1 つまたは複数のレンダリングの手順に対するコールバック、またはレンダー縦断が、粒度レベルの低い順に含まれています。レンダー縦断コールバックは、MEL または Python の任意のスクリプトで、レンダリング目的で Maya シーンをトランスフォームすることができます。
- preRender
- 縦断は、レンダリングの実行前に、レンダーごとに一度実行されます。
- postRender
- 縦断は、すべてのレンダリングの実行後に、レンダーごとに一度実行されます。
- preRenderLayer
- 縦断は、各レンダー レイヤのレンダリング前に実行されます。
- postRenderLayer
- 縦断は、各レンダー レイヤのレンダリング後に実行されます。
- preRenderFrame
- 縦断は、各フレームのレンダリング前に実行されます。
- postRenderFrame
- 縦断は、各フレームのレンダリング後に実行されます。
レンダー ビューまたはバッチ レンダー中に、Maya は同じ縦断セット、既定の縦断セットからレンダー縦断を実行します。縦断セットには名前を付けることができるので、このコマンドに複数の縦断セットを登録し、既定のレンダー縦断セットをこれらの登録された任意の縦断セットに切り替えることができます。既定の縦断セットを変更する場合、異なるレンダー縦断コールバック(preRender、preRenderLayer、preRenderFrame、postRender、postRenderLayer、postRenderFrame)が 1 つの単位として切り替えられます。
レンダー時に、ソフトウェアのレンダリング コードは、既定の縦断セットのコールバックを呼び出します。prepareRenderスクリプト機能によって、複数のレンダリング準備スクリプトを開発することができます。これにはプラグインの使用も含まれ、単一の実装に制約されない拡張性を提供します。
特殊な縦断セットに「null」縦断セットがあります。これは最初の既定の縦断セットで、登録解除することはできません。実行する機能はなく、アセンブリ ノードのアクティブ リプリゼンテーション設定の保存や復元を行いません。アセンブリノードの WYSIWYG (What You See Is What You Get)レンダリングを提供し、レンダリング対象の別のリプリゼンテーションに切り替わりません。
レンダー縦断は、このコマンドの作成モードを使用して、Maya によって呼び出されます。これは Maya のレンダリング インフラストラクチャによって行われるもので、新しいレンダー ビューまたはバッチ レンダー コードを開発しない限り必要はありません。このコマンドのほとんどの用途は、単純に編集モードを使用してレンダー縦断をレンダー縦断セットに登録するか、または照会モードを使用してレンダー縦断セット内のレンダー縦断の名前を照会することです。
レンダー縦断とレンダー MEL スクリプト
レンダー縦断は、その目的において、ユーザ指定のプリ(およびポスト)レンダー、プリ(およびポスト)レンダー レイヤ、およびプリ(およびポスト)レンダー フレーム MEL スクリプト機能に似ています。ユーザ MEL スクリプトとの違いは、prepareRender は、ユーザの MEL スクリプトに加え、またそれを別の機能に置き換えることなく、複数のレンダー縦断セットを登録し、それらを切り替え、また MEL と Python の両方をサポートするということです。MEL レンダー スクリプトはレンダー縦断の範囲の内部で実行されます。すなわち、preRender 縦断はプリレンダー MEL スクリプトの前に実行され、postRender 縦断はポストレンダー MEL スクリプトの後に実行されます。preRenderLayer 縦断はプリレンダー レイヤ MEL スクリプトの前に実行され、postRenderLayer 縦断はポストレンダー レイヤ MEL スクリプトの後に実行されます。最後に、preRenderFrame 縦断はプリレンダー フレーム MEL スクリプトの前に実行され、postRenderFrame 縦断はポストレンダー フレーム MEL スクリプトの後に実行されます。
状態の保存と復元
prepareRender コマンドは、シーン内のアセンブリ ノードのアクティブ リプリゼンテーションの保存と復元をサポートします。saveAssemblyConfig フラグは、レンダー縦断セットが、レンダリングの開始前にアセンブリ ノードのアクティブ リプリゼンテーションを保存し、レンダリングの終了後に復元することを必要とすることを示すために使用します。
レンダー縦断がアセンブリ ノードのアクティブ リプリゼンテーション変更以外の方法でシーンを変更する場合、シーンを以前の状態に復元するのは、そのレンダー縦断の責任です。この場合は通常 postRender、postRenderLayer、および postRenderFrame 縦断を使用します。
Maya は、バッチ レンダーの完了時に prepareRender -restore コマンドを呼び出しません。バッチ レンダリングはレンダリングが終了すると破棄されるシーンのコピーに対して実行されるためです。レンダー縦断のインプリメンタは、同じ最適化を実装するために、自分がバッチ モードで実行しているかどうかを確認する必要があります。
なし
照会モードでは、戻り値のタイプは照会されたフラグに基づきます。
render, assembly
assembly
defaultTraversalSet, deregister, invokePostRender, invokePostRenderFrame, invokePostRenderLayer, invokePreRender, invokePreRenderFrame, invokePreRenderLayer, invokeSettingsUI, label, listTraversalSets, postRender, postRenderFrame, postRenderLayer, preRender, preRenderFrame, preRenderLayer, restore, saveAssemblyConfig, settingsUI, setup, traversalSet, traversalSetInit
フラグはコマンドの作成モードで表示できます
|
フラグはコマンドの編集モードで表示できます
|
フラグはコマンドの照会モードで表示できます
|
フラグに複数の引数を指定し、タプルまたはリストとして渡すことができます。
|
import maya.cmds as cmds
# Query what the default render traversal set is.
cmds.prepareRender(query=True, defaultTraversalSet=True)
# Set the render traversal set to 'MyPrepareRender'.
cmd.prepareRender(edit=True, defaultTraversalSet='MyPrepareRender')
# Set the preRender traversal to the adskPrepareRender.preRender function,
# for the default render traversal set.
cmd.prepareRender(edit=True, preRender=adskPrepareRender.preRender)
# Set the default render traversal set to require saving the assembly node
# configuration before render, and restore it once rendering completes.
cmd.prepareRender(edit=True, saveAssemblyConfig=True)
# Set the label of traversal set 'MyPrepareRender' to be 'Custom Render'.
cmd.prepareRender(edit=True, label='Custom Render', traversalSet='MyPrepareRender')