On this page

このチュートリアルについて

Houdiniでは、HDAs(Houdini Digital Assets)によって複雑なシーンコンポーネント、ツール、さらには追加ファイルを、簡単にインストールと配布が可能なカスタムコントロールを持った特別なノードにパッケージ化することができます。

PDGでは、 HDA Processor TOPノードを使用することで、HDAのパラメータを設定し、そのHDAのワークアイテム(タスク)を生成し、そのHDAをクックすることができます。

このチュートリアルでは、HDAをWedge化し、HDA プロセッサを使用して複数のクックメソッドでそれらのWedgeのジョブを実行し、保持したくないバージョンのHDAジオメトリを除外してから、最終出力ジオメトリの品質を下げます。

Tip

TOPとPDGに関してもっと学習したいのであれば、TOPの紹介を参照してください。

前提条件

  • TOPネットワークのセットアップの基本を理解していること。

  • 少しPDGワークフローの経験があること。

Tip

FXワークフロー初心者向けチュートリアルを進めることでPDGの基本を学習することができます。

学習内容

  • HDAパラメータ設定の指定。

  • HDAのバリエーションの作成。

  • 3つの異なるクックモードによるHDAのクック。

  • PDG出力の視覚化。

  • PDGサービスのセットアップ

はじめる前に

HDAファイルをコピーする

始める前に、このチュートリアルで作業するHDAファイルをコピーしてください:

  1. ファイルブラウザを開いて、Houdiniインストールディレクトリに移動します。

  2. そのインストールディレクトリから$HH\help\files\pdg_tutorials\intro_to_hdaprocessorフォルダに移動します。

  3. \intro_to_hdaprocessorフォルダ内のhe_polyreduce.hdaSideFX_spaceship.hdaのファイルをコピーします。

  4. PDG 作業ディレクトリに移動し、\PDG_TUTORIAL_FILESという名前の新しいフォルダを作成します。

  5. その\PDG_TUTORIAL_FILESフォルダにそれらのHDAファイルをペーストします。


開始

ステップ1 - HDAを見てみよう

このチュートリアルの最初のステップでは、SideFX_spaceship.hdaをインストールして、その内容を知りましょう。

  1. Houdiniを起動し、新しいセッションを開始します。

  2. Fileメニュー ▸ Import ▸ Houdini Digital AssetSideFX_spaceship.hdaチュートリアルファイルを選択してから、 Install and Create をクリックします。

    HDAsのインストール方法は、デジタルアセットのインストールと管理を参照してください。

  3. このSpaceship HDAのパラメータディタで Controls タブ内のパラメータを見てください。

    このチュートリアルの後半では、PDGからそれらのパラメータを参照します。

  4. Controls タブ内のパラメータのどれかの値を調整してみましょう。

    ビューポート内のSpaceship HDAのジオメトリがどのように変化するのか注目してください。

    このチュートリアルの後半では、色々なTOPノードを使用して、そのSpaceship HDAの設定を調整してから、その修正バージョンのジオメトリを出力します。

ステップ2 - PDG出力の視覚化をセットアップする

このチュートリアルのステップ2では、ビューポート内のSpaceship HDAの調整を確認できるように特別な File SOPノードをセットアップします。

  1. 新しくHoudiniセッションを開始します。

  2. 新しいシーンを保存します。

    • シーンファイルの名前をhdaprocessorpt1tutorial.hipにします。

    • \PDG_TUTORIAL_FILESフォルダディレクトリに.hipを保存します。

    これが以降のチュートリアルの作業プロジェクトファイルとなります。

  3. ネットワークエディタ で、Objectコンテキストにまだいなければ、そのコンテキストに移動します。

  4. 新しくGeometry SOPノードを作成してから、そのgeo1ノードの中に入ります。

  5. File SOPを作成します。

  6. このFile SOPのパラメータエディタで、 Geometry File パラメータフィールド内をクリックしてから、以下のエクスプレッションを入力します:

    `@pdg_output`

    Note

    この@pdg_outputアトリビュートは必ず バッククォート で閉じてください。 Geometry File パラメータは 文字列 パラメータなので、これでエクスプレッションをエスケープさせる必要があります。 詳細は、エクスプレッション内でアトリビュートを使用する方法を参照してください。

    @pdg_outputは、現在選択されているPDGワークアイテムの出力ジオメトリをビューポートに表示するようにHoudiniに命令します。

    このチュートリアルの後半では、TOPネットワーク内のワークアイテムをクリックすることで、ビューポート内でSpaceship HDAジオメトリのバリエーションを視覚化することができるようになります。

  7. チュートリアルシーンを保存します。

