On this page | |
Since | 17.5 |
このノードを使用することで、Python APIによる独自のパーティショナーロジックを記述することができます。 PDGは、このノード上のスクリプトフックをコールして、上流のワークアイテムを区分けします。 PartitionerノードAPIリファレンスでは、実装可能なコールバック関数に関する詳細が説明されています。
PythonまたはHScriptエクスプレッションでコードを1行で記述できる場合であれば、代わりにPartition by Expressionを使用した方がシンプルです。
パラメータ ¶
Save to Python Script
このノードで定義したコールバックをPythonスクリプトに保存します。 このPythonスクリプトは、PDGによってインポートして登録することができます。 このノードに関連付けられたパラメータテンプレートもPythonスクリプトに保存して埋め込まれます。 保存した後は、そのスクリプトが自動的にインポートされ、そのノードタイプがTabメニューで利用可能になります。
Save to Digital Asset
このノードで定義されたコールバックをスタンドアローンのHoudiniデジタルアセットに保存します。 このコールバックは、.hdaの中に格納され、PDGによって埋め込みPDGノードタイプとして登録されます。
onPartition Callback
このスクリプトは、上流のワークアイテムを区分けする時に実行されます。
このノードが静的なパーティショナーの場合、上流の静的なワークアイテムのフルリストを入力として、このスクリプトが静的なクック時に1回だけ実行されます。 このノードが動的なパーティショナーの場合、このスクリプトが Partition When パラメータの値に基づいてクック時に1回だけ実行されます。
このスクリプトで利用可能な変数がいくつかあります:
self
TOPノードと関連付けられた大元のPDGノードを参照します。 このPDGノードはTOPノード自体とは異なり、標準のHoudiniオペレータであることに注意してください。
TOPノードのパラメータインターフェースに追加したSpareパラメータは、自動的にPDGノードに追加されます。
partition_holder
パーティションにワークアイテムを追加する際に使用するパーティションホルダー。 このスクリプトが完了すると、このノードにパーティションが適用されます。 スクリプトで何かエラーが発生すれば、このパーティションホルダーの内容が破棄されます。
work_items
区分けするワークアイテムのリスト。
Merge Attributes ¶
これらのパラメータは、このノードによって生成されたパーティション上に入力ワークアイテムのアトリビュートをマージする方法を制御します。
Merge Output Files
パーティション内のワークアイテムの出力ファイルをパーティション自体にマージする方法を決めます。 デフォルトでは、ワークアイテムのすべての出力ファイルは、パーティション出力ファイルリストにコピーされます。
None
出力ファイルは、パーティションにマージされません。
First File
パーティション内の最初のワークアイテムの出力ファイル(s)がパーティションにコピーされます。
Last File
パーティション内の最後のワークアイテムの出力ファイル(s)がパーティションにコピーされます。
Unique Files
すべてのワークアイテムの固有のファイルパスがパーティションにコピーされます。 このオペレーションはファイルリストのソートが必要なので、ファイルの順番が変わる可能性があります。
All Files
パーティション内のすべてのワークアイテムの出力ファイル(s)がパーティションにコピーされます。 ファイルの順番は、パーティション内のワークアイテムの順番に依存します。
Merge Operations
パーティショナー系ノードに対して実行するアトリビュートマージオペレーションの数を定義します。 このアトリビュートマージオペレーションは、パーティション内のワークアイテムのアトリビュートをパーティション自体にマージする際に使用されます。 このアトリビュートマージオペレーションは降順で実行されます。 アトリビュートにマッチさせるパターンを使った最初のオペレーションでアトリビュートがマージされます。
Apply Operation
入力のアトリビュートをパーティションにマージする際に実行するオペレーションを指定します。 各オペレーションは、 To Attributes パラメータを使用してマッチした該当するアトリビュートのサブセットにのみ適用されます。
以下のオペレーションが利用可能です:
Ignore
マッチしたアトリビュートは無視され、パーティションには適用されません。
First Value
パーティション内の1番目のワークアイテム上のマッチした各アトリビュートの値が保持され、2番目以降のワークアイテムの値は無視されます。
Last Value
パーティション内の最後のワークアイテム上のマッチした各アトリビュートの値が保持されます。
Unique Values
マッチした各アトリビュートの固有の値が配列にマージされます。重複した値は破棄されます。
Append to Array
マッチした各アトリビュートの値がそのアトリビュートの配列に追加されます。 すべてのワークアイテムのすべてのアトリビュート値が保持されます。
Minimum
マッチした各アトリビュートの最小値が保持されます。
Maximum
マッチした各アトリビュートの最大値が保持されます。
Sum
マッチした各アトリビュートの合計値がパーティションに格納されます。
Average
マッチした各アトリビュートの平均値がパーティションに格納されます。
Mode
マッチした各アトリビュートの最も頻繁な値が保持されます。
Median
マッチした各アトリビュートの中央値が保持されます。
Sorted
マッチした各アトリビュートの値がソートされた配列でマージされます。
To Attributes
Apply Operation パラメータが適用されるそれに呼応したアトリビュートを指定します。 このフィールドにアトリビュートパターン構文を使用すれば複数のアトリビュートを指定することができます。
Preserve Arrays
有効にすると、マージオペレーションは、そのマージオペレーションは、その入力の配列アトリビュートの元々の配列サイズを維持します。 マージされる配列サイズは、入力のワークアイテム内で最初に見つかった値で決まります。 無効にすると、パーティショナーは、入力の配列アトリビュートを単一の値シーケンス(単一スカラー値)に平坦化し、すべての値に対してマージオペレーションを実行します。
Advanced ¶
これらのパラメータは、パーティショナーの挙動に対してもっと細かなコントロールを備えた上級パラメータです。
Partition When
パーティション化の工程が入力のワークアイテムに対して実行される時期を決めます。
Input Items are Generated
上流のワークアイテムすべてが生成されると、それらのワークアイテムがパーティション化されます。
Input Items are Cooked
上流のワークアイテムすべてがクックされると、それらのワークアイテムがパーティション化されます。 これは、パーティション化スキームがワークアイテムの実行結果に基づいている場合に必須となります。
これによって、このパーティショナーは、複数のパーティションを作成することができる事以外はWait for Allノードと同様の挙動をします。
Partition Target(s)
ターゲットにしたいノードまたは複数のノードを決めます。 このターゲットノード内のワークアイテムは、そのターゲットノードがこのノードの直接の入力でなくても、それらのワークアイテムが生成されるとすぐにパーティション化されます。 ターゲットのワークアイテムの子ワークアイテムは、利用可能になった時にそのパーティションに追加されます。
Direct Input Nodes
パーティショナーは、直接の入力ノードのワークアイテムを使用します。これがデフォルトの挙動です。
Upstream Static Nodes
パーティショナーは、動的入力ノードをスキップし、一番近い上流の静的ノードのワークアイテムをパーティション化します。
Custom Target Node
パーティショナーは、 Custom Target Node パラメータで指定されたノードを使用します。
Custom Target Node
Partition Targets が Custom Target Node に設定されている場合、パーティションのターゲットTOPノードを指定します。 パーティションスキームは、このノードの入力ワークアイテムではなくて、このターゲットTOPノード内のワークアイテムに適用されます。 このターゲットTOPノードは、同じグラフ内でこのノードより上流になければなりません。
Ignore Failed Work Items
このトグルを有効にすると、パーティショナー系ノードは、失敗した入力ワークアイテムをスキップし、成功した上流のワークアイテムのサブセットからパーティションを作成します。 このオプションは、 Partition When が Input Items are Cooked に設定されている場合、または、パーティショナー系ノードを上流で失敗している動的ノードに接続する時にのみ意味があります。
Split by Attribute
有効にすると、入力のワークアイテムをパーティション化する前に、このノードは指定したアトリビュート(s)でそれらのワークアイテムを分割します。 このパーティション化のロジックは、異なるアトリビュート値毎にワークアイテムのリストに対して評価されます。 異なるアトリビュート値を持ったワークアイテムは、常に異なるパーティションに格納されます。 複数のアトリビュート名をスペース区切りのリストで指定することができます。
Missing Attribute
このノードによる分割アトリビュートが見つからないワークアイテムの扱い方を決めます。
このパラメータは、 Split by Attribute が 有効 な時にのみ利用可能です。
Note
Split by Attributeを参照してください。
Ignore Work Item
分割アトリビュートが見つからないワークアイテムは、どのパーティションにも 格納されません 。
Handle Work Item in Python Code
パーティショナーノードは、分割アトリビュートが見つからないワークアイテムに対して何かの操作を決めます。 このパラメータオプションは、onPartitionパーティショナーコールバックを呼び出します。
Add Work Item to All Partitions
分割アトリビュートが見つからないワークアイテムは、 すべて のパーティションに格納されます。
Use Default Value
分割アトリビュートが見つからないワークアイテムは、 Default Value パラメータで設定された値を使用します。
Default Value
そのアトリビュートを持たないワークアイテムの分割アトリビュートに使用する値を指定します。
このパラメータは、 Missing Attribute が Use Default Value に設定されている場合にのみ利用可能です。
Allow Partial Matches
Split by Attribute にアトリビュート名のリストが設定されている時、このパラメータは、それらのアトリビュートのどれかのみを含んだワークアイテムの処理方法を決めます。 これを有効にすると、存在しているアトリビュートに基づいてワークアイテムがパーティションに格納されます。 これを無効にすると、アトリビュートのサブセットのみを含んだワークアイテムはパーティション化ステップから除外されます。
Sort Contents By
このノード上のパーティションにアクセスした時に、そのワークアイテムをソートする順番を決定します。 これは、パーティションの出力ファイルのソート順にも影響します。
None
ソートを適用しません。パーティション内のワークアイテムは順不同で制御されます。
Work Item Index
パーティション内のワークアイテムをインデックス順でソートします。
Input Node Order
パーティション内のワークアイテムをこのノードに接続に接続された入力ノードの順でソートします。 2個のワークアイテムが同じ入力から来ている場合、それらのワークアイテムはインデックス順でソートされます。
Attribute
パーティション内のワークアイテムを Sort Attribute パラメータで指定されたアトリビュートに基づいてソートします。
Sort Direction
このノードのパーティション内のワークアイテムを昇順または降順でソートするかどうかを決定します。
Sort Attribute
ソートに使用するアトリビュートの名前を指定します。
このパラメータは、 Sort Contents By が Attribute に設定されている場合にのみ利用可能です。
Prioritize Required Work Items
これを有効にすると、required
フラグをTrue
に設定してパーティションに追加されたワークアイテムがパーティションアイテムリストの頭に常にソートされます。
そのワークアイテムセット内では、相対的に順番を決めるために通常のソートロジックが使用されます。
例えば、複数のワークアイテムが必要だった場合、それらのワークアイテムは通常のソートオプションを使用してソートされます。
このパラメータは、 Sort Contents By が None に設定されている場合には何の効果もありません。
Store Items to Attrib
これを有効にすると、パーティション内のワークアイテムに呼応したIDのリストが、指定したアトリビュートに書き出されます。 ワークアイテムのIDは整数配列として格納されます。 これによって、パーティショナーノードの下流のパーティション化されたワークアイテムのリストを戻すことが簡単になります。
Examples ¶
PythonPartitioner Example for Python Partitioner TOP node
このサンプルでは、Python Partitioner TOPを使用して、上流のワークアイテムからパーティションを作成する方法を説明しています。
See also |