On this page | |
Since | 16.5 |
概要 ¶
このノードは、カーブ沿い、ポリゴンジオメトリ内のエッジ沿いに“移動”しながらアトリビュート値を計算します。
“トランスポート”の最も単純な形態は、アトリビュート値を始点から終点までコピーすることです。 他にも、関数を使って、各ポイントにおけるアトリビュート値をその関数グラフから計算することができます。 例えば、sum関数を使って、各リーフの深さを計算したり、maximum関数を使って各ブランチに沿ってアトリビュートの最大値を計算することができます。
このノードは、選択したエッジを色々な方法で走査することができます:
-
このノードは、共有ポイントを持つエッジが暗黙的にDirected Acyclic Graph(有向非循環グラフ)を形成していると見なし、そのグラフのルートからエッジに沿って端点にまで移動します。
-
処理を開始するための“ルート”ポイントを指定しなければなりません。 Root Choice パラメータは、ジオメトリ内の最初または最後のポイントを使用したり、ルートとして使用するポイントを明示的に指定することができます。
-
Houdiniのエッジには、本来備わっているはずの方向を持っていません。このノードは、各エッジがルートから外側に向かって進んでいると見なします。 Direction パラメータを使えば、その走査する方向を反転することができます。
-
そのグラフに複数のルートがあれば、ジオメトリがアニメーションすると、その結果が変わることがあります。その理由は、エッジネットワークモードは、エッジ長を使って走査順序を決定しているからです。
-
-
ポイント上に“parent”アトリビュートを設定することで、そのエッジのグラフ構造を明示的にセットアップすることができます。
-
このノードは、各エッジを個々に処理することができます。これはヘアー/ファーに役立ちます。この場合では、共有ポイントを持ったジオメトリを使用しないでください。Pointアトリビュートを計算して、そのエッジのポイントが共有されている場合、その結果の値は上手く定義されません。つまり、その結果が意味をなさなくなり、実行の度に結果が変わったり、Houdiniのバージョンが違うと変わったりします。
レシピ ¶
To... | Do this |
---|---|
カーブに沿って各ポイントの距離を計算する |
Direction を“Forward”に、 Operation を“Total”に、 Normalization を無効に、 Integrate a Constant Value を有効に、 Scale by Edge Length を有効に、 Edge Split Method を“Copy”に設定します。 |
カーブに沿って計算された距離を0-1範囲に正規化する |
Direction を“Forward”に、 Operation を“Total”に、 Normalization を“Per-Component”に、 Integrate a Constant Value を有効に、 Scale by Edge Length を有効に、 Edge Split Method を“Copy”に設定します。 |
カーブに沿って各ポイントにおけるエッジの数を計算する |
Direction を“Forward”に、 Operation を“Total”に、 Normalization を無効に、 Integrate a Constant Value を有効に、 Scale by Edge Length を無効に、 Edge Split Method を“Copy”に設定します。 |
パラメータ ¶
Method
Point Group 内のポイント間のエッジを走査する方法。
Each Curve
各カーブを個々に処理します。各カーブの“順”方向は、最小ポイント番号から最高ポイント番号の方向です。このモードは、VertexアトリビュートとPointアトリビュートの両方に対応しています。 このモードは、ポリゴンとカーブのみに対応しています。このモードは閉じたカーブで動作します。
Edge Network
このモードは、 Point Group 内のポイント間のエッジからグラフ構造を形成します。 Root Choice パラメータを使って、始点(ルート)を設定することができます。このノードは、ルートポイントから外側に動作します。 同じレベルのエッジは、エッジ距離によって走査されます。このモードは、Pointアトリビュートのみに対応しています。このモードは、内部エッジを持つジオメトリタイプに使用することができます。
Parent Attribute
これは、アトリビュートを使って明示的にポイントのグラフ構造をセットアップすることができます。
ポイント上にparent
整数アトリビュートを作成してください( Parent Attribute パラメータでアトリビュート名を変更することができます)。
各ポイントに対して、そのポイントの 親 のポイントのポイント番号を、このアトリビュートの値に設定してください。このモードでは、実際のエッジがポイント間に存在している必要はありません。
(“Edge Network”モードの挙動と同様に)エッジトポロジからParentアトリビュートを作成するには、以下の操作をします:
-
Enumerate SOPを使って、各ポイント上の
parent
アトリビュートをそのポイント番号に設定します。 -
Edge Transportノードを使って、 Method を“Edge Network”、 Operation を“Transport”、 New Root Value を“Hold”に設定します。
Curve Group
Method が“Each Curve”の時、このプリミティブグループ内のカーブのみに沿って値をトランスポートします。これが空っぽの場合、このノードはすべてのポイントに対して作用します。
Point Group
Method が“Edge Network”または“Parent Attribute”の時、このグループ内のポイント間のみに値をトランスポートします。これが空っぽの場合、このノードはすべてのポイントに対して作用します。
Attribute
このアトリビュートの値をトランスポートします。 Method が“Each Curve”の時、ここにはPointアトリビュートまたはVertexアトリビュートを指定することができます。 Method が“Edge Network”または“Parent Attribute”の時、ここにはPointアトリビュートを指定しなければなりません。
このアトリビュートが存在せず、 Integrate a Constant Value が有効であれば、そのアトリビュートが作成されます。それ以外の場合でアトリビュートが存在しなければ、このノードは何もしません。
Direction
Forward
ルートポイントから先端ポイント(または、各カーブの始点から終点)に向かって進みます。
Backward
先端ポイントからルートポイント(または、各カーブの終点から始点)に向かって進みます。
Parent Attribute
Method が“Parent Attribute”の時、このノードは、このアトリビュートを探して、それらのポイントからDirected Acyclic Graph(有向非循環グラフ)をセットアップします。
デフォルトはparent
です。このノードは、無効なポイント番号やこのアトリビュート内の独自のポイント番号を持ったポイントをルートとして扱います。
このノードは、ルートから辿り着けないポイントを無視します。
Root Choice
Method が“Edge Network”の時、これは、開始点となるポイントを制御します。
First Point
最小ポイント番号のポイントから開始します。 このルートから辿り着けるすべてのポイントが処理された後に、まだ処理されていないポイントが残っている場合、その処理されていない最小ポイント番号のポイントが新しいルートになって、処理が繰り返されます。
Last Point
“First Point”と同様ですが、最高ポイント番号のポイントから開始します。
Group
Root Group 内のポイントから開始します。複数のルートから辿り着けるポイントが存在すれば、最短パスがそのポイントに対してトランスポートを適用します。これらのルートから辿り着けないポイントは 処理されません 。
Root Group
Root Choice が“Group”の時に、エッジネットワークのルートとして使用するポイントグループです。
Operation
ノードがカーブ/エッジ沿いに移動した時のアトリビュート値の設定方法。
Transport
以前の/親のポイントから値をコピーします。そのポイントがルートの場合は、 New Root Value パラメータを使って、新しい値が選択されます。
Transport from Root
ルートから値をコピーします。ポイントがルートの場合は、 New Root Value パラメータを使って、新しい値が選択されます。
Total
以前の/祖先のポイントの値すべての合計の値を設定します。このオペレーションは、ルートから各ポイントまでの 距離 を測定したり、ルートから各ポイントまでの ポイントの数 を数えるのに役立ちます。
距離を測定するには、 Scale by Edge Length を有効にします。これは、それぞれ加算された値を、以前のポイントまでの距離でスケールするので、各ポイントの値が出力エッジ長によって変化します。
距離を測定したり、ポイントの数を数える時は、 Integrate a Constant Value を有効にします。これは、各ポイントの現在の値を1
として扱います。
Note
各ポイントは、自身を除くこれまでのすべてのポイントのアトリビュート値の合計を受け取ります。 そのため、ルート値はゼロを受け取ります。
Maximum
このポイントの値と以前の/祖先のすべての値の中から、最大値を値に設定します。このポイントがルートの場合、現在の値だけが使用されます。
Minimum
“Maximum”と同様で、最小値を値に設定します。
Use Normalization
有効にすると、アトリビュート値が0-1範囲に正規化されます。 この正規化は、 Normalization で選択された方法に基づきます。
Normalization
このノードがアトリビュート値を正規化する方法。
Per-Component
繋がっていない各コンポーネントがそれぞれ0-1範囲にスケールされます。 このメソッドは、各コンポーネントから最小値と最大値を求めて、コンポーネント別に各Pointアトリビュートを正規化します。
Global
すべてのポイントが共有の0-1範囲にスケールされます。 このメソッドは、すべてのコンポーネントから全体の最小値と最大値を求めて、各Pointアトリビュートをコンポーネント別ではなくグローバル範囲に正規化します。
New Root Value
Operation が“Transport”の時、これはルートに使用する値を制御します。
Zero
ルートポイントの値を0
として扱います。
Hold
ルートポイントの現在の値を使用します。
Integrate a Constant Value
Operation が“Total”の時、各ポイントの現在の値を1
として扱います。これは、エッジに沿って距離を測定したり、ポイントの数を数えることができます。
Scale by Edge Length
Operation が“Total”の時、エッジに沿ってトランスポートされた値をエッジ長でスケールします。これは、エッジに沿って距離を測定することができます。
Rotate by Edge Angle
vector型アトリビュートまたはorient型アトリビュートをトランスポートする時、隣接する2つのエッジ間の二面角でそのアトリビュートを回転させます。
Note
このオプションは、エッジネットワークを逆方向にトランスポートする場合には対応していません。
Edge Split Method
Direction を“Forward”に設定してグラフ構造を進める場合、ポイントが2つ以上の出流エッジを持つ可能性があります。これは、現在のポイントの値を複数の“子”ポイントに渡す方法を制御します。
Copy
現在の値をそれぞれの子ポイントにトランスポートします。
Split
現在の値を子の数で割り算して、その結果をそれぞれの子ポイントに渡します。
Edge Merge Method
Direction を“Reverse”に設定してグラフ構造を進める場合、ポイントが2つ以上の入流エッジを持つ可能性があります。これは、複数の“子”ポイントから集まってきた値を結合する方法を制御します。
Add
子の値の合計を使用します。
Maximum
子の値の最大値を使用します。
Minimum
子の値の最小値を使用します。
See also |