ステップ3 - HDAバリエーションのプロパティを定義する

このチュートリアルのステップ3では、3個の Wedge TOPノードを使用して、バリエーション生成させる(HDA上のコントロールに関連付けられた)PDG アトリビュートと作成するバリエーションの数を定義することで、SideFX_spaceship.hdaファイルの一連の バリエーション をセットアップします。

これらのWedge TOPノードが作成するWedgeは、このチュートリアルのステップ4で複数バージョンのSpaceship HDAを生成して比較することができます。

  1. ネットワークエディタ でtasksコンテキストに移動してから、TOP Networkノードを作成し、そのtopnet1ネットワークの中に入ります。

  2. Wedge TOPノードを作成し、名前をsmoothnessに変更します。

    Wedge はTOPs⇥ Tabメニューの Data カテゴリにあります。

    このWedge TOPノードのパラメータから、そのWedgeに適用するsmoothnessの度合いと生成するWedgeの数を指定します。

  3. このsmoothness TOPノードを選択してから、以下のパラメータを設定します:

    • Wedge Count2 に設定します。

      これは、生成するバリエーションまたは Wedge の数を決めます。

    • Wedge Attributes1 に設定します。

      これは、可変させるアトリビュートの数を決めます。

    • Wedge Attributes マルチパラメータで、以下の設定を行ないます:

      • Attribute Name パラメータフィールドにsmoothnessとタイプします。

        これによって、Wedgeでsmoothnessアトリビュートを可変させることができます。

        このアトリビュートは、Spaceship HDA上の Smoothness コントロールに直接関連付けられます。

      • Attribute Type パラメータドロップダウンメニューから Integer を選択します。

        このアトリビュートタイプは、smoothness値を常に 整数 にします。

      • Wedge Type パラメータドロップダウンメニューから Range を選択して、 Start/End パラメータをそれぞれ 01 のデフォルト値のままにします。

        これは、このTOPノードがWedgeのsmoothnessアトリビュートで二進範囲(0か1)を使用するように指示します。

        この0と1の値は、Spaceship HDAの Smoothness コントロール値の最小値( 0 )と最大値( 1 )を反映することになります。

    • 他のすべてのパラメータはデフォルト値のままにします。

  4. このsmoothness TOPノードをクックします。

    このsmoothness TOPノード上には、2個のWedgeを表現した2個のワークアイテムが表示され、それらのワークアイテムがクックされます。

    このsmoothness TOPノードは、2つのWedgeバージョンのSpaceship HDAを生成します。 その1つが 0 smoothness 値(滑らかさ0%)で、もう1つが 1 smoothness 値(滑らかさ100%)です。

    Task Graph Table内のsmoothnessノードのワークアイテム

    Tip

    このノードの右下にあるTask Graph Tableアイコンをクリックするか、または、Tasksツールバーから Tasks > Task Graph Table を選択することで、PDG Task Graph Table を開くことができます。

  5. 2つ目のWedge TOPノードを作成し、名前をbodylengthに変更してから、その 入力smoothness Wedge TOPノードの 出力 に接続します。

    Wedge はTOPs⇥ Tabメニューの Data カテゴリにあります。

    このWedge TOPノードのパラメータには、Wedgeに適用するbodylength値と生成するWedgeの数を指定します。

  6. このbodylength TOPノードを選択してから、以下のパラメータを設定します:

    • Wedge Count10 に設定します。

      これは、生成するバリエーションまたは Wedge の数を決めます。

    • Wedge Attributes1 に設定します。

      これは、可変させるアトリビュートの数を決めます。

    • Wedge Attributes マルチパラメータで、以下の設定を行ないます:

      • Attribute Name パラメータフィールドにbodylengthとタイプします。

        これによって、Wedgeでbodylengthアトリビュートを可変させることができます。

        このアトリビュートは、Spaceship HDA上の Body Length コントロールに直接関連付けられます。

      • Attribute Type パラメータドロップダウンメニューから Float を選択します。

        これは、bodylength値を浮動小数点値に指定します。

      • Wedge Type パラメータドロップダウンメニューから Range を選択します。

        これによって、各Wedgeのbodylengthアトリビュートの値の範囲を設定することができます。

      • Start フィールドに 0.5End フィールドに 2 を入力します。

        これは、このノードが各Wedgeのbodylengthアトリビュートに対して StartEnd のフィールド値の間で均一に分布した値を取得するように指示します。

        これらの値は、Spaceship HDAの Body Length コントロール値の最小値( 0.5 )と最大値( 2 )を反映することになります。

    • 他のすべてのパラメータはデフォルト値のままにします。

  7. bodylength TOPノードをクックします。

    このbodylength TOPノード上には、2個のsmoothnessWedgeそれぞれのbodylengthの10個のWedgeを表現した20個のワークアイテムが表示され、それらのワークアイテムがクックされます。

    このbodylength TOPノードは、Spaceship HDAに対して20個のWedge(10個はsmoothnessが有効で残り10個はsmoothnessが無効)を作成します。 bodylengthアトリビュートの値のバリエーションは合計20種類になります。

    Task Graph Table内のbodylengthノードのワークアイテム
  8. 3つ目のWedge TOPノードを作成し、名前をwingslengthに変更してから、その 入力bodylength Wedge TOPノードの 出力 に接続します。

    Wedge はTOPs⇥ Tabメニューの Data カテゴリにあります。

    このWedge TOPノードのパラメータには、Wedgeに適用するwingslength値と生成するWedgeの数を指定します。

  9. このwingslength TOPノードを選択してから、以下のパラメータを設定します:

    • Wedge Count10 に設定します。

      これは、生成するバリエーションまたは Wedge の数を決めます。

    • Wedge Attributes1 に設定します。

      これは、可変させるアトリビュートの数を決めます。

    • Wedge Attributes マルチパラメータで、以下の設定を行ないます:

      • Attribute Name パラメータフィールドにwingslengthとタイプします。

        これによって、Wedgeでwingslengthアトリビュートを可変させることができます。

        このアトリビュートは、Spaceship HDA上の Wings Length コントロールに直接関連付けられます。

      • Attribute Type パラメータドロップダウンメニューから Float を選択します。

        これは、wingslength値を浮動小数点値に指定します。

      • Wedge Type パラメータドロップダウンメニューから Range を選択します。

        これによって、各Wedgeのwingslengthアトリビュートの値の範囲を設定することができます。

      • Start フィールドに 0.5End フィールドに 2 を入力します。

        これは、このノードがwingslengthアトリビュートに対して StartEnd のフィールド値の間の値を取得するように指示します。

        これらの値は、Spaceship HDAの Wings Length コントロール値の最小値( 0.5 )と最大値( 2 )を反映することになります。

    • 他のすべてのパラメータはデフォルト値のままにします。

  10. wingslength TOPノードをクックします。

    このwingslength TOPノード上には、2個のsmoothnessWedgeそれぞれのbodylengthの10個のWedgeそれぞれの10個のwingslengthを表現した200個のワークアイテムが表示され、それらのワークアイテムがクックされます。

    このwingslength TOPノードは、Spaceship HDAに対して200個のWedge(100個はsmoothnessが有効で残り100個はsmoothnessが無効)を作成します。 bodylengthアトリビュートとwingslengthアトリビュートの値のバリエーションは合計200種類になります。

    Task Graph Table内のwingslengthノードのワークアイテム
  11. wingslength TOPノード内のどれかのワークアイテムドットをクリックします。

    smoothnessbodylengthのノード上のワークアイテムとwingslengthノード上のそれらに関係するタスクの間にラインが表示されていることに注目してください。 このラインとそれを結ぶドットのハイライトは、ワークアイテム間の依存関係を示しています。

    ノード間のワークアイテムの依存関係接続

    Tip

    ワークアイテムドットをクリックしてから[]のキーを使用することで、そのノード上のワークアイテムを前後に進めることができます。


  12. チュートリアルシーンを保存します。

