Houdini 19.5 ノード TOPノード

Python Processor TOP node

Pythonスクリプトを使ってワークアイテムを生成します。

On this page
Since 17.5

このノードは、Python APIを使用して独自のプロセッサロジックを記述することができます。 PDGは、ワークアイテムを生成またはクックする時にこのノード上のスクリプトを評価します。

実装可能なコールバック関数に関する詳細は、ProcessorノードAPIリファレンスを参照してください。

上流のワークアイテム毎にPythonスクリプトを実行する単一ワークアイテムを必要とする場合は、 Python Scriptまたは Generic GeneratorのTOPノードを使用した方がシンプルです。

パラメータ

Processor

Save to Python Script

このノードで定義したコールバックをPythonスクリプトに保存します。 このPythonスクリプトは、PDGによってインポートして登録することができます。 このノードに関連付けられたパラメータテンプレートもPythonスクリプトに保存して埋め込まれます。 保存した後は、そのスクリプトが自動的にインポートされ、そのノードタイプがTabメニューで利用可能になります。

Save to Digital Asset

このノードで定義されたコールバックをスタンドアローンのHoudiniデジタルアセットに保存します。 このコールバックは、.hdaの中に格納され、PDGによって埋め込みPDGノードタイプとして登録されます。

Generate When

このノードがワークアイテムを生成するタイミングを決めます。 このノードがどの生成モードを必須にしているのか、もしくは、ワークアイテムを動的に生成させる必要があるのかどうか分からないのであれば、通常では、これを“Automatic”のままに設定してください。

All Upstream Items are Generated

このノードは、すべての入力ノードが自身のワークアイテムを生成した時にワークアイテムを生成します。

All Upstream Items are Cooked

このノードは、すべての入力ノードが自身のワークアイテムをクックした時にワークアイテムを生成します。

Each Upstream Item is Cooked

このノードは、入力ノード内のワークアイテムがクックされる度にワークアイテムを生成します。

Automatic

入力ノードの生成モードに基づいて生成モードが選択されます。 入力ノードのどれかがその入力のクック時にワークアイテムが生成されている場合、このノードには Each Upstream Item is Cooked が設定されます。 そうでない場合、 All Upstream Items are Generated が設定されます。

Command

ワークアイテムを実行した時に走らせるコマンドライン(実行ファイルと引数)。 このフィールドが空っぽであれば、そのワークアイテムはスケジュールに組まれなくなり、その依存関係すべてが完了すると即座に完了とマークされます。

Generate

onGenerate Callback

このスクリプトは、このノードが上流のワークアイテム(入力がなければゼロから)から新しいワークアイテムを生成する必要がある度に実行されます。 このスクリプトは、静的なワークアイテムと動的なワークアイテムのどちらの生成にも使用することができます。

静的なワークアイテムを生成する時は、単一コールのスクリプトを作成し、上流の静的なワークアイテムの全リストをupstream_items変数に収納します。 動的なワークアイテムを生成する時は、上流のワークアイテムがクックを終了する度に1回だけこのスクリプトがコールされます。

以下の変数が利用可能です:

self

TOPノードと関連付けられた大元の PDGノード 。 このPDGノードはTOPノード自体とは異なり、標準のHoudiniオペレータです。

TOPノードのパラメータインターフェースに追加したSpareパラメータも自動的にPDGノードに追加されます。

item_holder

新しいワークアイテムの構築に使用するワークアイテムホルダー。 このホルダー内のワークアイテムは、スクリプトの実行が終了した時にノードに適用されます。 このスクリプトが失敗すれば、それらのワークアイテムは破棄されます。

upstream_items

上流のワークアイテムのリスト。

generation_type

このスクリプトが実行するワークアイテム生成のタイプ。

Regenerate

Use Custom Regenerate Implementation

有効にすると、このノードはビルトインのスクリプトの代わりに onRegenerate Callback 内のスクリプトを使用します。

onRegenerate Callback

このパラメータは、 Use Custom Regenerate Implementation有効 になっている時にのみ利用可能です。

このスクリプトは、ワークアイテムを生成する必要がある度に実行され、既にそのワークアイテムが存在しても実行されます。 このスクリプトを使用することで、新しいワークアイテムを追加したり、既存のワークアイテムをDirtyにしたり削除することができます。

以下の変数が利用可能です:

