On this page |
概要
Houdiniでは、元々からポイント/プリミティブにそれぞれ固有の順番が割り当てられており、各ポイント/プリミティブが自身の"ポイント番号"または"プリミティブ番号"(これは、ポイント/プリミティブのリストのインデックスです)を知っています。 このノードでは、特定の基準に基づいてポイント/プリミティブの順番を変更することができます。
プリミティブ内の頂点の順番を変更するには、Reverse SOPを使ってください。
任意のエクスプレッションによるソート
このノードの"By Expression"オプションを使用しないでください。代わりに、以下の操作を行ないます:
-
Attribute Createまたは
Attribute Wrangleを使用して、各ポイント/プリミティブに対して"比較キー"の値を持ったアトリビュートを設定します。この値を使用することで各エレメントの順番を決めることができます。
-
Sortノードの"By Attribute"を使って、そのキーアトリビュートを指定します。
これは、"By Expression"によるソートよりもメリットが2つあります:
-
Geometry Spreadsheetでそのアトリビュート値を調べることで、正しい値が生成されているのかを確認することができます。
-
"By Attribute"による並べ替えはマルチスレッドであるのに対して、ローカル変数を使用した"By Expression"はマルチスレッドではないので、通常では、この方が 非常に 高速です。
Note
Sort SOPは、Vector3/Vector4の値または配列を適切に ソートしません 。要するに、単一コンポーネントでソートするだけです。 とはいえ、Sort SOPは安定したソートを使用しているので、Sort SOPを複数まとめて繋げることで、複数コンポーネントによるソート、複数アトリビュートによるソートを行なうことができます。
ローカル変数
このノードには何も特別なローカル変数はありません。 "By Expression"によるソートを行なう際には共通のローカル変数を使用することができますが、上記の任意のエクスプレッションによるソートを参照してください。
パラメータ
Point Sort
エレメントをソートする方法。
No Change
順番を変更しません(現在の順番を維持します)。
By Vertex Order(ポイントのみ)
ポイントをプリミティブの頂点の順番に合わせて並べ替えます。
カーブに沿ってポイント番号が上昇していないカーブがあれば、このオプションを使うことで、カーブ方向に合わせてポイント番号をソートすることができます。
By X/Y/Z
エレメントのX、Y、Zの座標でソートします。
Reverse
現在の 順番を逆順にします。
Random
エレメントをランダムな順番でごちゃ混ぜにします。
Shift
現在のエレメント番号を順方向に特定の数だけオフセットしてずらします。ポイントリストの最後のポイント番号が、最初のポイント番号に循環します。
Proximity to Point
特定のポイントまでの距離に基づいてエレメントの順番を決定します。
これは、ポイントクラウドをターゲットに近いN番目までのポイントのみに制限するのに役立ちます。 例えば、近接度によってポイントをソートしてから、最初のN個以外のポイントすべてを削除することができます。
Along Vector
3D空間内の特定の線に沿った位置でエレメントの順番を決定します。これは"By X/Y/Z"と同様ですが、座標軸のどれかの代わりに任意の方向を指定することができます。
By Expression
このオプションはエクスプレッションによって求まった"キー値"を使ってエレメントをソートすることができますが、アトリビュートを使用した方が高速で便利です。
Spatial Locality
空間的に近い位置にあるエレメントがほぼ近いインデックス値を持つようにエレメントの順番を変更します。
By Attribute
アトリビュート値をソートの"キー値"として使用します。 Vector3/Vector4アトリビュートに関しては、このノードは、一度に単一コンポーネントしかソートできません。 とはいえ、Sort SOPは安定したソートを使用しているので、Sort SOPを複数まとめて繋げることで、複数コンポーネントによるソート、複数アトリビュートによるソートを行なうことができます。
Seed
ソートの方法が"Random"の時、乱数生成に使用するシードを指定します。シードが異なれば、異なるランダムな順番が生成されます。
Offset
ソートの方法が"Shift"の時、エレメント番号を順方向にずらす数を指定します。
Point
ソートの方法が"Proximity"の時、このポイントまでの近さに基づいてエレメントの順番が決まります。
Vector Object
ソートの方法が"Along Vector"の時、ここにObjectノードのパスを入力すると、Sort SOPは、そのオブジェクトの位置をソートさせるベクトルとして使用します。
これは、原点からオブジェクトの現在の3D位置までのベクトルに沿ってソートすることができます。
Vector
ソートの方法が"Along Vector"の時、ソートに使用するベクトルを指定します。このベクトルは符号に対応しているので、0, 1, 0
の値はBy Yによるソート、0, -1, 0
の値はその逆順のソートと等価です。
Expression
ソートの方法が"By Expression"の時、ここには、キー値の生成に使用するエレメント単位のエクスプレッションを指定しますが、アトリビュートを使用した方が高速で便利です。
Attribute
ソートの方法が"By Attribute"の時、ソートのキー値として使用するアトリビュートの名前を指定します。
Component
ソートの方法が"By Attribute"の時、ソートのキー値として使用する複合(ベクトル/マトリックス)値のコンポーネントを指定します。 このノードは、一度に単一コンポーネントしかソートできません。 とはいえ、Sort SOPは安定したソートを使用しているので、Sort SOPを複数まとめて繋げることで、複数コンポーネントによるソート、複数アトリビュートによるソートを行なうことができます。
Reverse Point Sort
上記のコントロールによって計算されたソート順を逆順にします。例えばソートの方法を"By X"に設定して、これを有効にすると、ポイントはX位置の 下降順 でソートされます。
Primitive Sort
上記の Point Sort のヘルプを参照してください。
Sort Vertices by Order in Primitives
各プリミティブ内のポイント番号と同じ順番で頂点番号をソートします。