ステップ4 - HDAジオメトリバリアントを作成する

このチュートリアルのステップ4では、一連の HDA Processor TOPノードを使用して、Wedge TOPノード入力の設定からSideFX_spaceship.hdaファイルのジオメトリのバリエーションを生成します。 この工程は、色々なバージョンのHDAを生成して視覚的にそれらを比較したいといった場面で役立ちます。

各HDA Processorノードは、異なるクックメソッド(通常のクック、バッチクック、サービスクック)を使ってSpaceship HDAジオメトリのバリエーションを出力します。 クックメソッドを変えることで、このチュートリアル外であなた自身のHDAベースのTOPネットワークの長いクック時間を短くすることができます。

  1. HDA Processor TOPノードを作成して、名前をregular_cookに変更してから、その 入力wingslength Wedge TOPノードの 出力 に接続します。

    HDA Processor はTOPs⇥ Tabメニューの Geometry カテゴリにあります。

    このHDA Processor TOPノード上のパラメータでは、取り込むHDAファイルとそのHDAが参照するWedge TOPノードのアトリビュートを指定します。

  2. regular_cook TOPノードを選択してから、以下のパラメータを設定します:

    • Generation タブの HDA File パラメータの隣にあるファイル選択ボタンをクリックします。

      • 表示された Choose File ブラウザウィンドウで、$HIPディレクトリ内のSideFX__spaceship.hdaファイルを選択して Accept をクリックします。

        これは、このノードがどのHDAファイルを入力アセットとして使用するのかを指示します。

        これによって以下の処理が行なわれます:

        • このノードがそのHDAファイルからオペレータを自動的に検知して、そのHDA TypeとそのHDAが持つ出力を自動的に設定します。

        • 実際にHDAをインスタンス化した時と同じように、そのHDAのすべてのパラメータがこのノード上に作成されます。

    • Work Items > Cache Mode パラメータドロップダウンメニューから Write Files を選択します。

      これは、このノードが常にキャッシュファイルを上書きするように指示します。

      このチュートリアルでは、Wedgeノード上のどれかのパラメータ値が変更された場合にクック時に常に新しいキャッシュファイルを書き出したいです。 そうしなかった場合、ビューポート内でSpaceshipのバリエーションの変更が何も 反映されません

    • HDA Parameters タブ > Controls タブで@アトリビュート参照を使用して、 SmoothnessBody LengthWings Length のパラメータがWedgeノード上のそれらに該当するアトリビュートを見るように設定します。

      • Smoothness パラメータフィールドで、@smoothnessとタイプします。

      • Body Length パラメータフィールドで、@bodylengthとタイプします。

      • Wings Length パラメータフィールドで、@wingslengthとタイプします。

      これらのパラメータの値がWedgeノード上のアトリビュート設定で決まるようになりました。

      Note

      @アトリビュート参照を使ってこのようなタイプのリレーションシップを作成することを、 Pull形式 Wedgingと呼びます。 別のタイプのTOPs Wedgingテクニックについてもっと学びたいのであれば、Pull vs. Pushを参照してください。

    • 他のすべてのパラメータはデフォルト値のままにします。

      Tip

      このチュートリアル外のあなた自身のセットアップでは、HDA Processor TOPノードの挙動に対してトラブル対応する必要が出てくる場合があります。

      このトラブル対応の工程で役に立つ機能として、以下の設定をすることをお勧めします:

      1. HDA Processor TOPノードの Generation タブの Asset Outputs > Save Debug .hip Fileパラメータを有効にすることで、クック時にデバッグHIPファイルが出力されるように設定することができます。

      2. Local Scheduler TOPノードを選択して、 Temp Directory > Location パラメータを Working Directory に設定することで、ローカルドライブ上のデバッグHIPファイルを見つけやすくすることができます。

  3. regular_cook TOPノードをクックします。

    このregular_cook TOPノード上には、Spaceship HDAバリアントを表現した200個のワークアイテムが表示され、それらのワークアイテムがクックされます。

    regular_cook TOPノードは、ワークアイテム毎にプロセスを起動してから、各タスクを個々にクックします。 regular_cook TOPノードは、HDA Processor TOPノードの( 一番 遅い )デフォルトのクックメソッドを使用します。 通常では、このクックメソッドだとプロセスの起動時間が実際のノードのクック時間よりも長いです。

    クックが完了したregular_cookノード

    このregular_cook TOPノードは、Spaceship HDAのジオメトリから200種類のバリエーション(100種類はsmoothnessが有効で残り100種類はsmoothnessが無効)を生成して出力します。 bodylengthアトリビュートとwingslengthアトリビュートの値のバリエーションは合計200種類になります。

  4. regular_cook TOPノード内のワークアイテムドットのどれかをクリックします。

    ネットワークエディタには、smoothnessbodylengthwingslengthのノード上のワークアイテムとregular_cookノード上のそれらに関係するタスクの間にラインが表示されていることに注目してください。 このラインとそれを結ぶドットのハイライトは、ワークアイテム間の依存関係を示しています。

    ビューポートでは、そのバリエーションのSpaceship HDAが表示されていることに注目してください。 これは、このチュートリアルのステップ2でセットアップしたFile SOPノード( Geometry File パラメータに@pdg_outputを設定)とregular_cookノードの Control パラメータで使用した@アトリビュート参照の組み合わせによって視覚化することができています。

    ノード間のワークアイテムの依存関係接続とビューポート内でのHDAバリエーション

    Tip

    • ワークアイテムドットをクリックしてから[]のキーを使用することで、そのノード上のワークアイテムを前後に進めることができます。

    • ワークアイテムをダブルクリックして表示されるワークアイテム詳細ウィンドウ内の Output リンクをクリックすることで、個々のregular_cookワークアイテムの結果をGPlayでビューイングすることができます。

  5. regular_cook TOPノード内のワークアイテムドットのどれかをクリックすることで、それらの値を調べることができます。

    smoothnessbodylengthwingslengthのアトリビュートがワークアイテム毎にどのように変化しているのか見てください。 これらのアトリビュート値は、ビューポート内のSpaceship HDAのバリエーションの形状、長さ、滑らかさに寄与しています。

  6. チュートリアルシーンを保存します。

    これで1つ目のHDA Processor TOPノードを作成してその挙動を理解しました。 次は、2個のHDA Processor TOPノードを作成して、他の高速なメソッドを試します。

  7. regular_cook TOPノードを選択して、⌃ Ctrl + cを押してから⌃ Ctrl + vを押します。

    新しく複製されたHDA Processor TOPノードがregular_cook1という名前で ネットワークエディタ に追加され、 その 入力 は既にwingslength TOPノードの 出力 に接続されています。

    • regular_cook1 TOPノードを選択して、名前をbatch_cookに変更します。

    このHDA Processor TOPノードでは、 バッチ クックメソッドを使用するようにします。

  8. batch_cook TOPノードを選択して、以下のパラメータを設定します:

    • Generation タブの Work Items > Batch Mode ドロップダウンメニューから All Items in One Batch を選択します。

      これは、このノードがすべてのSpaceship HDAジオメトリのバリエーションを 1ジョブ でクックするように指示します。 個々のプロセスを起動するオーバーヘッドが1ジョブによる実際のタスクのクック時間と比にならないほど長い場合、これによってクック時間が大幅に短くなります。

      Tip

      このチュートリアル外のあなた自身のセットアップでは、以下の設定をすることをお勧めします:

      • クックが速攻で終わる小さなタスクが膨大にある場合は、HDA Processorのワークアイテムはバッチ化(一括処理)してください。

      • クックに時間がかかるタスクだとプロセスの起動コストは問題にならないので、HDA Processorのワークアイテムはバッチ化 しないでください

    • 他のすべてのパラメータはデフォルト値のままにします。

  9. batch_cook TOPノードをクックします。

    このbatch_cook TOPノード上には、Spaceship HDAバリエーションを表現した200個のワークアイテムが表示され、それらのワークアイテムがクックされます。

    batch_cook TOPノードは単一プロセスを起動して、すべてのワークアイテムを同時にクックします。 たいていの場合だと、このクックメソッドの方がregular_cookで使用したクックメソッドよりも高速です。 このチュートリアルに関しては、これら2つのクックモードだと明らかにバッチクックメソッドの方が高速です。

    regular_cookとbatch_cookのクック速度の比較

    このbatch_cook TOPノードは、Spaceship HDAのジオメトリから200種類のバリエーション(100種類はsmoothnessが有効で残り100種類はsmoothnessが無効)を生成して出力します。 bodylengthアトリビュートとwingslengthアトリビュートの値のバリエーションは合計200種類になります。

    クックが完了したbatch_cookノード
  10. チュートリアルシーンを保存します。

    これで2つ目のHDA Processor TOPノードを作成してその挙動を理解しました。 次は、もう1つHDA Processor TOPノードを作成して、 最も高速 なメソッドを試します。

  11. regular_cook TOPノードを選択して、⌃ Ctrl + cを押してから⌃ Ctrl + vを押します。

    新しく複製されたHDA Processor TOPノードがregular_cook1という名前で ネットワークエディタ に追加され、 その 入力 は既にwingslength TOPノードの 出力 に接続されています。

    • regular_cook1 TOPノードを選択して、名前をservice_cookに変更します。

    このHDA Processor TOPノードでは、 サービス クックメソッドを使用するようにします。

  12. service_cook TOPノードを選択して、以下のパラメータを設定します:

    • Job Options タブの Use HDA Processor Service パラメータを有効にします。

    • Connection Timeout (ms) フィールド内をクリックして、 10000 (10秒)を入力します。

      これは、ジョブが10秒以内に 完了しなかった 場合にそのジョブを失敗にするようにプロセッササービスに指示します。 これは、(ネットワーク障害などの)障害が発生した場合にジョブが無期限に処理を継続 しない ようにするための安全対策です。

    • 他のすべてのパラメータはデフォルト値のままにします。

  13. ネットワークエディタ のTasksメニューバーで、 Tasks > PDG Service Menu を選択します。

    PDG Service Menu に関する情報は、PDG Service Managerを参照してください。

  14. PDG Service MenuAdd Service をクリックします。

  15. 表示された Register PDG Service ウィンドウで、以下の設定を行ないます:

    • Service TypeHDA Processor Service に設定します。

    • Scheduler Type をデフォルトの Local Scheduler 設定のままにします。

    • Pool Size フィールド内をクリックしてから、 10 と入力します。

      これは、PDG Service ManagerがHDA Processor Serviceのプールに対して10個のインスタンスを作成するように指示します。

    • Register をクリックします。

    これで、あなたが使用する新しいサービスが利用可能になりました。

  16. PDG Service MenuStart をクリックします。

    HDA Processor Serviceがサービスプール内に10個のインスタンスを起動します。

    あなたのシステムの実行中プロセスリストには、現行Houdiniセッション下でそれら10個すべてのHDA Processor Serviceインスタンスが(複数のhython.exeプロセスとして)リストされているのが分かります。

  17. service_cook TOPノードをクックします。

    このservice_cook TOPノード上には、Spaceship HDAバリエーションを表現した200個のワークアイテムが表示され、それらのワークアイテムがクックされます。

    service_cookは、10個の起動中のHDA Processor Serviceインスタンス(プロセス)を使用して、各ワークアイテムをクックします。 このチュートリアルの場合では、サービスクックメソッドが明らかに最も高速なクックモードです。 しかし、このチュートリアル外でクックに時間がかかるジョブを処理する必要がある場合では、おそらく通常のクックまたはバッチクックのメソッドを使った方が良いでしょう。

    regular_cookとbatch_cookとservice_cookのクック速度の比較

    このservice_cook TOPノードは、Spaceship HDAのジオメトリから200種類のバリエーション(100種類はsmoothnessが有効で残り100種類はsmoothnessが無効)を生成して出力します。 bodylengthアトリビュートとwingslengthアトリビュートの値のバリエーションは合計200種類になります。

    クックが完了したservice_cookノード
  18. PDG Service Menu でHDA Processor Serviceを停止してからウィンドウを閉じます。

  19. チュートリアルシーンを保存します。

