すあまの備忘録

誰得内容の自分のための非営利目的備忘録ブログ(筆者がわかっても内緒にしてください)

自分のHoudiniシーン整理方法(随時更新)

2020 01/06更新

自分への覚書、暫定であり随時更新して調整していく予定

現状Mantraでレンダリングする場合はちょっと無駄が多い気がする


キャッシュのファイル名

f:id:godofsuama:20200106035310p:plain

  • Obj名をキャッシュのフォルダやファイル名に含ませる

どのObjectのどのキャッシュなのかを辿りやすくするため

  • 中間キャッシュはPrefixをつける

レンダリングに必要かどうかを判断しやすくする為

整理時に消しやすい為


ノード整理

f:id:godofsuama:20200107034516p:plain

  • 色分けする

赤:見た目で調整する必要があるかもしれないノード pscaleやN, up, vなどの見た目や動きに影響するアトリビュート操作系

緑:アニメーションしているノード 流用時にカメラからの見た目で調整する必要がある為

  • 先頭を大文字にする

IN:別階層から読み込んでいるノード(主にObject Merge)

OUT:ExpressionやROPへ渡すノード(主にNull)


Object階層

f:id:godofsuama:20200106032013p:plain

  • 作業に必須なノードをObject階層でも繋いでおく

ノードをコピペした際のコピー漏れを防ぐ

下流が動かなくなってしまう場合のみ繋ぐ(Maya等外部からのガイドなど)

  • Obj階層で名前をきちんとつける

差し替えや依存関係をわかりやすくするため


キャラやBGなどの外部データ (Alembic)整理

f:id:godofsuama:20200106032559p:plain

  • シーンスケールを合わせる

Houdiniの基本は 1Unit = 1m (ただし、あまりにも値が扱いにくい場合は調整する)

Object階層でスケールをかけるとObject MergeやFBXがややこしくなる為、注意

  • 重い場合はBgeoなどに一度変換する

外部データ(Alembic等)がサーバーにある場合などは、ローカルにBgeoで保存する

外部データ自体をローカルにコピーして読み込み直してしまうと、他人がシーンを開いたときにややこしくなる

ローカルのディレクトリパスを作成する場合はグローバル変数で作成し、サーバーと同じ階層になるようにする

  • 必要なGroupを作る

可能な限りプロシージャルな選択方法にする

Alembicの場合は以下のオプションから選択するのが楽

f:id:godofsuama:20200106033912p:plain

  • Obj階層からキャッシュの差し替えが可能なようにする

ぱっと見の視認性を上げるため、バージョンなどの書き換え, 確認が容易なため

opname("")などを使用してObject階層の名称をキャッシュに使用することで、データがなければエラーを吐くようにする

下流で読み込む場合はObject MergeのObject1に../../`opinput("..",0)`/OUTで読み込める

下流で読み込む際はObject MergeのTransformをInto This Objectに変更するのも忘れないように


外部ソフトにデータを戻す場合

  • Houdini内でTransformノードを使用して元の大きさに戻す

シェーダーで不具合が起きたりするため

過去記事も参照 godofsuama.hatenablog.com


Pyro等、Volumeデータ設定と整理

f:id:godofsuama:20200106035927p:plain
Sparse Volumeの際は整理方法が違うので注意

  • DOPの入力を固定する

Input 0:エミッター

Input 1:Bounding Box

Input 2:Collision

Input 3:Additional Force / Velocity

固定することで迷いを減らし、流用しやすくする為

  • DOP Importを使用する

f:id:godofsuama:20200106042417p:plain

f:id:godofsuama:20200106042610p:plain

DOP Import Fieldと違いDOP Networkにコネクトすることができる為、 上流にノードを接続した際にノードがずれづらい

不要なDOP ImportをBypassすれば見ただけで使用していないのがわかる

  • DOPから直接VDB化しない

    f:id:godofsuama:20200106042907p:plain

後処理の調整を複数行うことがある為

Volume系ノードでVDBに対応していないものもある

自分の環境ではシムが重いとVDB化が失敗することがある

  • VDBのファイルサイズを減らす

Houdini 18以降であればある程度の処理が、Pyro Post Processノード一つでできるようになった f:id:godofsuama:20200106043421p:plain

その他は過去記事を参照 godofsuama.hatenablog.com

  • DOP内の値の変更を減らす

キーフレームの調整など、SOPで可能なことは可能な限りSOPで行う

Smoke ObjectのSizeやCenterなどもExpressionで読む f:id:godofsuama:20200106040951p:plain

  • エミッターの動きが速い場合は以下の設定も追加でしておく

Smoke ObjectのSolve On Creation Frameにチェックを入れる

Delay Framesを設定し、リサイズするフレームを遅らせる

Padding, Subtract Thresholdの値を大きくする(Help)

Gas Resize Fluid Dynamicの設定をする

f:id:godofsuama:20200106041328p:plain
どんな時でもMax Boundsはなるべく設定した方が良い