On this page |
このノードを使用することで、Python APIによる独自のプロセッサロジックを記述することができます。 PDGは、ワークアイテムを生成またはクックする必要がある時にこのノード上のスクリプトを評価します。 ProcessorノードAPIリファレンスでは、実装可能なコールバック関数に関する詳細が説明されています。
上流のワークアイテム毎にPythonスクリプトを実行する単一ワークアイテムを必要とする場合は、代わりにPython Scriptまたは
Generic Generatorを使用した方がシンプルです。
パラメータ
Processor
Save to Python Script
このノードで定義したコールバックをPythonスクリプトに保存します。 このPythonスクリプトは、PDGによってインポートして登録することができます。 このノードに関連付けられたパラメータテンプレートもPythonスクリプトに保存して埋め込まれます。 保存した後は、そのスクリプトが自動的にインポートされ、そのノードタイプがTabメニューで利用可能になります。
Save to Digital Asset
このノードで定義されたコールバックをスタンドアローンのHoudiniデジタルアセットに保存します。 このコールバックは、.hdaの中に格納され、PDGによって埋め込みPDGノードタイプとして登録されます。
Work Item Generation
このノードが静的または動的なワークアイテムのどちらを生成するかどうか。 このノードのワークアイテムが静的に計算可能かどうか、もしくは、動的に生成させる必要があるかどうか分からないのであれば、通常では、これを"Automatic"のままに設定してください。
Dynamic
このノードが常に動的なワークアイテムを生成します。つまり、上流のワークアイテムが判明するまで待機し、その上流のワークアイテムから新しいワークアイテムを生成します。
Static
このノードが常に静的なワークアイテムを生成します。つまり、ネットワークを実行する前にパラメータ(と上流の静的なワークアイテム)に基づいて必要だと思われるだけの数のワークアイテムを生成します。
Automatic
入力が静的(静的なプロセッサ、静的な入力のみを使ったパーティショナー、マッパー)な場合、このノードは静的なワークアイテムを生成し、そうでない場合、動的なワークアイテムを生成します。
Command
ワークアイテムを実行した時に走らせるコマンドライン(実行ファイルと引数)。 このフィールドが空っぽであれば、そのワークアイテムはスケジュールに組まれなくなり、その依存関係すべてが完了すると即座に完了とマークされます。
onGenerate Callback
このスクリプトは、上流のワークアイテム(入力がなければゼロから)から新しいワークアイテムを生成する必要がある度に実行されます。 このスクリプトは、静的なワークアイテムと動的なワークアイテムのどちらの生成にも使用されます。
静的なワークアイテムを生成したい時は、一行コードのスクリプトを作成し、上流の静的なワークアイテムの全リストをupstream_items
変数に収納します。
動的なワークアイテムを生成したい時は、上流のワークアイテムがクックを終了する度に1回だけこのスクリプトがコールされます。
このスクリプトで利用可能な変数がいくつかあります:
self
TOPノードと関連付けられた大元のPDGノードを参照します。 このPDGノードはTOPノード自体とは異なり、標準のHoudiniオペレータであることに注意してください。
TOPノードのパラメータインターフェースに追加したSpareパラメータは、自動的にPDGノードに追加されます。
item_holder
新しいワークアイテムの構築に使用するワークアイテムホルダー。 このホルダー内のワークアイテムは、スクリプトが完了した時にノードに適用されます。 このスクリプトが失敗すれば、それらのワークアイテムは破棄されます。
upstream_items
上流のワークアイテムのリスト。
generation_type
このスクリプトが実行するワークアイテム生成スクリプトのタイプ。
onRegenerateStatic Callback
このスクリプトは、静的なワークアイテムを生成する必要がある度に実行され、既にそのワークアイテムが存在しても実行されます。 これを使用することで、新しい静的なワークアイテムを追加することができ、そして既存のワークアイテムを汚したり削除することもできます。
このスクリプトでは以下の変数が利用可能です:
self
TOPノードと関連付けられた大元のPDGノードを参照します。
item_holder
新しいワークアイテムの構築に使用するワークアイテムホルダー。
existing_items
このノード内に既存の静的なワークアイテムのリスト。
upstream_items
上流のワークアイテムのリスト。
onAddInternalDependencies Callback
このノードが兄弟のワークアイテム間に依存関係を追加する時にコールされます。 これは、 onGenerate Callback をコールする度にコールされます。 このスクリプトを使用することで、そのコールバックの呼び出しによって生成されたワークアイテム間に依存関係を追加することができます。
このスクリプトでは以下の変数が利用可能です:
self
TOPノードと関連付けられた大元のPDGノードを参照します。
dependency_holder
依存関係のペアを割り当てる時に使用するワークアイテムホルダー。
internal_items
最後の onGenerate Callback の実行によって追加されたワークアイテムのリスト。
is_static
最後に生成されたワークアイテムが静的であればTrue
、動的であればFalse
に設定されるブール値。
onCookTask Callback
このノードがIn-Processワークアイテムをクックする時にコールされます。
このコードは、 onGenerate Callback によって生成されたIn-Processワークアイテム毎に、そのワークアイテムをクックする必要がある時に呼び出されます。
In-Processワークアイテムは、ワークアイテムを構築する時にinProcess=True
フラグを渡すことで生成されます。
以下の変数がスクリプトで利用可能です:
self
このTOPノードに関連付いている大元のPDGノードを参照します。
work_item
In-Processでクックしているワークアイテム。
Schedulers
TOP Scheduler Override
このパラメータは、このノードのTOPスケジューラを上書きします。
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 Priority が Custom Expression に設定されている時にのみ利用可能です。
このパラメータには、ワークアイテムの優先度を設定するためのエクスプレッションを指定します。 このエクスプレッションは、ノード内のワークアイム毎に評価されます。
Examples
example_top_pythonprocessor Example for Python Processor TOP node
このサンプルでは、PDG/TOPのPython Processorノードの使い方について説明しています。
See also |