self

TOPノードと関連付けられた大元のPDGノード。

item_holder

新しいワークアイテムの構築に使用するワークアイテムホルダー。

existing_items

このノード内に既存のワークアイテムのリスト。

upstream_items

上流のワークアイテムのリスト。

generation_type

このスクリプトが実行するワークアイテム生成のタイプ。

Add Internal Dependencies

onAddInternalDependencies Callback

このノードが兄弟のワークアイテム間に依存関係を追加する時にコールされます。 このスクリプトは、 onGenerate Callback をコールする度にコールされます。 このスクリプトを使用することで、そのコールバックの呼び出しによって生成されたワークアイテム間に依存関係を追加することができます。

以下の変数が利用可能です:

self

TOPノードと関連付けられた大元のPDGノード。

dependency_holder

依存関係のペアを割り当てる時に使用するワークアイテムホルダー。

internal_items

最後の onGenerate Callback の実行によって追加されたワークアイテムのリスト。

is_static

最後に生成されたワークアイテムが静的であればTrue、動的であればFalseに設定されるブール値。

Cook Task

onCookTask Callback

このノードがIn-Processワークアイテムをクックする時にコールされます。 このスクリプトは、 onGenerate Callback によって生成されたIn-Processワークアイテム毎に、そのワークアイテムをクックする必要がある時にコールされます。 In-Processワークアイテムは、ワークアイテムを構築する時にinProcess=Trueフラグを渡すことで生成されます。

以下の変数が利用可能です:

self

このTOPノードに関連付いている大元のPDGノード。

work_item

In-Processでクックしているワークアイテム。

Node Options

以下のパラメータは、pdg.NodeOptionsクラスのメソッド選択にアクセスしやすくします。

Service Name

このノードが使用しているサービスの名前を指定します。 ノードがサービスを使用していない場合は、このフィールドを空っぽのままにしてください。

Always Regenerate

有効にすると、このノードはクックの度にワークアイテムを再生成します。

Dirty on Regenerate

有効にすると、このノードは、ワークアイテムを再生成した時にそれらすべてのワークアイテムをDirty(変更あり)にします。

Dirty on Incomplete

有効にすると、このノードは、前のクックですべてのワークアイテムのクックが成功しない限り、すべてのグラフクックをDirty(変更あり)にします。

Requires Generated Inputs

有効にすると、このノードは、すべての入力ノードが完全に生成されていないと、ワークアイテムを生成することができません。

Requires Cooked Inputs

有効にすると、このノードは、入力ワークアイテムが必ずクックされていないとワークアイテムを生成することができません。

Requires Scene File

有効にすると、このノードは、現行シーンファイルにアクセスする必要があるワークアイテムを生成します。

Requires Input Data

有効にすると、このノードは、ワークアイテムを生成するために入力ファイルデータにアクセスする必要があります。 これは入力ファイルパスを知れば済む話ではないことに注意してください。 このノードがワークアイテムを生成する時に実際に入力ファイルの内容を読み込む場合にのみこのパラメータを有効にする必要があります。

Files

File Dependencies

このノード内の最初のワークアイテムが実行される前にPDG作業ディレクトリにコピーしておきたいファイルのリスト。 これを使用することで、デジタルアセットやカスタムスクリプトなどのサポートファイルをワークアイテムジョブで利用可能にすることができます。

指定可能なパスは、絶対パスまたはHOUDINI_PATHを基準とした相対パスです。

Schedulers

TOP Scheduler Override

このパラメータは、このノードのTOPスケジューラを上書きします。

Schedule When

有効にすると、このパラメータを使用して、このノードのどのワークアイテムをスケジュールに組むのかを決めるエクスプレッションを指定することができます。 そのエクスプレッションが指定されたワークアイテムに対して0を返すと、そのワークアイテムはスケジューラに組まれずに、即座にクック済みとしてマークされます。 そのエクスプレッションが0以外の値を返すと、そのワークアイテムは従来どおりにスケジュールに組まれます。

Work Item Label

このノードがワークアイテムにどのようにラベルを付けるのかを決めます。 このパラメータによって、固有でないラベル文字列をワークアイテムに割り当てることができ、そのラベルを使用してアトリビュートパネル、タスクバー、スケジューラジョブ名のワークアイテムを区別することができます。

Use Default Label

