Since | 17.5 |
Python Service Block、 Houdini Service Block、 Maya Service Block、 Nuke Service Blockなどのサービスブロック内部でこのノードを使用する必要があります。
このノードは、サーバーが対応している内容に応じて、コマンドまたはカスタムコードをブロックに送信します。 例えば、 Houdini Service Block はHOM APIを使用したPythonコードを実行し、 Maya Service Block はMELまたはPythonを使用します。
Pythonコードを実行すると、work_item
オブジェクトが自動的に利用可能になります。
これを使用することで、PDGからデータを読み書きすることができます。
このwork_item
オブジェクトはpdg.WorkItem APIのサブセットに対応しています。
myattr_value = work_item.stringAttribValue('myattr') file_path = save_my_file(myattr_value) work_item.addResultData(file_path)
デフォルトでは、コマンドスクリプトは、同じサービスブロック内で実行されるすべてのワークアイテム間で共通するコンテキスト内で評価されます。 つまり、モジュールインポートとスクリプト内で宣言されている変数は、以降のすべてのスクリプト評価からアクセス可能です。 グローバルコンテキストの変更を避けたいのであれば、 Evaluation Context パラメータを代わりに Shared, Discard Changes に設定すると良いでしょう。 どのインポートも宣言済みの変数もスクリプトの実行中でのみ有効になりますが、そのスクリプトは他のノードのタスクの変数にアクセスすることができます。 他にも、 Evaluation Context パラメータを Standalone に設定することで、スクリプトが完全にスタンドアローンなコンテキストで実行されるようにそのスクリプトの挙動を変更することができます。
Note
このノードをMaya Service Blockと併用すると、そのコマンドスクリプトは、そのスクリプトの1行目が//mel
でない限りPythonコードであると想定されます。
//mel
だった場合は、そのスクリプトテキストはMELコードとして扱われます。
このMELスクリプトの最後の行は、 Service Block Send work_item
に追加される値を決定します。
パラメータ ¶
Command ¶
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 が設定されます。
Cache Mode
ワークアイテムから目的のファイル結果がレポートされるように、プロセッサノードがそのワークアイテムを制御する方法を決めます。
Automatic
目的の結果ファイルがディスク上に存在すれば、そのワークアイテムはスケジュールに組まれずにクック済みとマークされます。 そのファイルが 存在しなければ 、そのワークアイテムは通常どおりにスケジュールに組まれます。 上流のワークアイテムの依存関係がクック中に新しいファイルを書き出す場合、このノード内のワークアイテムのキャッシュファイルもout-of-date(古い)としてマークされます。
Automatic (Ignore Upstream)
Automatic と同様ですが、上流のファイルの書き込みは、このノード内のワークアイテムのキャッシュファイルを 無効にしません 。 そして、このノードは自身のワークアイテムの出力ファイルのみをチェックします。
Read Files
目的の結果ファイルがディスク上に存在すれば、そのワークアイテムはスケジュールに組まれずにクック済みとマークされます。 そのファイルが存在しなければ、そのワークアイテムは失敗とマークされます。
Write Files
目的の結果ファイルがディスク上に存在していても、ワークアイテムが常にスケジュールに組まれ、その目的の結果ファイルを無視します。
Evaluation Context
このパラメータは、スクリプトコードを走らせるコンテキスト/ネームスペースを決めます。 デフォルトでは、スクリプトは共有ネームスペースで走るので、宣言済み変数またはインポート済みモジュールが以降のすべてのService Block Sendワークアイテムで利用可能になります。 他にも、スクリプトがワークアイテムから隔離された自身のローカルコンテキスト内で走らせることができます。
Standalone
ワークアイテムのスクリプトは自身のローカルコンテキストで走ります。
pdgjson
、pdgcmd
、hou
などの標準モジュールにアクセスすることはできますが、これまでのワークアイテムや以降のワークアイテムのどちらにも依存せずにスクリプトが実行されます。
Copy Spare Parms to Attributes
有効にすると、すべてのSpareパラメータがアトリビュートとして、生成されたワークアイテムにコピーされます。
コピーしたくないパラメータがある場合は、pdg::nocopy
タグを適用してください。
Remote Script
共有サーバーに送信するコードを指定します。
このサーバーが Houdini Service Block であれば、このパラメータにはHOM APIが利用可能なPythonコードを指定することができます。 このサーバーが Maya Service BLock であれば、このパラメータにはMaya APIが利用可能なPythonコードを指定することができます。
Output ¶
See also |