On this page | |
Since | 18.0 |
概要 ¶
このノードは、オブジェクトを一連のポイントの重心にリベット留めします。
他にもオプションで、このノードは、リベット留めされたオブジェクトにLook At拘束を追加することができます。
Solarisの拘束 ¶
現在のところ、USDは拘束に対応していません。 パラメータ拘束は、説明的、不変、常に同じ結果を返すというUSDの設計思想におそらく反します。
USDを生成するUSD上のレイヤーとして、LOPネットワークは動的拘束を計算して、そのUSDをディスクに書き出す度にそのタイムサンプルでその結果を“ベイク”することができます。
Tips ¶
-
拘束系LOPノードは、USDジオメトリをSOPsに変換してから、拘束系CHOPノードをSOPジオメトリに適用し、その変化をUSD Prim上にオーバーライドとして適用することで動作しています。 そういった理由で、拘束系LOPノードでは、USDデータを扱っている場合でも時折SOP用語(例えば、“ポイントグループ”や“プリミティブフループ”)を使用します。 将来のバージョンのHoudiniでは、これをもっとわかりやすく変更する予定です。
-
VEXスニペットでは、コロン(
:
)を含んだ@
変数名を使用することができます。これによって、特定のUSDアトリビュート名(例えば、i@primvars:foo
)を自動的にバインドするのが簡単になります(通常、このような名前はVEXソースコード内では有効ではありません。このような名前がスニペット内で使用されると、このノードが自動的にその名前をエンコードします)。
パラメータ ¶
Source ¶
Type
ソース(拘束される側)が通常のPrimまたはポイントインスタンスのどちらなのかを指定します。
Source Instances
Source ▸ Type が“Point Intance”の時に使用するポイントインスタンスを/path[instance_index]
構文で指定します(例えば、/geometry/instancer[1]
)。
Points ¶
Target Source
拘束先となるポイントの取得先。1番目の入力または2番目の入力のどちらなのかを指定します。
Type
ポイントが通常のPrimまたはポイントインスタンスのどちらなのかを指定します。
Constraint Options ¶
Import Time
ソース/ターゲットのジオメトリを埋め込みSOPNET内に取り込んで拘束を構築する際のフレームを指定します。 デフォルトの“$FF”エクスプレッションは、ソースまたはターゲットのPrimsを駆動させるタイムサンプルを持った時間依存ではないネットワーク上で拘束LOPを動作させるため、その拘束LOPを強制的に時間依存にします。 しかし、タイムサンプルを持たない時間依存ではないネットワークでパフォーマンスを良くするには、代わりに静的な値を使用することを推奨します。
Maintain Local Offset
これが無効(デフォルト)な時、ソースオブジェクトが拘束位置にスナップします。 これが有効な時、ソースオブジェクトは、そのソースオブジェクト自身と拘束位置の間で同じ相対距離を維持します。
Mode
ポイントジオメトリサブセット、または、ポリゴンフェースサブセットのポイントのどちらからポイントを取得するのか指定します。
Group
拘束先となるポイントを含んだジオメトリサブセットの名前。
Weights
グループ内の最初の3つのポイントに割り当てられるウェイト。
これによって、最初の3つのポイントから構築される平面上のリベット原点の正確な位置を微調整することができます。
例えば、0.5, 0.5, 0
のウェイトは、1番目のポイントと2番目のポイントの間の中間位置に原点を配置します。
これらのウェイトの合計が0にならないようにしてください。 4番目以降のすべてのポイントのウェイトは常に1になります。
Use Snippet
VEXスニペットを使って Group と Weights を設定します。
VEXスニペットでは、グループをgroup
文字列変数に書き出し、ウェイトをweights
ベクトル変数に書き出してください。
VEXスニペットはソースPrim毎に評価されます。
@ptnum
は、拘束されている現行Primのインデックスです。
npoints(0)
を使用することで、拘束されているPrimsの総数を取得することができます。
@Frame
や@Time
を使用することで、スニペットを時間依存にすることができます。
Orientation ¶
Look At Mode
リベット留めされるオブジェクトのLook At方向の計算方法。
None
ソースオブジェクトがどの方向にも向かないように回転させません。
Direction Attribute from Points
ポイント上のベクトルアトリビュートの平均を使用します。
Direction Vector from P0 to P1
グループ内の1番目のポイントから2番目のポイントまでの方向を使用します。
Normal Vector from P0,P1,P2 Plane
グループ内の最初の3つのポイントで形成された三角形の平面に垂直な方向を使用します。
From Primitive
ソースオブジェクトを、指定したPrimに向くように回転させます。
Look At Source
Look At Mode が“From Primitive”の時、視線先となるPrimの取得先(1番目の入力または2番目の入力)。
Look At Xform
Look At Mode が“From Primitive”の時、視線先となるPrimのシーングラフパス(これは、ポイントインスタンスを視線先にすることはできません)。
Look Up Mode
Upベクトルの計算方法。
Up Vector Attribute from Points
ポイント上のベクトルアトリビュートの平均を使用します。
Direction Vector from P0 to P1
グループ内の1番目のポイントから2番目のポイントまでの方向を使用します。
Normal Vector from P0,P1,P2 Plane
グループ内の最初の3つのポイントで形成された三角形の平面に垂直な方向を使用します。
X Axis
ワールドの+X方向をUpベクトルとして使用します。
Y Axis
ワールドの+Y方向をUpベクトルとして使用します。
Z Axis
ワールドの+Z方向をUpベクトルとして使用します。
From Primitive
ソースPrimがカーブに沿って移動する時に、そのUpベクトルが、指定したPrimに向くようにソースPrimを回転させます。
Custom
Up Vector パラメータのベクトルを使用します。
Up Vector Source
Look Up Mode が“From Primitive”の時、Upベクトルを向けるPrimの取得先(1番目の入力または2番目の入力)。
Up Vector Xform
Look At Mode が“From Primitive”の時、Upベクトルを向けるPrimのシーングラフパス(これはポイントインスタンスに対応していません)。
Look At Axis
Look Atベクトルに合わせるソースオブジェクトの軸。 これを使用することで、ソースオブジェクトが作成された向きを補正することができます。 ここには、 Look Up Axis と同じ軸を指定することはできません。
Look Up Axis
Upベクトルに合わせるソースオブジェクトの軸。 これを使用することで、ソースオブジェクトが作成された向きを補正することができます。 ここには、 Look At Axis と同じ軸を指定することはできません。
Direction Attribute
Look At Mode が“Direction Attribute from Points”の時、平均からLook At方向を求めるためのポイント上のベクトルアトリビュートの名前。
Up Attribute
Look Up Mode が“Up Vector Attribute from Points”の時、平均からUpベクトルを求めるためのポイント上のベクトルアトリビュートの名前。
Roll
Look At方向を基準としたロール角度(単位は度)。
Use Snippet
VEXスニペットを使ってロールを設定します。
このスニペットでは、ロール角度をroll
変数に書き込んでください。
典型的にはAttribute Wrangle SOPで利用可能な変数を使用することができます。
@ptnum
は、拘束されている現行Primのインデックスです。
npoints(0)
を使用することで、拘束されているPrimsの総数を取得することができます。
@Frame
や@Time
を使用することで、スニペットを時間依存にすることができます。
(スニペットの最初の時点での)roll
の初期値は、 Roll パラメータが評価された値になります。
そのため、そのパラメータでエクスプレッションを使って“ベース”値を計算し、スニペットを使ってその値を修正することができます。
Examples ¶
PointsConstraint Example for Points Constraint
このサンプルには、Points Constraint LOPの色々な使い方が含まれています。
See also |