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

使用頻度の高いTOPノード

使用頻度の高いTOPノードの簡単なガイド。

On this page

ここには、すべてのTOPノードのリストを載せていません。 ここには、使用頻度の高いノードのリストを載せています。 これらのノードは、TOPを使った一般的なワークフローを始めるためのヒントになります。

とっかかりのノード

以下のノードに何も入力がなければ、そのノードのパラメータで指定された数だけ静的なワークアイテムが生成されます。 ノードに入力が接続されていれば、その入力のワークアイテム 毎に 、指定された数だけ新しくワークアイテムが生成されます。

File Pattern

パターン(例えば、*.exr)に合致したファイル毎にワークアイテムを生成します。さらにプロセッサノードを追加することで、ファイル毎にワークを実行することができます。

Download File

1つ以上のURLからファイルをディスクにダウンロードするワークアイテムを生成します。

Wedge

指定した1つ以上のアトリビュートのバリエーション毎にワークアイテムを生成します。 詳細は、Wedgeアトリビュートを参照してください。

ROP Mantra Render

指定したフレーム毎にワークアイテムを生成します。

ROP Geometry

指定したフレーム毎にジオメトリを生成するワークアイテムを生成します。

FFmpeg Extract Images

動画ファイルから抽出したフレーム画像毎にワークアイテムを生成します。

CSV Input,
JSON Input,
XML Input

入力ファイル内の“行”毎に新しいワークアイテムを生成します。

SQL Input

データベースのクエリ(照会)で返された行毎に新しいワークアイテムを生成します。

ワークを実行するノード

HDA Processor

デジタルアセットをクックして、そのアセットの出力をファイルに書き出します。

Invoke

同じHIPファイル内の他のノードを、このノードとしてクックします。

Python Script

入力のワークアイテム毎にPythonスクリプトを実行します。 これは、通常ではTOPに独自のワークを実行させる際に使用するノードです。完了したワークに基づいてこのスクリプトから出力される新しいアトリビュートをワークアイテム上に設定することができます。

Python Processorを使って独自のプロセッサコードを作成するよりも、この方が使いやすいのですが、完全なほどの柔軟性がありません (例えば、これはゼロから静的なワークアイテムを作成することができないし、入力のワークアイテム毎に新しいワークアイテムを複数生成することができません)。

Generic Processor

入力のワークアイテム毎にコマンドラインの実行ファイルを走らせます。 これは、その実行ファイルの結果に基づいてアトリビュートを設定することができないので、Python Scriptノードほど柔軟性はありません。 しかし、結果を推測できる単純なジョブ(例えば、出力されるファイルが特定のパターン従っている場合)に関しては、これは役に立ちます。

Send Command

コマンドサーバーは、持続型の共有“サーバー”プロセス(例えば、HoudiniまたはMayaのインスタンス)を起動して、コマンドを送信してから、すべてのワークが完了した時にそのプロセスをシャットダウンすることができます。

詳細は、外部プログラムをラップする方法コマンドサーバーを参照してください。

結果を待機するノード

結果を待機する方法を参照してください。

画像/動画を出力するノード

FFmpeg Encode Video

一連のフレーム画像を動画ファイルに変換します。

ImageMagick

ImageMagickライブラリを使って画像ファイルを制御します。

Overlay Text

画像の上にテキストを重ねます。これは、仕上げ前に画像の上にメタデータ(例えば、フレーム番号、Wedgeアトリビュート、ファイル名)を重ねるのに非常に役立ちます。

ファイル管理ノード

Make Directory

ディスク上に新しくディレクトリを作成するワークアイテムを生成します。 これは、出力されたファイルを整理したり、一時ストレージ領域を作成するのに役立ちます。

File Rename

ファイルの名前を変更したり、ファイルを移動させます。 実行時のワークアイテム内で名前を変更したいのであれば、 Async を有効にします。

File Copy

ファイルを別名/別の場所にコピーします。 実行時のワークアイテム内でコピーを実行したいのであれば、 Async を有効にします。

Remove File

ファイルを削除します。 実行時のワークアイテム内で削除を実行したいのであれば、 Async を有効にします。

Tip

ファイルが見つからないことが原因で依存関係システムが無駄な作業をしないようにするために、移動/名前変更、削除などの破壊的なファイル操作を回避したい場合があります。

ファイル管理のTipsを参照してください。

ユーティリティノード

Attribute Create

入力のワークアイテムに1個以上のアトリビュートを追加します。 エクスプレッションを使用すれば、新しいアトリビュート(s)の内容を計算することができます。

Split

入力のワークアイテムを何かしらの基準に基づいて別々の出力に分けます。 これは、別々のノードチェーンを使って、別々のタイプのワークアイテムを処理することができます。

Work Item Expand

指定したパーティションにマージされたワークアイテムを“再生成”します。 これは、(パーティション化によって定義された)ワークアイテムのグループを待機しつつ、各ワークアイテムから別のワークの生成を継続させるのに役立ちます。

仕上げノード

Wait for All

これは、入力のワークアイテムすべてを単一パーティションに格納するパーティショナーなので、上流のワークすべてが完了するまで進みません。 次の工程に移る前にすべてのワークが完了している必要がある場合、通常では、これはネットワークの最後(クリーンアップする前または通知ノードの前)、時には、論理的に異なる工程の最後で必要になります。

Send Email

電子メールを送信するワークアイテムを生成します。これは、大規模ネットワークの最後のWait for Allの後で、ユーザ/グループにワークが完了した事を通知するのに役立ちます。

Python Script

電子メール以外の他のタイプの通知に関しては、Python Scriptノードを使用することで通知系APIを利用することができます。例えば、ネットワークの最後にSlackメッセージを投函することができます:

import os
from slackclient import SlackClient

slack_token = os.environ["SLACK_API_TOKEN"]
client = SlackClient(slack_token)

client.api_call(
    "chat.postMessage",
    channel="C0XXXXXX",
    text=":tada: The big long job finished!"
)

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

基本

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

次のステップ

リファレンス

  • すべてのTOPsノード

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

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

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

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

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

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

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

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

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

  • Python API

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

  • Job API

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

  • ユーティリティAPI

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