どうも篠島です。今回はROP DependencyのFrame Rangeがどの様に処理されるかをコマンドラインから確認する方法を説明します。
今回のサンプルファイルです。
test.zip
前回の記事ではROP Dependencyを作り、ノードの組み方、設定によりどういったフレームレンジで処理されるかを説明しました。もし実際のシーンで複雑なROP Dependencyを組み上げて、レンダリングしてフレームレンジや処理される順番を確認するのはあまり効率的ではありません。ですが、コマンドラインからレンダリングすると、実際にレンダリングではなくフレーム情報だけを出力してくれます。
コマンドラインからレンダリングするには Windows > Shell からシェルを起動します。Houdiniが立ち上がってない状態であれば、ランチャーから Side Effects Software > Houdini x.x.x > Command Line Tools を起動してください。Houdini 関連のパスが通されたシェルが起動します。シェルから hbatch を起動して操作していきます。
hbatch とは
Hscriptを使ってHoudiniのGUIで出来る事はほぼ出来てしまうコマンドラインツールで、実行するのにHoudiniライセンスを消費します。コマンドラインで複数の処理を渡すことも出来るので作業の自動化などもすることが出来ます。
コマンド
- hbatch とタイプしてエンターを押すと、hbatchが起動します。
- mread コマンドでHipファイルを読み込みます。(hbatch test.hip の様に hbatch と Hipファイル名をまとめて書くこともできます)
- ls コマンドで/out 内部のノードを確認しています。画像右の様にROP一覧がリストアップされます。
- render コマンドで特定のROPを処理できるのですが、この時 -p オプションを付けることで、実際にレンダリングはせずに、レンダリングするフレームの情報だけを出力させます。
ちなみに、出力される情報のフォーマットは下のようになっています。
<<id>> [ <<dependencies>> ] <<node>> <<frames>>
id : 処理毎の固有のID
[dependencies]: この処理をするのに依存している処理のID
node : 処理しているノード
frames : 処理するフレーム
フレームごとに(Frame by Frame)処理する方法
上の例ではROP毎に処理(デフォルト)をしているので、一つの行に複数のフレームが表示されていますが、render コマンドに -I オプションを付けることで下のようにフレーム毎に表示されます。
試しにBatch ROPを入れたりしながらどんな出力結果になるのか試してみましょう。-I オプションでもBatch ROPが存在すると、インプットのROPをROP毎に処理することがわかります。