てんちょーの技術日誌

自分がつまづいたこととかメモ

【Houdini】SOP→LOP→COP→TOP + OCIO でワークフローを整えてみた

はじめに

Houdini Advent Calendar 2021 の2日目の記事です

qiita.com

1日目は蒸留スイさんの「フェイシャルキャプチャ― in Houdini」でした

qiita.com

最近は毎週日曜20時ごろにHoudiniで作ったものをTwitterにあげています
今回はこのワークフロー周りについて紹介しようとおもいます

サンプルファイルも用意しています
普段はRedShiftを使っていますが、KarmaでもMantraでも使えるかなと
Appearanceでも動作するはず...

drive.google.com

想定読者

SOP / ROP などは記事やブログでよく見かけるのですが、
それ以降の最終的にレンダリングして書き出して静止画/動画にする
までを俯瞰できる物が少ないなと思い、手元の環境が参考になればと書いています

自分も何度も飽きて辞めたり挫折したりでしたが、
ワークフローが整ってきた最近では楽しくなってきました

そのため、下記を想定しています

  • Houdiniを始めたばかり
  • Houdiniで静止画や動画まで書き出したい
  • 環境構築が好きな人

環境

Houdini: 19.0.383 (Indie)
Renderer: RedShift

OS: Windows 10 (21H1 19043.1348)
CPU: Ryzen 3900X
GPU: RTX 2080
メモリ: 64GB

始める前に

こちらのhipファイルをかなり参考にしています
ありがとうございます!

booth.pm

これを元に少しアレンジしつつ、ハマったところを共有できればいいなと思っています

一部作例解説動画もあります
Skeleton SOP からカーブを作る話が面白かったのでリンクを貼っておきます

youtu.be

ポイント

詳細はhipファイルを見てもらうとして、いくつかピックアップして紹介します
hipファイルにはもう少し細かくコメントしてあります

subnetwork内にまとめちゃう

1つの作品 / 1つのhipファイル
というのもよいですが、
個人制作の場合は
複数の作品 / 1つのhipファイル
というスタイルもアリだなと思っています

f:id:shop_0761:20211202100107p:plain

f:id:shop_0761:20211114103013p:plain

意外と作品ごとに管理しやすく、
例えばsubnetworkのノード名を使用して下記のようにパスを分けています

file cache (SOP)
$HIP/geo/`opname("../../")`/$OS.$F4.bgeo.sc

また、こんなふうに手元で並べていくと楽しいです

f:id:shop_0761:20211123173212p:plain

パラメータ変更によるレンダリング結果の比較

機能紹介になってしまいますが、Houdini18.5からSnapShotがあります

www.sidefx.com

デフォルトだとSceneViewの下に折りたたまれているので、△のとこを押すと出るはず

f:id:shop_0761:20211123122329p:plain

f:id:shop_0761:20211123121903p:plain

Revert Network to SnapShot を押すと
各ノードのパラメータまでSnapShot時まで戻ります

f:id:shop_0761:20211123121935p:plain

COP内でのカラースペースの変換

気が変わってNukeやDaVinci Resolveでも
シーンリニアワークフローで作業できるようにしてあります
(実際趣味で環境構築しただけですが...)

ただ普段はHoudini内で完結させたいので、COP内で変換をしています

全体

f:id:shop_0761:20211114105750p:plain

VOPCOP 2 Filter 内部

f:id:shop_0761:20211114105258p:plain

とりあえずsRGBにしています

f:id:shop_0761:20211114105324p:plain

ROP File Output
Convert To Image Format's を切る (自分で色空間の変換をしているため)

f:id:shop_0761:20211114111534p:plain

注意事項として

  • Houdini上でのプレビューはvopcop2filter の前でする
  • 書き出しはvopcop2filter を対象にする

ことをオススメします

Houdini上でPreviewでOCIOのON/OFFでもよいですが、
面倒なのでプレビューは変換前までにしています

