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
有効にすると、このノードは、ワークアイテムを生成するために入力ファイルデータにアクセスする必要があります。 これは入力ファイルパスを知れば済む話ではないことに注意してください。 このノードがワークアイテムを生成する時に実際に入力ファイルの内容を読み込む場合にのみこのパラメータを有効にする必要があります。
Uses Dynamic Batching
有効にすると、このノードは、クック時にサイズを広げる動的なバッチワークアイテムを作成するようになります。
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 Priority が Custom Expression に設定されている場合にのみ利用可能です。
Examples ¶
PythonProcessor Example for Python Processor TOP node
このサンプルでは、Python Processor TOPを使用して、新しいワークアイテムを生成する方法を説明しています。
See also |