この記事では、LOPsにおける、ライティングの方法について解説します。
ここではライティング部門としてレイアウトUSDファイルとFX USDファイルを読み込み、ライティングを行います。ここで注意すべきこととして、実際の開発現場ではFXレイヤーもレイアウトレイヤーも、複数存在することです。今回は必要とするUSDファイルは手動で指定していきますが、プロダクションのパイプラインではこれらは自動化される可能性があります。
レイアウトとFXのUSDファイルの読み込み
最初にレイアウトとFXのUSDファイルを読み込みます。
- Houdiniで新規シーンを作成します。
- DesktopをSolarisに変更します。
DesktopにSolarisがない場合は、Scene Graph Treeペインを作成してください。 - /stage 階層に移動します。
- Sublayer LOPを作成し、名前をlayout に変更します。
Fileを$HIP/tutorials/shot004_layout_v001.usda に設定します。 - 作成したlayoutノードを複製し、layoutノードに接続します。名前をfx に変更します。
Fileを$HIP/tutorials/shot004/fx/fx_v001.usda に設定します。
タイムスライダを動かすことで、FXレイヤーを含むシーンが表示され、fxノードをバイパスすると、アニメーションが消えてlayoutのシーンが表示されます。
FXレイヤーをミュートする
Scene Graph Layersを確認します。一番右にあるMute in Veiwer列のチェックボックスを利用して、レイヤーを一時的に無効にすることが可能です。
今回のFXはそれほど重くはありませんので、ミュートせずに作業を行っていきます。
ライティング
デフォルトライトをミュートにする
まず、レイアウト部門で作成した仮のライトをミュートにします。
- Scene Graph Treeより、ミュートにするライトのV列のアイコンをクリックします。(下図①)
また、ここでライトのプリセットを保存することも可能です。(下図②)
こちらは左から以下のようなボタンとなります。
・Tree expansion: ビューワーに現在のツリーを表示させる方法の設定
・Viewport overrides: 列の切り替え方法の設定
・Load Masks: ミュートなどの「ロードマスク」の設定
ここで紹介したミュート機能は、このHoudiniセッションにのみで利用できるローカルなものとなっております。 これらのミュートの状態をUSDファイルとして保存する場合は、[Load Masks]ドロップダウンより、[Create Configure Stage Node from Load Mask]を選択することで、ステージLOPを構成できます。
レイヤーブレイク
新しいライトを作成する前に、LOPにレイヤーブレイクすることを伝える必要があります。 新しいライトをライティング USDファイルに書き出すだけです。 レイヤーブレイクについてはこちらの記事をご参照下さい。
- fxノードの下にLayer Break LOP を作成します。
シーケンスライトの剪定
Scene Graph Treeでライトの可視性を変更している場合、 これも現在のHoudiniセッションにのみローカルなものであるため、シーンがパブリッシュなUSDファイルから構築されている場合、シーンのライティングに寄与しないようにシーケンスライティングを削除する必要があります。
- Layer Break LOPの下にPrune LOP を作成します。
Primitive Patternを/lights/Layout/* に設定します。
MethodはデフォルトとなるMake Invisibleのままにします。以前のチュートリアルで記載の通り、Houdiniのライトと異なり、USDのライトは非表示と非アクティブは同意となります。
ショットライティングの作成
- 最初のライトを配置したい位置に、ビューポートを移動します。
- Cameras and Lightingシェルフより、Ctrl+左クリックでいずれかのライトを作成します。これによりビューポートと同一の位置でカメラを作成できます。
Primitive Pathを/lights/lighting/$OS に設定します。 - 以上を作成したいライトの数だけ繰り返します。
テストレンダリング
ビューポートのドロップダウンメニューよりKarma を選択します。
Light Mixerを使用する
ライトミキサーを使用して、ライトの設定にインタラクティブにアクセスできるようにします。
USDファイルを書き出す
これで、ライティングのUSDファイルを書き出す準備ができました。 ここがパイプラインの最後になる場合は必要ないかもしれませんが、一部のパイプラインは、最新のシーンをクリーンな状態で確保するために、レンダリング時にゼロからシーンを再構築する場合があります。 この場合、ライトをUSDファイルとしてディスクに書き込む必要があります。
- Light Mixer LOPの下にUSD ROP LOPを作成します。
Output Fileを$HIP/tutorials/shot004_lighting_v001.usd に設定します。 - [Save to Disc]ボタンをクリックしてライティングレイヤーをディスクに保存します。ライト自体をアニメーションさせない限り、frame rangeの設定は必要ありません。
- 最終的なノードツリーは以下のようになります。
- Houdiniのシーンを保存します。
ライティングレイヤーを読み戻す
最後に確認のためにライティングレイヤーを再度LOPネットワークに読み直します。
Houdiniの新規シーンを立ち上げ、以下のようにSublayer LOPを用いてレイアウト、FX、ライティングの各レイヤーを読み込むと、ライトが表示されます。
以上でLOPsチュートリアルは終了となります。