これで3つ目のHDA Processor TOPノードを作成してPDGサービスのセットアップ方法を理解しました。 次は、 不要な HDAジオメトリバリアントを除外します。

ステップ5 - 不要なHDAジオメトリバリアントを除外する

このチュートリアルのステップ5では、 Filter by Expression TOPノードを使用して、smoothnessが無効なバージョンのSpaceship HDAジオメトリを除外して、smoothnessが有効なバージョンのSpaceship HDAジオメトリだけを残します。

この工程は、あなた独自のプロダクションワークフローの出力から特定のHDAジオメトリバリアントを削除したい時に役立ちます。

  1. Filter by Expression TOPノードを作成して、名前をsmooth_onlyに変更してから、その 入力batch_cook HDA Processor TOPノードの 出力 に接続します。

    Filter by Expression はTOPs⇥ Tabメニューの Data カテゴリにあります。

    このFilter by Expression TOPノード上のパラメータは、batch_cookから出力されたSpaceship HDAジオメトリバリアントから残すジオメトリと削除するジオメトリを決めます。

  2. smooth_only TOPノードを選択してから、以下のパラメータを設定します:

    • Filter Expression パラメータフィールド内をクリックして、以下のエクスプレッションをタイプします:

      @smoothness != 1

      このエクスプレッションは、このノードが smoothness Wedgeアトリビュート値 1 以外のSpaceship HDAジオメトリバリアントを出力から削除するように指示します。

      Note

      このチュートリアルに関しては、この@smoothness != 1エクスプレッションは、 Operation > Remove Matching Items が選択されてる場合は@smoothness = 0エクスプレッションと等価で、 Operation > Keep Matching Items が選択されている場合は@smoothness = 1エクスプレッションと等価です。

    • 他のすべてのパラメータはデフォルト値のままにします。

  3. smooth_only TOPノードをクックします。

    このsmooth_only TOPノード上には、滑らかなSpaceship HDAバリアントを表現した100個のワークアイテムが表示され、それらのワークアイテムがクックされます。

    このsmooth_only TOPノードは、 滑らかでない バージョンの100個のSpaceship HDAジオメトリバリアントを除外し、 滑らかな バージョンの100個のSpaceship HDAジオメトリバリアントを出力します。

    クックが完了したsmooth_onlyノード
  4. smooth_only TOPノード内のどれかのワークアイテムドットをクリックします。

    smooth_onlyノード上のワークアイテムと上流ノード上のそれらに関係するタスクの間にラインが表示されていることに注目してください。 このラインとそれを結ぶドットのハイライトは、ワークアイテム間の依存関係を示しています。

    ノード間のワークアイテムの依存関係接続

    smoothnessノード上の2つ目のワークアイテムは、bodylengthノード上の下段のワークアイテム、wingslengthノード上の下半分のワークアイテム、batch_cookノード上の下半分のワークアイテムにのみ繋がっていることに注目してください。 これらすべては、 smoothness Wedgeアトリビュート値が 1 のワークアイテムです。

    Tip

    ワークアイテムドットをクリックしてから[]のキーを使用することで、そのノード上のワークアイテムを前後に進めることができます。

  5. チュートリアルシーンを保存します。

