On this page |
このノードを使用することで、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ノードタイプとして登録されます。
Use Dynamic Partitioning
有効にすると、パーティショナーは、パーティション化する前に入力のワークアイテムすべてが生成されるのを待つようになります。 入力のワークアイテムが動的であれば、パーティショナーは、それらの親(s)に依存して、それらのワークアイテムを待つ必要があります。
Merge Input Attributes
有効にすると、パーティショナーは、各パーティション内のワークアイテムのアトリビュートを結合して、そのパーティション自体にエクスポートします。
onPartition Callback
このスクリプトは、上流のワークアイテムを区分けする時に実行されます。
このノードが静的なパーティショナーの場合、上流の静的なワークアイテムのフルリストを入力として、このスクリプトが静的なクック時に1回だけ実行されます。 このノードが動的なパーティショナーの場合、このスクリプトが Partition When パラメータの値に基づいてクック時に1回だけ実行されます。
このスクリプトで利用可能な変数がいくつかあります:
self
TOPノードと関連付けられた大元のPDGノードを参照します。 このPDGノードはTOPノード自体とは異なり、標準のHoudiniオペレータであることに注意してください。
TOPノードのパラメータインターフェースに追加したSpareパラメータは、自動的にPDGノードに追加されます。
partition_holder
パーティションにワークアイテムを追加する際に使用するパーティションホルダー。 このスクリプトが完了すると、このノードにパーティションが適用されます。 スクリプトで何かエラーが発生すれば、このパーティションホルダーの内容が破棄されます。
work_items
区分けするワークアイテムのリスト。
Advanced
これらのパラメータは、パーティショナーの挙動に対してもっと細かなコントロールを備えた上級パラメータです。
Auto Remove Stale Dependencies
有効にすると、ノードを再クックする時に、そのクックの結果としてパーティション構成が変わってしまった場合、パーティショナーがその古い依存関係を削除します。
Force Re-Evaluation on Cook
有効にすると、すべてのワークアイテムが既にクック済みで、もう新しいワークアイテムが追加されなくとも、強制的にパーティショナーにパーティション構成を再評価させます。
Dirtying Mode
パーティションが汚れて、それによって子ワークアイテムに影響が出た際の細かな制御ができます。 このパラメータは、動的なパーティション化を行なった際の一部の制限を回避するのに特に役立ちます。
Standard
指定したパーティション内のどれかのワークアイテムが汚れたら、そのパーティションを汚します。 動的なパーティション化の場合では、パーティション内の動的ワークアイテムの上流のどれかのワークアイテムが汚れると、 すべての パーティションが汚されます。
パーティションが汚れると、すべての子ワークアイテムが削除されます。
Non-destructive
Standard と同じ汚し方の挙動ですが、パーティションが汚れると、その子ワークアイテムは削除されずに汚されます。
Mapping Standard
指定したパーティション内のワークアイテムが汚れたり、そのパーティションの内容が再クックによって変更された場合、そのパーティションのみが汚されます。 パーティションが汚されると、すべての子ワークアイテムが削除されます。
Mapping Non-destructive
Mapping Standard と同じですが、パーティションが汚れると、その子ワークアイテムは削除されずに汚されます。
Split by Attribute
有効にすると、入力のワークアイテムをパーティション化する前に、このノードは指定したアトリビュート(s)でそれらのワークアイテムを分割します。 このパーティション化のロジックは、異なるアトリビュート値毎にワークアイテムのリストに対して評価されます。 異なるアトリビュート値を持ったワークアイテムは、常に異なるパーティションに格納されます。 スペース区切りのリストで複数のアトリビュート名を指定することができます。
Missing Attribute
このノードによる分割アトリビュートが見つからないワークアイテムの扱い方を決めます。
このパラメータは、 Split by Attribute が 有効 な時にのみ利用可能です。
Ignore Work Item
分割アトリビュートが見つからないワークアイテムは、どのパーティションにも 格納されません 。
Partitioner Defines Behavior
パーティショナー系ノード側で、分割アトリビュートが見つからないワークアイテムの挙動を決めます。 通常では、このオプションを持っているパーティショナー系ノードは、そのノードが実行する実際の操作を表記するために、このメニュー項目の名前を変更します。
Add Work Item to All Partitions
分割アトリビュートが見つからないワークアイテムは、 すべて のパーティションに格納されます。
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 に設定されている時にのみ利用可能です。
Partition When
入力のワークアイテムに対してパーティション化する工程を実行するタイミングを決めます。
このパラメータは、 Use Dynamic Partitioning が 有効 な時にのみ利用可能です。
Input Items Are Generated
入力のすべてのワークアイテムが生成された時にパーティション化されます。
Input Items Are Cooked
入力のすべてのワークアイテムがクックされた時にパーティション化されます。 パーティション構成がワークアイテムの実行結果に基づいている場合は、このオプションが必須です。
これは、パーティショナーをWait for Allのように動作させますが、複数のパーティションを作成することができます。
Partition Target
パーティションのターゲットTOPノードを指定します。 パーティション構成は、このノードの入力のワークアイテムではなくて、そのターゲットTOPノード内のワークアイテムに適用されます。 ターゲットTOPノードには、このノードより上流にある同じグラフ内のプロセッサを指定してください。 このノードとターゲットの間には、他のマッパーまたはパーティショナーを配置することはできません。
このパラメータは、 Use Dynamic Partitioning が 有効 な時にのみ利用可能です。
Examples
example_top_pythonpartitioner Example for Python Partitioner TOP node
このサンプルでは、PDG/TOPのPython Partitionerノードの使い方について説明しています。
See also |