Houdini 18.0 タスクを実行する方法

Tipsとテクニック

TOPsを扱う上で役立つ一般情報と上手な使い方。

On this page

クッキング

  • 大規模なデータセットに対してネットワークを走らせる前に、小規模なデータセットを使ってすべてが上手く動作するのかテストしてください。

  • ネットワークをクックする前に、どんな感じでワークが処理されるのか把握したいのであれば、 Taks ▸ Generate Static Work Items (Static vs. Dynamicを参照)を使用します。

アトリビュート

  • "Pull"アトリビュート参照を使用してください 。パラメータ内に@attribute構文を使用することで、処理内容を制御することができます(Pull参照とPush参照を参照してください)。"Pull"アトリビュート参照を使用した方がアトリビュートをプッシュしたり、カスタムノードを記述するよりも非常に簡単であり、その上、PDGには解析後にクックを再開することができる重要な機能があります。例えば、@attribute構文を使用しないと、PDG側でどの出力ファイルの名前が変更されるのか予測できないです。

  • インタラクティブなHoudiniでは、アトリビュート参照は、現在選択されているワークアイテムからアトリビュートを参照します 。HIPファイル内の他のネットワーク(ジオメトリを生成するSOPネットワークやレンダリングをコンポジットするCOP2ネットワークなど)に@attribute値があると、それらの参照の"現行"値は、ネットワークインターフェース内で選択されているワークアイテムによって駆動されます。

    例えば、SOPネットワークの出力を表示するようにビューアペインを設定してから、TOPネットワーク内のワークアイテムをクリックすると、ワークアイテム別に異なる出力ジオメトリを表示することができます。

    このメリットを利用すれば、迅速に出力ジオメトリを確認することもできます。 Show Outputシェルフツールは、Geometryオブジェクトを作成し、その中にFile SOPを作成してから、そのFileノードのパスに`@pdg_output`(このパスは文字列パラメータなので、エクスプレッションをバッククォートで閉じる必要があります)を設定します。 ビューア内でネットワークを表示した時に、TOPネットワーク内のワークアイテムをクリックすることで、その出力ジオメトリを表示することができます。 出力ジオメトリの検査が終わったら、そのオブジェクト/ネットワークを削除することができます。

    詳細は、アトリビュート参照を参照してください。

シミュレーション

  • 並列でシミュレーションフレームを生成しないでくださいROP Geometry Outputノードを使ってシミュレーション出力を生成する時は、 ROP Fetch タブに進んで、 All Frames in One Batch を有効にしてください。

    このオプションを無効にしたままにすると、フレームが別々に並列で生成されます。 しかし、シミュレーションは計算したいフレームまですべてのフレームをクックしなければなりません。 このオプションを無効にしてしまうと、フレーム2を計算するためにHoudiniがフレーム1とフレーム2をクックしなければならず、フレーム3を計算するためにフレーム1、フレーム2、フレーム3をクックしなければならなくなります。 これは非常に非効率です。

出力ファイル

詳細は、ファイルパスを参照してください。

  • 一時的な"作業進行中"ファイルと"最終出力"ファイルを別々のディレクトリに分けるようにしてください。例えば、中間ジオメトリファイルを__PDG_TEMP__/geo内に、最終ジオメトリファイルを__PDG_DIR__/geo内に生成するようにしてください。こうすることで、重要な出力ファイルが検索しやすくなり、強制的にリビルドするためにそれらの一時ファイルを一括でクリアすることができます。

  • 破壊的なファイル操作(移動/名前変更、削除)をしないほうが良いです。これらのファイル操作を行なってしまうと、ファイルを見失なってしまって、ディペンデンシーシステムに余計なワークを発動させてしまいます。

タスクを実行する方法

基本

次のステップ

  • 外部のプログラムを実行する方法

    TOPノードで外部機能をラップする方法。

  • ファイルタグ

    ワークアイテムは、そのワークによって生成された"結果"を追跡します。各結果には、そのタイプのタグが付きます。

  • フィードバックループ

    For-Eachブロックを使用することで、ワークアイテムに対して一連のオペレーションをループで処理することができます。

  • コマンドサーバー

    コマンドブロックは、リモートプロセス(例えば、HoudiniやMayaのインスタンス)を起動したり、サーバーコマンドを送信したり、サーバーをシャットダウンすることができます。

  • PDG Service Manager

    PDG Service Managerは、ワークアイテムのクック時間を短くするために使用される持続型Houdiniセッションのプールを管理します。

  • PDGとレンダーファームスケジューラの統合

    異なるスケジューラを使って、ワークのスケジュールを組んで実行する方法。

  • ワークアイテムのパフォーマンスの可視化

    ネットワーク内のワークアイテムの相対的なクック時間(またはファイル出力サイズ)を可視化する方法。

  • Event Handling

    PDGノードまたはグラフからイベントを制御するためのPython関数を登録することができます。

  • Tipsとテクニック

    TOPsを扱う上で役立つ一般情報と上手な使い方。

リファレンス

  • すべてのTOPsノード

    TOPノードは、データをネットワークに送り込んで"ワークアイテム"に変換し、色々なノードでそれを制御するワークフローを定義します。たいていのノードは、ローカルマシンまたはサーバーファーム上で実行可能な外部プロセスを表現しています。

  • Processor Node Callbacks

    Processor系ノードはスケジューラで実行可能なワークアイテムを生成します。

  • Partitioner Node Callbacks

    Partitioner系ノードは複数の上流ワークアイテムを単一パーティションにグループ化します。

  • Scheduler Node Callbacks

    Scheduler系ノードはワークアイテムを実行します。

  • Python API

    ディペンデンシーグラフを扱うためのPython PDGパッケージのクラスと関数。