このオブジェクトを使用して、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()
メソッドからでもアクセス可能)を指しています。
この編集ターゲットは変更せず、ステージ上の他のレイヤーを修正しないでください。