Composite View: 変換前 / 出力: 変換後 / OCIO: Enable
(オススメ)

f:id:shop_0761:20211114110353p:plain

Composite View: 変換後 / 出力: 変換後 / OCIO: Disable
(結果は同じ、都度Disableにするのがめんどい)

f:id:shop_0761:20211114110750p:plain

Composite View: 変換後 / 出力: 変換後 / OCIO: Enable
(色が変わってしまう)

f:id:shop_0761:20211114110704p:plain

とまあ色々書きましたが、
OCIOはある程度知識がないと一生色が合わない沼にハマるのでご注意ください...

関連リンク

Houdiniに導入するときの参考記事

www.sidefx.com

シーンリニアワークフローの読み物

area.autodesk.jp

(余談) Houdini Launcher

少し前からHoudiniもLaucherができました

www.sidefx.com

f:id:shop_0761:20211123171343p:plain

18.5以前はログインするのもコツがいる(?)感じでしたが、
19からはだいぶ一新されて使いやすくなりました

Dailyビルドも選択できます
f:id:shop_0761:20211123171617p:plain

ハマりポイント

この環境をつくるまでにハマったところがいくつかあったので、書いておきます

TOP内でffmpegを使って動画を書き出しされない

ffmpeg単体で入れるとffmpegencodevideo(TOP) が正しく動かないっぽいです
(Mplayからffmepg + mp4 書き出しはできるようになります)

手元ではimagemagick経由でffmpegを入れるとうまくいきました

www.sidefx.com

また FrameListと書き出し先が同じ階層にないと怒られるので下記のように設定しています
(記事だけ見ても意図が分かるようにサンプルファイルとは少しパスが異なります)

Frame List File
$HIP/video/`opname("./")`/framelist.txt

Output File Path
$HIP/video/`opname("./")`/video.mp4

RedShiftでのレンダリング(書き出しの方)がされない

普段リアルタイム系ばっかりやっているせいか、プリレンダのお作法?があるようです

再現手順
1. LOPでRedShiftのプレビューを有効にする
2. USD RenderROP でレンダリングする (Render To Disk in BackGround など)

f:id:shop_0761:20211114113816p:plain

と手元だと一生レンダリングされませんでした

これは同時に起動できるRedShiftが(ライセンス的に?) 1つの場合、
Preview側で使っているためライセンスが見つけられないようです

Houdini GL に戻す / Pause Render にするなどすればだいたい動きます

f:id:shop_0761:20211114114109p:plain

また、どこかがRedShiftを掴みっぱなしになったまま、
レンダリングできない (もしくはめちゃめちゃ遅い) ということもあったので
Houdiniを再起動する (それでもダメならPCごと) すると治ったりしました

いろいろ試した結果の推測なので、間違っていたら教えてください...

また、Houdini 19 から LOP で Pause Render したら
パラメータ変更や階層を移動してもPauseしたままになるようになったっぽいです(たすかる)

Houdini 19 に移行したらそもそも起動しない

This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.

みたいなエラーになって起動しなくなってしまいました
(Houdini 18.5 Python3 系を使っていたので問題ないかと思っていたんですが...)

これは自分でpythonの開発環境 (anaconda) を構築したときにやらかしたっぽいです
おとなしくアンインストールしたら解決しました

参考

https://insilico-notebook.com/conda-uninstall/

最後に

最初は下記みたいなことがありました

  • うまく書き出せなくてflipbookからMPlayで書き出し...
  • 作品はできたけど最後の書き出しが間に合わず無理やり別のツールで仕上げ...
  • 前に上手くできたhipファイルどこいったっけ...

安定したワークフローがあると作るものに集中できていいなと思いました

持続可能な開発管理(Sustainable Development Governances) ということで
SDGs をやっていきましょう(?)
お後がよろしいようで...

何かあればTwitter までご連絡ください~

twitter.com

3日目は山里 ぽん太さんの「今年のカード」です

note.com