正直整理の仕方はあまり賢いとは言えないと思う。
USD自体はパイプラインや分業ありきだが、一人で使っていても便利な部分があるので
なんとなくこういう感じなのねーというのを把握するためのメモ
はじめに
Sublayerって実際どういう感じなの?とかどう運用するのか?の一例として。
今回は各工程ごとに1つのUSDファイルだが
Light、Camera、Geoをそれぞれ別のUSDファイルにしたりしてもっと小分けにしたほうがそれぞれ個別に処理できていいと思う。
ざっくりデータを作っての紹介
HIPファイル
sublayer_gd.hiplc - Google ドライブ
※岩のアセットは含まれていません。
USDの拡張子について
- usd:ASCIIまたはバイナリのどっちでもOK(自動判定)
- usda:ASCII
- usdc:バイナリ
- usdz:USDファイルとテクスチャなどをzipでまとめたもの
通常の運用であれば、ジオメトリ等のキャッシュは.usdcで運用し
シーンの構築データやレンダーシーンのUSDファイルは.usdaの運用が良さそう。
.usdは中身がどちらかわからなくなるので明示的にするためにも使用を控えるのが良さそう。
作例
Asset
素晴らしい先人に感謝
Layout LOP & Layout Asset Gallery | Fianna Wong | Houdini 19 HIVE - YouTube
Building Assets for the Asset Gallery | Houdini 19 - YouTube
Getting Started with the Asset Gallery | Houdini 19 - YouTube
Layout
先程のAssetをAsset Galaryに登録してLayoutで適当に配置
Animation
アニメーションとしているがベースのレイアウトとショットごとのレイアウトのほうが近いかも。
LayoutのUSDを受け取り作業開始。
一度分岐して最後にまたSublayerで結合している。
画像の右側がこの工程での編集・追加項目になり、
Layer Break〜Configure Layerまでがこの工程の処理としてUSDに書き出される。
Effect
前工程のUSDを読み込んで作業を始める。
それぞれのUSDファイルが各工程の編集・追加項目だけはいっているのでいらない工程などをオフにしたりもできる。
前工程と同様にLayer Break〜Configure Layer内がEffectの工程として書き出される。
炎を追加して更に不要な背景を削除している。
Lighting
前工程を読み込んでKey Lightを足した想定
前処理が複雑でいろいろなデータを内包していたとしてもシンプルな構成で処理できる。
覚えておくと良さそうなノード
データ整理・読み込みなど
Layer Break
このノードより上流をUSD書き出し時に含めない
https://www.sidefx.com/ja/docs/houdini/nodes/lop/layerbreak.html
Configure Layer
レイヤーのメタデータを編集する〜
Layer BreakやDefault Prim等、接続部分のレイヤーの定義を設定して整理できる。
コメントなどもつけられるので後工程に渡すときとかにも。
https://www.sidefx.com/ja/docs/houdini/nodes/lop/configurelayer.html
Graft Stage
整理に使いやすいので例で多用しているが使用には気をつけたほうが良いんじゃないかと思っているノード
第二入力を第一入力の子供にすることができる。
https://www.sidefx.com/ja/docs/houdini/nodes/lop/graftstages.html
https://www.sidefx.com/ja/docs/houdini/nodes/lop/graftbranches.html
Primitive
空っぽの階層を作れる。
階層構造や整理の起点となる部分を作りたいときに便利。
https://www.sidefx.com/ja/docs/houdini/nodes/lop/primitive.html
Sublayer
Sublayer Typeの設定次第で、第二入力もしくはファイルから第一入力を上書きすることができる。
階層が同じものを上書きし、第一入力にないものはマージされる。
https://www.sidefx.com/ja/docs/houdini/nodes/lop/sublayer.html
Reference
Reference Typeの設定次第で、Reference/PayloadとしてUSDファイルや第二入力から読み込める。
Payloadに設定すると指示しない限りデータを読み込まないようにも設定することができる。
Prune
SOPでいうBlastノードに近い。ただし削除しているのではなく表示・非表示を切り替えている。
単に不要な場合以外にも特定のレンダーに含めたくないものがあるときなどにも使える。
https://www.sidefx.com/ja/docs/houdini/nodes/lop/prune.html
Merge
SOPのものよりも入力の順番が重要になるので注意
油断しているとエラーや途中の処理がUSDファイルとして書き出されてしまう。
https://www.sidefx.com/ja/docs/houdini/nodes/lop/merge.html
Collection
Houdiniで言うBundle Listを作成できる。
作成したCollectionはマテリアルアサインなどのPrim選択処理に使用することができる。
表記の方法が2種類あり画像のどちらの方法でも指定できる。
「/collections.collection:コレクション名」 が基本の指定方法。 その他、ルートのcollections直下の階層にある場合に限り、 「%コレクション名」 で指定することができる。
どんなCollectionがあるかはScene Graph Treeの下の方で確認できる。
https://www.sidefx.com/ja/docs/houdini/nodes/lop/collection.html
Light
Light Linker
独特のUIでLightの影響を受ける・受けないを一括で管理できる。
https://www.sidefx.com/ja/docs/houdini/nodes/lop/lightlinker.html
Light Mixer
Lightの複数アトリビュートの一括管理ができる。
Lighting工程向けか?
https://www.sidefx.com/ja/docs/houdini/nodes/lop/lightmixer.html
インスタンスや複製
Modify Point Instance
Point Instanceを個別に編集できる。(Point Instanceのまま移動回転表示非表示等)
Point Instancesで「Instanceのパス[Instance番号]」で選択し
デフォルトだと内部のSOPでTransformなどを使用して編集ができる。
Pruneの項目で表示非表示なども設定可能。
https://www.sidefx.com/ja/docs/houdini/nodes/lop/modifypointinstances.html
Extract Insatnce
インスタンスを実体化して実際に編集可能にする。
https://www.sidefx.com/ja/docs/houdini/nodes/lop/extractinstances.html
Duplicate
複製する。デフォルトで何故か2個複製するのでオリジナルと合わせて3個になるので注意。
https://www.sidefx.com/ja/docs/houdini/nodes/lop/duplicate.html
Add Variant / Set Variant
Variant、要はインスタンス用のパターンやバリエーションを作る際に。
cgwikiの偉大なチュートリアルを見るのが早い。
https://www.tokeru.com/cgwiki/index.php?title=HoudiniLops#Instancing_and_variants