これで、保持したいバージョンのSpaceship HDAバリアントジオメトリのみが残り、そのジオメトリにさらに修正を加えることができるようになりました。

ステップ6 - 最終HDA出力の品質を下げる

このチュートリアルの最終ステップでは、もう1つ HDA Processor TOPノードを使用して、 異なる 入力HDAアセットファイルから設定を取り込んで、それをSmooth Spaceship HDAジオメトリバリアントに適用します。

このHDA Processor TOPノードを使って、Smooth Spaceship HDAジオメトリバリアント内のポリゴン数を削減していきます。 この工程は、あなた独自のプロダクションワークフローでLODジオメトリを作成したい時に役立ちます。

  1. HDA Processor TOPノードを作成し、名前をreduce_polygonsに変更してから、その 入力smooth_only Filter by Expression TOPノードの 出力 に接続します。

    HDA Processor はTOPs⇥ Tabメニューの Geometry カテゴリにあります。

    このHDA Processor TOPノード上のパラメータでは、取り込むHDAファイルとそれらのアトリビュートを使ってSmooth Spaceship HDAジオメトリバリアントを修正する方法を指定します。

  2. reduce_polygons TOPノードを選択してから、以下のパラメータを設定します:

    • Generation タブの HDA File パラメータの隣にあるファイル選択ボタンをクリックします。

      • 表示された Choose File ブラウザウィンドウで、$HIPディレクトリ内のhe_polyreduce.hdaファイルを選択してから Accept をクリックします。

        これは、このノードがどのHDAファイルを入力アセットとして使用するのかを指示します。

        これによって以下の処理が行なわれます:

        • このノードは Operator TypeHDA TypeNumber of Outputs を自動的に検知して設定します。

        • 実際にHDAをインスタンス化した時と同じように、そのHDAのすべてのパラメータがこのノード上に作成されます。

    • Batch Mode パラメータドロップダウンメニューから All Items in One Batch を選択します。

      これは、このノードがそれらのタスクすべてを1ジョブでクックするように指示します。

    • Asset Inputs > Create File Inputs を有効にします。

      これは、このノードがSmooth Spaceship HDAジオメトリバリアントを入力として取り込むように指示します。

    • HDA Parameters タブの Percent To Keep50 に設定します。

      これは、このノードが入力内のポリゴン数を50%削減するように指示します。

      このアトリビュートは、そのPoly Reduce HDA上の Percent To Keep パラメータに直接関係付けられます。

    • 他のすべてのパラメータはデフォルト値のままにします。

  3. reduce_polygons TOPノードをクックします。

    このreduce_polygons TOPノード上には、Smooth Spaceship HDAジオメトリバリアントを表現した100個のワークアイテムが表示され、それらのワークアイテムがクックされます。

    このreduce_polygons TOPノードは、Smooth Spaceship HDAジオメトリバリアントのポリゴン数を50%削減して、そのポリゴン削減したバージョンのSpaceship HDAジオメトリバリアントをディスクに出力します。

    クックが完了したreduce_polygonsノード
  4. reduce_polygons TOPノード内のどれかのワークアイテムドットをクリックします。

    reduce_polygonsノード上のワークアイテムと上流ノード上のそれらに関係するタスクの間にラインが表示されていることに注目してください。 このラインとそれを結ぶドットのハイライトは、ワークアイテム間の依存関係を示しています。

    ビューポートにもポリゴン削減したバージョンのSpaceship HDAジオメトリバリアントが表示されます。

    Smooth Spaceship HDAバリエーションのポリゴン削減ありなし

    Tip

    ワークアイテムドットをクリックしてから[]のキーを使用することで、そのノード上のワークアイテムを前後に進めることができます。

  5. チュートリアルシーンを保存します。

