On this page | |
Since | 17.5 |
このノードは、ワークアイテム生成フェーズ中に(プロセス内で、または、スケジュールが組まれたジョブとして)Pythonスクリプトを実行するワークアイテムを生成します。 この挙動は、Evaluate Script Duringメニューを使って設定することができます。
このスクリプトがワークアイテム生成段階で実行されるように設定されている場合、そのコードは、そのワークアイテムが生成された後に即座に評価されます。
そのワークアイテムがクックされている間は、何も余分な処理は行なわれません。
このモードを使用することで、
Attribute Createノードを使用することなくプログラム的にアトリビュートを作成することができます。
他の評価モードのどれかが選択されていれば、ワークアイテムは、クックされた時にそのスクリプトコードを評価します。 プロセス内で実行されたスクリプトは、現行Houdiniセッション内の他のオブジェクトや設定だけでなく、PDGグラフに関する膨大な情報にアクセスすることができます。 このスクリプトがプロセス外で実行された場合は、そのスクリプトに関連付けられたワークアイテムのアトリビュート、そのスクリプト自体がインポートした何かにのみアクセスすることができます。
このノードは、常に上流のワークアイテム毎にちょうど1個のワークアイテムしか作成しません。
各ワークアイテムは、Python Codeフィールドの内容をワークとして実行します。
独自にワークアイテムの設定を調整したいのであれば、代わりに
Python Processorノードを使用してください。
Tip
$HH/help/files/pdg_examples/top_pythonscript
のサンプルでは、このノードを使ってプロセス内ワークアイテムとプロセス外ワークアイテムの両方の扱い方を説明しています。
パラメータ
Script
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 が設定されます。
Evaluate Script During
このノードに保存されているスクリプトコードが評価されるタイミングを決めます。
Cook (Out-of-Process)
スケジューラがクックステージ中にプロセス外でスクリプトを実行します。
Cook (In-Process)
クックステージ中にHoudiniセッションと同じプロセス内でスクリプトを実行します。
Generate
ワークアイテムを生成している時にスクリプトを実行します。
Expand Variables in String Attributes
有効にすると、PDGがワークアイテムをスタンドアローンのPythonプロセスに読み込む際に文字列アトリビュート内の$変数
を展開します。
この変数展開は、PDG_DIR
やPDG_TEMP
といったPDG特有のトークンだけでなく環境変数にも対応しています。
このパラメータは、 Evaluate Script During が Cook (Out-of-Process) に設定されている時にのみ利用可能です。
以下のパラメータは、スクリプトコードの実行に使用するPython実行可能ファイルとその実行可能ファイルに渡す引数を設定します。
これらのパラメータは、Evaluate Script Duringメニューの Cook (Out-of-Process) オプションによって、このノードがプロセス外で実行するように構成されている時に のみ 利用可能です。
Python Bin
スクリプトの実行に使用するPython実行ファイルを決めます。
Hython
hython
を使用してスクリプトを実行します。
PDG Python
PDG Pythonを使用してスクリプトを実行します。
Custom
独自のPython実行ファイルを使用してスクリプトを実行します。
Custom Python Bin
Python実行ファイルのパスを決めます。
このパラメータは、 Python Bin が Custom に設定されている時にのみ利用可能です。
Python Arguments
インタープリターの挙動を設定するためにPython実行ファイル自体に渡される追加引数を指定します。
Script Arguments
Pythonスクリプトに渡される引数を指定します。
これらの値は、スクリプトからsys.argv[1:]
を介してアクセス可能です。
Reset Python Path Variables
有効にすると、Houdiniで定義されているPYTHONHOME
とPYTHONPATH
の環境変数が外部Pythonプロセス内でリセットされます。
これは、Houdiniに組み込まれているPythonと互換性のないバージョンのPythonを使用する時に必要になります。
ワークアイテム毎に実行されるPythonコード。
プロセス外でスクリプトを実行すると、このコードはディスクに保存され、Python BinまたはCustom Python Binで指定されたPythonインタープリターによって実行されます。
このスクリプトは、APIを通じてそのスクリプトに関連付けられたワークアイテムの名前、インデックス、フレーム、アトリビュートにアクセス可能なwork_item
変数にアクセスすることができます。
さらに、intData
, floatData
, strData
の便利関数を使用することで、そのワークアイテムのアトリビュートを照会することができます。
プロセス内またはワークアイテム生成ステージでスクリプトを実行すると、そのスクリプトはHoudiniに埋め込まれているPythonインタープリターを使って実行されます。
work_item
変数だけでなく、self
とparent_item
の変数も利用可能です。
self
変数は、そのワークアイテムを所有しているノードの参照で、parent_item
変数は、その親の参照またはNone
です。
キャッシュ化と出力ファイル
Cache Mode
ワークアイテムから目的のファイル結果がレポートされるように、プロセッサノードがそのワークアイテムを制御する方法を決めます。
Automatic
目的の結果ファイルがディスク上に存在すれば、そのワークアイテムはスケジュールに組まれずにクック済みとマークされます。 そのファイルが 存在しなければ 、そのワークアイテムは通常どおりにスケジュールに組まれます。 上流のワークアイテムの依存関係がクック中に新しいファイルを書き出す場合、このノード内のワークアイテムのキャッシュファイルもout-of-date(古い)としてマークされます。
Automatic (Ignore Upstream)
Automatic と同様ですが、上流のファイルの書き込みは、このノード内のワークアイテムのキャッシュファイルを 無効にしません 。 そして、このノードは自身のワークアイテムの出力ファイルのみをチェックします。
Read Files
目的の結果ファイルがディスク上に存在すれば、そのワークアイテムはスケジュールに組まれずにクック済みとマークされます。 そのファイルが存在しなければ、そのワークアイテムは失敗とマークされます。
Write Files
目的の結果ファイルがディスク上に存在していても、ワークアイテムが常にスケジュールに組まれ、その目的の結果ファイルを無視します。
Copy Inputs to Outputs
このノード内のワークアイテムが入力ファイルを出力ファイルリストにコピーするかどうかを決めます。
Never
入力ファイルを出力ファイルリストにコピーしません。
Always
常に入力ファイルを出力ファイルリストにコピーします。
If Script Doesn’t Add Outputs
デフォルトでは、Python Scriptが独自で何も新しい出力ファイルを 追加しない 場合にのみ入力ファイルがコピーされます。
Expected Outputs From
必要な出力ファイルの指定方法を決めます。
Attribute Name
Expected Outputs From を Attribute Name に設定した場合、このパラメータには、ファイルパス(s)を含んだアトリビュートの名前を指定します。
Custom File Tag
このパラメータを有効にすると、すべての出力ファイルにカスタムタグ値が割り当てられます。 無効にすると、PDGは、ファイルにタグが既に設定されていればそのタグを使用し、タグが存在しなければファイルの拡張子に基づいて自動的にタグを取得します。
Expected Outputs
Expected Outputs From を File List に設定した場合、このパラメータは、ファイルリストエントリーの数を決めます。
Output File
ファイルのパス。
Schedulers
TOP Scheduler Override
このパラメータは、このノードのTOPスケジューラを上書きします。
Work Item Label
このノードがワークアイテムにどのようにラベルを付けるのかを決めます。 このパラメータによって、固有でないラベル文字列をワークアイテムに割り当てることができ、そのラベルを使用してアトリビュートパネル、タスクバー、スケジューラジョブ名のワークアイテムを区別することができます。
No Label
このノードのワークアイテムにラベルを付けません。
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
CreateAttributes Example for Python Script TOP node
このサンプルでは、Python Script TOPを使用してワークアイテムアトリビュートを作成する方法を説明しています。
PythonScript Example for Python Script TOP node
このサンプルでは、Python Script TOPを使用して、プロセス内またはプロセス外でPythonコードを実行する方法を説明しています。
See also |