| On this page | |
| Since | 18.0 |
Solarisの拘束 ¶
現在のところ、USDは拘束に対応していません。 パラメータ拘束は、説明的、不変、常に同じ結果を返すというUSDの設計思想におそらく反します。
USDを生成するUSD上のレイヤとして、LOPネットワークは動的拘束を計算して、そのUSDをディスクに書き出す度にそのタイムサンプルでその結果を“ベイク”することができます。
メモとTips ¶
-
入れ子化されたポイントインスタンスをソース(パスに拘束するもの)として使用することが できません 。
-
入れ子化されたポイントインスタンスをパスとして使用することが できます 。
-
デフォルトでは、(例えば、
SOP Importまたは
SOP Createを経由して)SOPsから取り込まれたジオメトリのPointアトリビュートはUSDに取り込まれます。 そのため、SOPsでアトリビュート(例えば、Upベクトルアトリビュート)をセットアップしておけば、それらのアトリビュートをこのノードで使用することができます。
-
VEXスニペットでは、コロン(
:)を含んだ@変数名を使用することができます。これによって、特定のUSDアトリビュート名(例えば、i@primvars:foo)を自動的にバインドするのが簡単になります(通常、このような名前はVEXソースコード内では有効ではありません。このような名前がスニペット内で使用されると、このノードが自動的にその名前をエンコードします)。
パラメータ ¶
Sampling Behavior
このノードがクックされると、現行時間にただ1個のUSDタイムサンプルを生成するのではなく、たくさんのUSDタイムサンプルを生成することができます。
これは、このノードの後にCache LOPを接続することと同様ですが、こちらの方が非常に高速に評価され、他のノードからのデータをキャッシュ化しません。
これによって、以降のすべてのノードも時間依存にしてしまうノード時間依存を導入することなく、アニメーションデータをUSDで作成することができます。
その結果、一部のLOPネットワークの再生パフォーマンスを大幅に向上させることができます。
どのサンプリングモードでも、このノードのパラメータが時間と共に可変しない、且つ、ステージ上の他のタイムサンプルデータに依存していない場合、 呼応するアトリビュートに対して単一デフォルト値のみがUSD内で生成されます。 時間と共に可変するパラメータに対してのみUSDタイムサンプルが生成されます。
Sample Current Frame
現行時間に対して単一タイムサンプルが作成されます。
Sample Frame Range If Input Is Not Time Dependent
このノードの入力が時間依存の場合、このノードは、 Sample Current Frame モードと同様の挙動をします。 そうでない場合、このノードは、 Sample Frame Range モードと同様の挙動をします。
Sample Frame Range
Start/End/Inc パラメータを使用して、このノードのパラメータが評価される時間に対して複数の時間を生成し、それらの各時間においてアトリビュート毎にUSDタイムサンプルが作成されます。
Start/End/Inc
Sampling Behavior が Sample Frame Range の場合、このパラメータは、このノードで生成されるベースタイムサンプルの数と間隔を制御します。
このパラメータのデフォルト値は、@fstart、@fend、@fincです。
これらの値は、Houdiniを操作する時のグローバルHoudiniアニメーション設定の開始フレーム、終了フレーム、ステップサイズに相当します。
ROPノードを使用してフレーム範囲を生成した場合、これらの値は、実行したそのROPノードで指定された開始フレーム、終了フレーム、ステップサイズに相当します。
このデフォルトは、ディスクに書き出されるUSDファイルに、(Houdiniアニメーション設定に関係なく)ROPで指定されたフレーム範囲ちょうどのタイムサンプルを含めます。
Subframe Sampling
このノードで生成されたプライマリサンプル毎に、これらのパラメータは、そのプライマリサンプル時間付近に追加でサンプルを生成させることができます。 これは、プライマリサンプル時間だけでなく、カメラシャッターの開閉時間ちょうどにも正確なデータが存在することを保証するために非常によく使用します。
Shutter
プライマリサンプル時間を基準にシャッターの開閉時間を指定するのに使用されるメソッドを制御します。
Specify Manually
Shutter Open/Close パラメータの値で、プライマリサンプル時間を基準とした正確なオフセット値を指定します。
Use Camera Prim
Camera Prim パラメータで、シャッターの開閉時間が抽出されるカメラPrimのシーングラフパスを指定することで、プライマリサンプル時間を基準としたオフセット値を指定します。
Shutter Open/Close
Shutter モードが Specify Manually の場合、ここの2つのオフセット値がプライマリサンプル時間に追加され、シャッターの開閉時間が指定されます。 シャッターの開時間は0以下に、閉時間は0以上に設定してください。
Camera Prim
Shutter モードが Use Camera Prim の場合、ここには、入力ノードのステージ上のカメラPrimのシーングラフパスを指定します。 このPrimからShutter Open/Closeのアトリビュート値が読み込まれます。
Samples
プライマリサンプル毎に作成するサブフレームサンプルの数。 これらのサンプルは、シャッターの開時間から閉時間の間で均等に分布します。 このような均等な分布は、ちょうどプライマリサンプル時間にサンプルが作成される場合と作成されない場合があることに注意してください。
Always Include Frame Sample
有効にすると、ちょうどプライマリサンプル時間にサンプルを作成させることができます。 シャッター開時間とシャッター閉時間のどちらの Samples 値も既にプライマリサンプル時間でサンプルが配置されている場合、このオプションを有効にしても何の効果もありません。 そうでない場合、このオプションによって、追加でサンプルが作成されます。 つまり、プライマリサンプルあたりの実際のサンプル数は、 Samples で指定されたサンプル数よりも多くなる可能性があります。
Type
ソース(パスに追従するように拘束されるもの)が通常Primまたはポイントインスタンスのどちらかなのかを指定します。 入れ子化されたポイントインスタンスをソースとして使用することが できません 。
Source
Source Type が Primitive の時に使用するPrimのシーングラフパス。
Source Instances
Source Type が Point Intance の時に使用するポイントインスタンスを/‹path›[‹instance_index›]構文で指定します(例えば、/geometry/instancer[1])。
Target Source
追従するパスカーブの取得先。1番目の入力または2番目の入力のどちらなのかを指定します。
Type
パスが通常Primまたはポイントインスタンスのどちらなのかを指定します(入れ子化されたポイントインスタンスをターゲットとして使用することが できます )。
Target
Target Type が Primitive の時に使用するPrimのシーングラフパス。
Target Instance
Target Type が Point Intance の時に使用するポイントインスタンスを/‹path›[‹instance_index›]構文で指定します(例えば、/geometry/instancer[1])。
Hide Target
Target Source が First Input 、 Type が Primitive の時、そのパスの可視性を“hidden”に設定します。
Import Time
ソース/ターゲットのジオメトリを埋め込みSOPネットワーク内に取り込んで拘束を構築する際のフレームを指定します。
デフォルトの$FFエクスプレッションは、ソースまたはターゲットのPrimsを駆動させるタイムサンプルを持った時間依存ではないネットワーク上で拘束LOPを動作させるため、その拘束LOPを強制的に時間依存にします。
しかし、タイムサンプルを持たない時間依存ではないネットワークでパフォーマンスを良くするには、代わりに静的な値を使用することを推奨します。
Maintain Local Offset
これを無効にすると(デフォルト)、ソースオブジェクトは、それが追従するパス上にスナップします。 これを有効にすると、ソースオブジェクトは、パスの形状に追従した時と同じ相対距離でソースオブジェクトとパスの間を維持します。
Parametrization
Position 値をパスにマップする方法。
Normalized Distance
0をカーブの開始位置、1をカーブの終了位置にします。
中間の小数点値は、カーブの円弧長で除算されます。
Normalized Knots
0をカーブの開始位置、1をカーブの終了位置にします。
中間の小数点値は、ノット/編集ポイント間の距離で除算されます。
例えば、ポリラインが5つのポイントを持っている(2つの端点、3つの内部コーナー)場合、それぞれのポイントにおける距離は、順番に0.0, 0.25, 0.5, 0.75, 1.0となります。
Distance from Start
Position をカーブの 開始点 からの円弧長(ワールド単位)として使用します。
Distance from End
Position をカーブの 終了点 からの円弧長(ワールド単位)として使用します。
Distance Point Attribute
Primvarからカーブ内の各ポイントにおける“距離”値を取得します。
Primvarは必ずvector3でなければなりませんが、1番目のコンポーネント(X)のみが使用されます。
このX値は、カーブに沿って単調に増加させないと、まったくおかしな結果になってしまいます。
Distance Attribute
Parameterization が Distance Point Attribute の時、距離値を含んだPrimvarの名前(primvar:接頭辞を含みません)。
Primvarは必ずvector3でなければなりませんが、1番目のコンポーネント(X)のみが使用されます。
Position
パスに沿ったソースオブジェクトの配置位置。
パスに沿ってソースオブジェクトをアニメーションさせたいのであれば、ここには、現行フレーム($F)または時間($T)に基づいたエクスプレッションを指定してください。
例えば、 Parameterizaiton が Normalized Distance であれば、ここには$F/100のようなエクスプレッションを設定することができます。
Use Snippet
VEXスニペットを使って位置を設定します。
このスニペットでは、位置の値をpos変数に書き込んでください。
典型的にはAttribute Wrangle SOPで利用可能な変数を使用することができます。
@ptnumは、拘束されている現行Primのインデックスです。
npoints(0)を使用することで、拘束されているPrimsの総数を取得することができます。
@Frameや@Timeを使用することで、スニペットを時間依存にすることができます。
(スニペットの最初の時点での)posの初期値は、 Position パラメータが評価された値になります。
そのため、そのパラメータでエクスプレッションを使って“ベース”値を計算し、スニペットを使ってその値を修正することができます。
Look At Mode
ソースオブジェクトが向く方向を計算する方法。
None
どこにも向かないようにソースオブジェクトを回転させません。
Along Path
パスカーブの接線方向に向けます。通常ではこれがあなたの求めているものなので、オブジェクトがカーブに追従しているような見た目になります。
Direction Attribute from Path
カーブ上のvector3f Primvarを使って、各ポイントでのLook Atベクトルを指定します。
From Primitive
特定のPrimに向くようにソース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 Path の時、Look At方向として使用するvector3f Primvarの名前(primvar:接頭辞を除く)。
Look Up Mode
Upベクトルの計算方法。
Up Vector Attribute from Path
カーブ上のvector3f Primvarを使って、各ポイントでのUpベクトルを指定します。
Along Path
パス接線をUpベクトルとして使用します。
X Axis
ワールド+X方向をUpベクトルとして使用します。
Y Axis
ワールド+Y方向をUpベクトルとして使用します。
Z Axis
ワールド+Z方向をUpベクトルとして使用します。
From Primitive
ソースPrimがカーブに沿って移動する時に、Upベクトルが特定のPrimの方へ向くようにソースPrimを回転させます。
Custom
Up Vector Attribute from Path パラメータのベクトルを使用します。
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 Upベクトルとして使用するvector3f Primvarの名前(primvar:接頭辞を除く)。
Roll
Look At方向を軸としたロール角度(単位は度)。 例えば、これを使用することで、ソースオブジェクトがカーブを軸として周った時に“バンク”をアニメーションさせることができます。
Use Snippet
VEXスニペットを使ってロールを設定します。
このスニペットでは、ロール角度をroll変数に書き込んでください。
典型的にはAttribute Wrangle SOPで利用可能な変数を使用することができます。
@ptnumは、拘束されている現行Primのインデックスです。
npoints(0)を使用することで、拘束されているPrimsの総数を取得することができます。
@Frameや@Timeを使用することで、スニペットを時間依存にすることができます。
(スニペットの最初の時点での)rollの初期値は、 Roll パラメータが評価された値になります。
そのため、そのパラメータでエクスプレッションを使って“ベース”値を計算し、スニペットを使ってその値を修正することができます。
Examples ¶
FollowPathConstraint Example for Follow Path Constraint
このサンプルには、Follow Path Constraint LOPの色々な使い方が含まれています。
| See also |