このノード内のワークアイテムは、TOPネットワークからデフォルトのラベルを使用します。 デフォルトが設定されていない場合は、それらのワークアイテムにはラベルは付きません。

Inherit From Upstream Item

ワークアイテムは親ワークアイテムのラベルを継承します。

Custom Expression

ワークアイテム毎に評価される Label Expression カスタムエクスプレッションをワークアイテムのラベルに設定します。

Node Defines Label

ワークアイテムのラベルをこのノードの内部ロジックで定義します。

Label Expression

有効にすると、このパラメータを使用して、このノードで作成されたワークアイテムに独自のラベルを指定することができます。 このパラメータには、ワークアイテムアトリビュートの参照またはビルトインのプロパティを含めたエクスプレッションを使用することができます。 例えば、$OS: @pdg_frameは、フレーム値に基づいて各ワークアイテムのラベルを設定します。

Work Item Priority

このパラメータは、現行スケジューラがこのノード内のワークアイテムの優先度を設定する方法を決めます。

Inherit From Upstream Item

ワークアイテムは、親ワークアイテムの優先度を継承します。ワークアイテムに親ワークアイテムがなければ、その優先度は0に設定されます。

Custom Expression

ワークアイテムの優先度は、 Priority Expression の値に設定されます。

Node Defines Priority

ワークアイテムの優先度は、このノード自身の内部優先度計算に基づいて設定されます。

このオプションは、 Python Processor TOP, ROP Fetch TOP, ROP Output TOPのノードでのみ利用可能です。 これらのノードは、各自のノードロジックで実装された優先度設定スキームを定義しています。

Priority Expression

このパラメータには、ワークアイテムの優先度を設定するためのエクスプレッションを指定します。 このエクスプレッションは、ノード内のワークアイム毎に評価されます。

このパラメータは、 Work Item PriorityCustom Expression に設定されている場合にのみ利用可能です。

Examples

PythonProcessor Example for Python Processor TOP node

このサンプルでは、Python Processor TOPを使用して、新しいワークアイテムを生成する方法を説明しています。

See also