終了


おめでとうございます! HDA Processor PDGチュートリアルシリーズ パート1を完了しました。

この最終TOPネットワークを見たいのであれば、Houdiniサンプルファイルディレクトリ($HH\help\files\pdg_tutorials\intro_to_hdaprocessor)にあるhdaprocessor_part1_tutorial.hipを見てください。

PDGワークフローについて学習を継続したいのであれば、このHoudiniドキュメントの他の初心者向けチュートリアルシリーズを進めるのも良いし、 私どものウェブサイトの Pipeline|PDG ラーニングパスにアクセスするのも良いでしょう。

PDG/TOPsを使ってタスクを実行する方法

基本

初心者向けチュートリアル

次のステップ

リファレンス

  • すべてのTOPsノード

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

  • プロセッサ系ノードコールバック

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

  • パーティショナー系ノードコールバック

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

  • スケジューラ系ノードコールバック

    スケジューラ系ノードはワークアイテムを実行します。

  • 独自のファイルタグとハンドラー

    PDGはファイルタグを使用して出力ファイルのタイプを決めます。

  • Python API

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

  • Job API

    ジョブスクリプトで使用するPython API

  • ユーティリティAPI

    Python pdgutilsパッケージのクラスと関数は、PDGノードでの使用だけでなく、スクリプトやプロセス外のジョブスクリプトでの使用も想定されています。