このオブジェクトを使用して、Pythonでwith
ブロックを定義することができます。
このwith
ブロックによって、明確に定義された寿命が保証されます。
このブロック内では、このオブジェクトは編集可能なUSDレイヤにアクセスすることができます。
このブロックが終了して、このオブジェクトが破棄されると、USDレイヤに加えた変更がLOPネットワークに保存され、
そのLOPネットワーク内のノードを示したビューアが適切に更新されます。
このオブジェクトは、hou.LopNetwork.editablePostLayerコールから返されます。
ポストレイヤは、Solaris内の概念であり、すべてのLOPノードの合成ステージのセッションレイヤにUSDレイヤを追加することを許容します。
ポストレイヤは、LOPノードクックプロセス外で有効なので、そのレイヤの内容はどのLOPノードのオペレーションにも影響を与えません。
例えば、ポストレイヤ内で定義されたプリミティブは、どのLOPノードからも見ることができません。
しかし、LOPノードのステージへのアクセスの要求には、(hou.LopNode.stageのapply_post_layers
パラメータを使用するか、または、Scene Viewerでポストレイヤを無効にすることで)ポストレイヤを明示的に除外するように要求しない限り、そのポストレイヤの内容が含まれます。
普段では、ポストレイヤの内容をデバッグする場合にのみポストレイヤの無効化が必要になります。
ポストレイヤはセッションレイヤなので、そのオピニオンはLOPノードで設定したオピニオンよりも強いです(これは、ステージのルートレイヤ上にオピニオンを作成します)。
Viewport Overridesとは異なり、ポストレイヤの内容は、USD ROPや
USD Render ROPでも保存されるので、
最終レンダリングに影響します。
ポストレイヤの使用例を挙げると、LOPネットワークのどこでも利用できるように(Render Settingsなどの)標準プリミティブを作成するのがあります。 他の使用例を挙げると、すぐにレンダリングテストできるようにすべてのマテリアルを無効にする最終パスをシーングラフデータに適用するというのがあります。 しかし、ポストレイヤはPythonコードでしか編集できないので、ポオスレイヤをアーティストのワークフローに統合するとなれば、常に何かしらの独自ユーザインターフェースが必要になりますが、そのインターフェースは、特定のポストレイヤのオン/オフをするチェックボックスといった単純なものでも良いでしょう。
メソッド ¶
layer()
→ pxr.Sdf.Layer
pxr.Sdf
メソッドで修正可能なpxr.Sdf.Layer
オブジェクトを返します。
編集のパフォーマンスを最大限に上げたいのであれば、このレイヤの修正周辺にpxr.Sdf.ChangeBlock
オブジェクトを作成します。
これによって、そのChangeBlockが削除されない限り、再合成が遅延されます。
stage()
→ pxr.Usd.Stage
pxr.Usd
メソッドで修正可能なpxr.Usd.Stage
オブジェクトを返します。
このステージの編集ターゲットはすでにリクエストされたポストレイヤ(このオブジェクトのlayer()
メソッドからでもアクセス可能)を指しています。
この編集ターゲットは変更せず、ステージ上の他のレイヤを修正しないでください。