TOPノード

  • Attribute Array

    ワークアイテム上に配列アトリビュートを作成/変更します。

  • Attribute Copy

    あるブランチのワークアイテムのアトリビュートを他のブランチのワークアイテムにコピーします。

  • Attribute Create

    入力のワークアイテムすべてに対してアトリビュートを作成または設定します。

  • Attribute Delete

    ワークアイテムからアトリビュートを削除します。

  • Attribute Promote

    ワークアイテム、グローバルアトリビュート、出力ファイルとの間でアトリビュートとフィールドをコピーします。

  • Attribute Reduce

    配列アトリビュート値を単一値に下げます。

  • Attribute Rename

    ワークアイテム上のアトリビュートの名前を変更します。

  • Attribute from String

    ファイル名などの文字列からアトリビュート値を解析します。

  • Block Begin Feedback

    For-Loop with Feedbackブロックを開始します。このブロック内のTOPノードは直列で実行され、オプションで入力のワークアイテム毎にループさせることができます。

  • Block End Feedback

    For-Loop with Feedbackブロックを終了します。このブロック内のTOPノードは直列で実行され、オプションで入力のワークアイテム毎にループさせることができます。

  • CSV Input

    CSVファイルのデータをワークアイテムのアトリビュートにコピーします。

  • CSV Output

    ワークアイテムのアトリビュートをCSVファイルに書き出します。

  • Command Send

    実行させたいコードを共有サーバーに送信します。

  • Command Server End

    サーバーブロックを終了します。

  • Deadline Scheduler

    Thinkbox社のDeadlineソフトウェア用PDGスケジューラ。

  • Download File

    1つ以上のURLからコンテンツをファイルにダウンロードします。

  • Environment Edit

    ワークアイテムのコマンドラインが実行する環境下で設定する変数を編集します。

  • Error

    条件が満たされた時に警告またはエラーを出します。

  • FFmpeg Encode Video

    静止画像シーケンスを動画に変換します。

  • FFmpeg Extract Images

    動画ファイルから静止画像シーケンスを抽出します。

  • File Compress

    ファイルをアーカイブに圧縮します。

  • File Copy

    実行時またはノードがファイルを生成した時に、ファイルをある場所から別の場所にコピーします。

  • File Decompress

    入力のワークアイテムで指定されたアーカイブファイルを個々のファイルに解凍します。

  • File Pattern

    特定のパターンに合致したファイルに基づいてワークアイテムを生成します。

  • File Range

    特定のファイルパターンに基づいたフレーム範囲からワークアイテムを生成します。

  • File Remove

    指定したパスのファイルを削除します。

  • File Rename

    ファイルを名前変更または移動させます。

  • Filter by Expression

    上流のワークアイテムを条件付きでフィルタリングします。

  • Filter by Range

    指定したフレーム内またはアトリビュート範囲内にある上流のワークアイテムを絞り込みます。

  • Filter by State

    上流のワークアイテムをその状態によってフィルタリングします。

  • Generic Generator

    アトリビュートなしでコマンドラインを実行するワークアイテムを生成します。

  • Geometry Import

    SOPまたはジオメトリファイルのポイントまたはプリミティブをワークアイテムアトリビュートまたは一時ファイルに読み込みます。

  • HDA Processor

    デジタルアセットをクックするワークアイテムを生成します。

  • HQueue Scheduler

    HQueueを使用してワークアイテムのスケジュールを組みます。

  • Houdini Server Begin

    持続型Houdiniコマンドサーバーを起動します。

  • ImageMagick

    一括で画像変換、サイズ変更、画像モザイクなどのImageMagickの機能に簡単にアクセスすることができます。

  • In Process Scheduler

    In-Processワークアイテムのスケジューリングを制御します。

  • Invoke

    入力ジオメトリに対してコンパイルブロックを呼び出します。

  • JSON Input

    JSONファイルからデータを抽出してアトリビュートを作成します。

  • JSON Output

    JSON出力を生成する色々なオペレーションを実行します。

  • Labs Archive Project

    現行HIPファイルの依存関係を収集してアーカイブ(書庫)にするユーティリティTOP。

  • Labs Concatenate Text

    複数のテキストファイルを単一ファイルに結合します。

  • Labs Cut Geometry to Partitions

    入力ジオメトリを分割します。

  • Labs Data Diff

    様々なジオメトリ、テキスト、画像ファイルを比較します。

  • Labs Extract Image Metadata

    iinfoを使用して画像メタデータを抽出します。

  • Labs File Cache Filter

    ファイルのキャッシュ化で使用されるワークアイテムを分割します。

  • Labs File Cache Partitioner

    ファイルキャッシュの範囲とWedge値に基づいてワークアイテムを分割/生成します。

  • Labs Filter by Value

    特定のアトリビュート値で1つ以上のワークアイテムをフィルタリングします。

  • Labs Filter by Value

    指定したアトリビュート値で複数のワークアイテムをフィルタリングします。

  • Labs Generate from Imageplanes

    画像内に見つかった画像平面に基づいてワークアイテムを生成します。

  • Labs Wedge

    アトリビュート値を可変させてワークアイテムを生成します。

  • Local Scheduler

    ローカルマシン上でワークアイテムのスケジュールを組みます。

  • Make Directory

    ディレクトリを作成します。

  • Maya Server Begin

    持続型Mayaコマンドサーバーを起動します。

  • Merge

    上流のすべてのワークアイテムを結合します。

  • Node Pattern

    マッチしたノードに基づいてワークアイテムを生成します。

  • Nuke Server Begin

    持続型Nukeコマンドサーバーを開始します。

  • Null

    何もしません。

  • OP Notify

    何かしらのTOPワークが完了したことを通知します。

  • Output

    サブネット出力。

  • Partition by Attribute

    アトリビュートに基づいてワークアイテムを区分けします。

  • Partition by Bounds

    境界アイテムを使って、ソースアイテムを空間的に区分けします。

  • Partition by Combination

    ワークアイテムを2個毎、3個毎などに区分けします。

  • Partition by Comparison

    既存の比較を使ってワークアイテムを区分けします。

  • Partition by Expression

    エクスプレッションに基づいてワークアイテムを区分けします。

  • Partition by Frame

    フレームに基づいてワークアイテムを区分けします。

  • Partition by Index

    インデックスに基づいてワークアイテムを区分けします。

  • Partition by Iteration

    フィードバックループの反復に基づいてワークアイテムを区分けします。

  • Partition by Node

    ノードに基づいてワークアイテムを区分けします。

  • Partition by Range

    範囲に基づいてワークアイテムを区分けします。

  • Partition by Tile

    軸に平行な境界ボックスを使ってワークアイテムを空間的に区分けします。

  • Perforce

    PDG経由でPerforceコマンドを実行します。

  • Python Partitioner

    Pythonスクリプトを使ってワークアイテムを区分けします。

  • Python Processor

    Pythonスクリプトを使ってワークアイテムを生成します。

  • Python Scheduler

    Pythonベースでプログラミング可能なPDG用スケジューラ。

  • Python Script

    Pythonスクリプトを実行するワークアイテムを生成します。

  • Python Server Begin

  • ROP Alembic Output

    埋め込まれたROP Alembic ROPノードをクックするワークアイテムを生成します。

  • ROP Composite Output

    埋め込まれたComposite ROPノードをクックするワークアイテムを生成します。

  • ROP FBX Output

    埋め込まれたFBX ROPノードをクックするワークアイテムを生成します。

  • ROP Fetch

    ROPノードまたはROPネットワークをクックするワークアイテムを生成します。

  • ROP Geometry Output

    埋め込まれたGeometry ROPノードをクックするワークアイテムを生成します。

  • ROP Karma Render

    埋め込まれたKarma ROPノードをクックするワークアイテムを生成します。

  • ROP Mantra Render

    埋め込まれたMantra ROPノードをクックするワークアイテムを生成します。

  • ROP USD Output

    組み込まれたUSD ROPノードをクックするワークアイテムを作成します。

  • Range Extend

    上流のワークアイテムのフレーム範囲を広げて、必要に応じて新しいワークアイテムを追加します。

  • Range Generate

    指定した範囲のワークアイテムを生成します。

  • Render IFD

    Mantraを使ってIFDファイルをレンダリングするワークアイテムを生成します。

  • SQL Input

    SQLクエリの作成と行毎にワークアイテムを生成する入力ノードです。

  • SQL Output

    SQL INSERTクエリを生成する出力ノードです。

  • Send Email

    電子メールを送信します。

  • Service Create

    PDGサービスを作成します。

  • Service Delete

    PDGサービスを削除します。

  • Service Reset

    PDGサービスをリセットします。

  • Service Start

    PDGサービスを起動します。

  • Service Stop

    PDGサービスを停止します。

  • ShotGrid Create

    ShotGridエンティティを作成します。

  • ShotGrid Delete

    ShotGridからエンティティを削除します。

  • ShotGrid Download

    ShotGridからAttachmentをダウンロードします。

  • ShotGrid Find

    ShotGridエンティティを検索します。

  • ShotGrid Server Begin

    持続型ShotGridコマンドサーバーを起動します。

  • Shotgun Update

    Shotgunエンティティを更新します。

  • Shotgun Upload

    Shotgunにファイルをアップロードします。

  • Sort

    アトリビュートのリストからワークアイテムを並べ替えます。

  • Split

    上流のワークアイテムを2つのグループに分けます。

  • Subnetwork

    TOPノード用コンテナ。

  • Switch

    ネットワーク分岐を切り替えます。

  • TOP Fetch

    他のTOPネットワークをクックします。

  • TOP Fetch Input

    TOP Fetchで取得したネットワークの入力。

  • Text Output

    テキストを新しいファイルに書き出したり、既存ファイルに書き足します。

  • Tractor Scheduler

    PixarのTractorを使ってワークアイテムのスケジュールを組みます。

  • URL Request

    URLからデータを要求するワークアイテムを作成します。

  • USD Add Assets to Gallery

    USDアセットをAsset Galleryに追加します。

  • USD Import

    USDステージで見つかったPrimsからワークアイテムを生成します。

  • USD Import Files

    USDステージで見つかったファイル参照からワークアイテムを作成します。

  • USD Render

    USDファイルを書き出すワークアイテムを作成します。

  • Wait for All

    上流のワークアイテムすべてが完了するのを待ちます。

  • Wedge

    アトリビュート値を色々と変えながらワークアイテムを生成します。

  • Work Item Expand

    ファイルリストまたはパーティションを複数のワークアイテムに展開します。

  • Work Item Import

    .jsonファイルまたは他のTOPノードからワークアイテムを取り込みます。

  • Xml Input

    XMLファイルからデータをワークアイテムアトリビュートに抽出します。