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
ワークアイテムを生成している時にスクリプトを実行します。
Copy Inputs to Outputs
有効にすると、Python Scriptノードは自動的に入力ファイルを出力ファイルリストにコピーします。 これは、スクリプト内で新しく出力ファイルを追加する予定がなくて、同じ入力を下流のノードに渡したい場合に役立ちます。
Expand Variables in String Attributes
Evaluate Script During が Cook (Out-of-Process) に設定されている時、このトグルは、PDGがワークアイテムをスタンドアローンのPythonプロセスに読み込む際に文字列アトリビュート内の$変数を展開するかどうかを決めます。
この変数展開は、PDG_DIR
やPDG_TEMP
といったPDG特有のトークンだけでなく環境変数にも対応しています。
以下のパラメータは、スクリプトコードの実行に使用する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
です。
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
CreateAttributes Example for Python Script TOP node
このサンプルでは、Python Script TOPを使用してワークアイテムアトリビュートを作成する方法を説明しています。
PythonScript Example for Python Script TOP node
このサンプルでは、Python Script TOPを使用して、プロセス内またはプロセス外でPythonコードを実行する方法を説明しています。
See also |