On this page | |
Since | 18.0 |
Solarisの拘束 ¶
現在のところ、USDは拘束に対応していません。 パラメータ拘束は、説明的、不変、常に同じ結果を返すというUSDの設計思想におそらく反します。
USDを生成するUSD上のレイヤーとして、LOPネットワークは動的拘束を計算して、そのUSDをディスクに書き出す度にそのタイムサンプルでその結果を“ベイク”することができます。
Tipsとメモ ¶
-
デフォルトでは、SOPs(SOP ImportやSOP Createを介して)から取り込まれたジオメトリのPointアトリビュートはUSDに取り込まれます。 そのため、SOPsでアトリビュート(例えば、Upベクトルアトリビュート)をセットアップすることで、それらのアトリビュートをこのノードで使用することができます。
-
拘束系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]
)。
Surface ¶
Target Source
引っ付け先となるサーフェスの取得先。1番目の入力または2番目の入力のどちらなのかを指定します。
Type
サーフェスが通常のPrimまたはポイントインスタンスのどちらなのかを指定します。
Constraint Options ¶
Import Time
ソース/ターゲットのジオメトリを埋め込みSOPNET内に取り込んで拘束を構築する際のフレームを指定します。 デフォルトの“$FF”エクスプレッションは、ソースまたはターゲットのPrimsを駆動させるタイムサンプルを持った時間依存ではないネットワーク上で拘束LOPを動作させるため、その拘束LOPを強制的に時間依存にします。 しかし、タイムサンプルを持たない時間依存ではないネットワークでパフォーマンスを良くするには、代わりに静的な値を使用することを推奨します。
Maintain Local Offset
これが無効(デフォルト)な時、ソースオブジェクトがサーフェス上にスナップします。 これが有効な時、ソースオブジェクトは、サーフェスの形状に追従する時に、そのソースオブジェクト自身とサーフェスの間で同じ相対距離を維持します。
Mode
位置パラメータをサーフェス上にマッピングする方法。
UV (Sticky)
( UV Attribute パラメータで指定した)Primvarのテクスチャ座標系を使って、サーフェス上で UV パラメータの座標を照会します。
Primitive + UV
UV パラメータの座標を、特定のポリゴンフェース上の組み込みローカルUV座標として扱います。 最初の2つのコンポーネントがUとVの座標で、3番目のコンポーネント(W)がポリゴンフェースのインデックスです。 これは、テクスチャ座標を含んだアトリビュートが不要です。
Point Group
特定のジオメトリサブセット内のポイントの重心に一番近いサーフェスポイント上にソースオブジェクトを配置します。
Primitive Group
特定のジオメトリサブセット内のポリゴンフェースの重心に一番近いサーフェスポイント上にソースオブジェクトを配置します。
Closest Distance
Position パラメータのワールド空間位置に一番近いサーフェスポイント上にソースオブジェクトを配置します。
UV Attribute
Mode が“UV (Sticky)”の時、テクスチャ座標を含んだPrimvarの名前を指定します。
SOPsから取り込まれたジオメトリに関しては、これはuv
ですが、USDでは通常ではst
です。
テクスチャ座標は必ず重ならないようにしてください。
UV
Mode が“UV (Sticky)”の時、ソースオブジェクトを配置するテクスチャ座標を指定します。
Group
Mode が“Point Group”または“Primitive Group”の時、一番近いサーフェスポイントを検索するジオメトリサブセットの名前を指定します。
Position Attribute
Mode が“Closest Distance”の時、ポイントポジションを含んだPrimvarの名前を指定します。
SOPsから取り込まれたジオメトリに関しては、これはP
ですが、USDでは通常ではpositions
アトリビュートです。
Position
Mode が“Closest Distance”の時、一番近いサーフェスポイントを検索するワールド空間位置を指定します。
Use Snippet
Mode が“UV (Sticky)”、“Primitive + UV”、“Closest distance”の時、VEXスニペットを使ってポジション/UVを設定することができます。
@ptnum
は、拘束されている現行Primのインデックスです。
npoints(0)
を使用することで、拘束されているPrimsの総数を取得することができます。
@Frame
や@Time
を使用することで、スニペットを時間依存にすることができます。
(このスニペットの頭にある)pos
の初期値は、( Mode に応じて) Position パラメータまたは UV パラメータから評価された値です。
そのため、そのパラメータにエクスプレッションを使用して“ベース”値を計算し、このスニペットを使ってその値を修正することができます。
Orientation ¶
Look At Mode
ソースオブジェクトの向きを決める方法。
None
ソースオブジェクトを回転させません。
U Direction
サーフェスのU方向をLook At方向として使用します。 これはNURBSサーフェスで非常に上手く動作します。
V Direction
サーフェスのV方向をLook At方向として使用します。 これはNURBSサーフェスで非常に上手く動作します。
Direction Attribute from Geometry
サーフェス上のベクトルPrimvarの値をLook Atベクトルとして使用します。
From Primitive
ソースオブジェクトが常に特定のPrimの方へ向くように回転させます。
Look At Source
Look At Mode が“From Primitive”の時、視線先となるPrimの取得先(1番目の入力または2番目の入力)。
Look At Xform
Look At Mode が“From Primitive”の時、視線先となるPrimのシーングラフパス(これは、ポイントインスタンスを視線先にすることはできません)。
Direction Attribute
Look At Mode が“Direction Attribute from Geometry”の時、Look Atベクトルとして使用するサーフェス上のベクトルPrimvarの名前(primvar:
接頭辞なし)を指定します。
Look Up Mode
Upベクトルを計算する方法。
Up Vector Attribute from Geometry
サーフェス上のvector3f
Primvarを使用して各ポイントのUpベクトルを指定します。
U Direction
サーフェスのU方向をUpベクトルとして使用します。 これはNURBSサーフェスで非常に上手く動作します。
V Direction
サーフェスのV方向をUpベクトルとして使用します。 これはNURBSサーフェスで非常に上手く動作します。
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 と同じ軸を指定することはできません。
Up Attribute
Look Up Mode が“Up Vector Attribute from Path”の時、Look Atベクトルとして使用するサーフェス上のvector3f
Primvar(primvar:
接頭辞なし)の名前を指定します。
Roll
Look At方向を基準としたロール角度(単位は度)。
Use Snippet
VEXスニペットを使ってロールを設定します。
このスニペットでは、ロール角度をroll
変数に書き込んでください。
典型的にはAttribute Wrangle SOPで利用可能な変数を使用することができます。
@ptnum
は、拘束されている現行Primのインデックスです。
npoints(0)
を使用することで、拘束されているPrimsの総数を取得することができます。
@Frame
や@Time
を使用することで、スニペットを時間依存にすることができます。
(スニペットの最初の時点での)roll
の初期値は、 Roll パラメータが評価された値になります。
そのため、そのパラメータでエクスプレッションを使って“ベース”値を計算し、スニペットを使ってその値を修正することができます。
Examples ¶
SurfaceConstraint Example for Surface Constraint
このサンプルでは、Surface Constraint LOPの様々な使い方について説明しています。
See also |