On this page | |
Since | 18.0 |
概要 ¶
Note
ほとんどの場面では、このノードよりもGeometry Clip Sequence LOPを優先して使用してください。
USDの Value Clip とは、データセットを別々のファイルに保存する方法です。
-
これによって、膨大なデータを複数のファイルに分割することができます。 例えば、シミュレーションや他のアニメーションデータは、タイムサンプル単位でサイズが非常に大きいので、すべてのタイムサンプルを1つのファイルに編集してしまうと(必要になるネットワークの帯域幅の観点では)手に負えなくなります。
-
Value Clipは、連番またはループで実行する必要のあるアニメーションクリップのライブラリを用意するといった場合にも役立ちます。 よくあるのは、異なるPrimsでアニメーションクリップを共有したり、色々な方法でアニメーションクリップを組み立てて別のバリエーションを生成するといったことができます。
-
Value Clipは、レイヤーオーバーライドの合成を柔軟にすることができます。 USDのValue Resolution(値解決)では、アトリビュートの 任意 の
timeSample
を含んだ1番目(1番強い)のレイヤーがアトリビュートの すべて のtimeSamples
のソースであると規定しています。 たいていの場合、これで問題ありませんが、timeSampleの数が膨大になると、もっと柔軟性が必要になります。
Value Clipの挙動とその使い方を理解したいのであれば、Value ClipのUSDドキュメントを読んでください:
Note
このノードは、USDのValue Clipコンポジションアークを編集することができます。 将来のバージョンのSolarisでは、もっとハイレベルでValue Clipを扱うためツールを増やす予定です。
Note
シーンで参照可能なValue Clip定義を含んだUSDレイヤーファイルを作成するために、Value Clip LOPを使用しない別の方法は、USD Stitch Clips ROPを使用する方法です。 この手法だと、トポロジーレイヤーとマニフェストレイヤーも生成するという利点があり、Value Clipの合成のパフォーマンスを向上させることができます。
Note
.bgeo
シーケンスまたは同様の非ネイティブUSDファイルシーケンスをValue Clipとして直接読み込むことができますが、
各ジオメトリファイルが正しいタイプサンプルでUSDアトリビュートデータを生成するようにしなければなりません。
これは、時間の値をUSD Configure SOPによって生成されたDetailアトリビュートとしてジオメトリファイルに書き出すことで可能です。
または、/tmp/file.$F4.bgeo.sc:SDF_FORMAT_ARGS:sampleframe=$F
のようにジオメトリファイルパスの末尾に引数を追加することで時間の値を指定することができます。
パラメータ ¶
Primitive Path
Value Clipの参照を編集するPrimのシーングラフパス。 指定したPrimが存在しなかった場合、このノードは、PrimタイプのないPrimを作成します(このPrimタイプはValue Clipファイルから決定されます)。
Primitive Kind
Primitive Path にまだPrimが存在しなかったことで、このノードがそのPrimを作成する必要がある場合、このノードは、その新しいPrimのKindをこれに設定します。
Parent Primitive Type
Primitive Path のパスに何も親が存在しなかった場合、このノードは自動的にその親を作成します。 この場合、このタイプの親ノードが作成されます。
Clip Set
Value Clipが属する“クリップセット”の名前(単一Prim上に複数の“クリップセット”を存在させることができます)。
Clip Primitive Path
Value Clipの値にアクセスした時に Primitive Path にマッピングさせるValue Clipファイル内のPrimのパス。
Manifest File
Value Clipファイルから取り込むPrimsと値を正確に指定したオプションのマニフェストファイルのファイルパス。 このファイルを用意することで、USDフレームワークによるValue Clip解決の最適化に役立てることができます。 マニフェストファイルに関する詳細は、USDドキュメントを参照してください。
Start Frame
Value Clip解決を開始する現行ステージのフレーム。
First Clip Start Frame
これを有効にすると、Value Clipファイル内の開始時間を別の時間に設定することができます。 これを無効にすると、このノードは、 Start Frame パラメータをクリップの開始時間として使用します。
Clip Time Scale
Clipファイルから読み込まれたタイムサンプルに適用されるスケール係数。
Loop Until Frame
指定したClipファイルから繰り返しループを作成したいのであれば、このパラメータを有効にして、ループの終了フレームを設定します。 (USDはネイティブでアニメーションまたはValue Clipのループに対応していないので、このノードは、ここで指定したルール終了時間に到達するまで、用意されたすべてのValue Clipが繰り返されるように明示的に編集します。)
Loop First and Last Frames Match
アニメーションをループさせて、変形モーションブラー/トランスフォームモーションブラーを使用する時、そのループアニメーションの最初と最後のフレームが同一になっていることが重要です。 この場合、このパラメータを有効にすると、Value Clip LOPはループアニメーションの最後から最初に戻る時のクリップフレーム内に“discontinuity(不連続性)”を加えます。 このdiscontinuity(不連続性)によって、共通している最初と最後のフレームの表示の重複が回避されると同時に、予期しないモーションブラー効果も回避されます。
このオプションをオフにすると、ループする100フレームクリップの“clip times”メタデータは(1, 1), (100, 100), (101, 1), (200, 100)
となります。
このデータでは、各ペアの1番目の数字がグローバルステージのフレーム番号で、2番目の数字がそのグローバルフレームで表示されるクリップ内のフレーム番号です。
つまり、ステージフレーム1はクリップフレーム1です。ステージフレーム100はクリップフレーム100です。
そして、ステージフレーム101はクリップフレーム1に戻っています。
このデータでは問題が2つあります。
1つ目の問題は、クリップの最初と最後のフレームが同一だった場合、フレーム100とフレーム101が同一になってしまいます。
2つ目の問題は、モーションブラーを使ってレンダリングする時(シャッターの開/閉を+/-0.5で使用する時)、フレーム101のレンダリングは、フレーム100.5とフレーム101.5で補間されたデータを表示します。
しかし、USDは、クリップ内に格納されているデータではなくて、 クリップメタデータ を補間することで、これを行ないます。
そのため、フレーム101.5のデータは、期待通りになります(クリップフレーム1.5からデータを表示します)。
しかし、フレーム100.5のデータは、フレーム100とフレーム1の間のフレーム、つまり、フレーム50.5のクリップデータを取得することで生成されます。
これは明らかにまったく期待通りではありません。
このオプションをオンにすると、同じセットアップで(1, 1), (100, 100), (100, 1), (199, 100)
のクリップ時間を作成します。
1本のステージ時間100に対して2つの異なるクリップ時間が作成されていることに注意してください。
これが“discontinuity(不連続性)”です。
しかし、これによって上記の両方の問題が解消します。
ステージフレーム100はクリップフレーム100ですが、ステージフレーム101は今はクリップフレーム2になり、重複したデータが削除されています。
そして、フレーム101でモーションブラーレンダリングすると、フレーム100.5は、まったく期待した通りにフレーム0.5とフレーム1.5のクリップデータを使用します。
クリップの最初と最後のフレームが同一でない場合、フレーム間で補間データを取得する必要がないVelocityモーションブラーを使用しない限り、完璧なループを得る方法がないことに注意してください。 上記の1つ目の問題(ループの最後でフレームが重複する)は回避されますが、USDで使用されているクリップメタデータ補間の手法は、サンプリングフレーム100.5がクリップの中央からデータを返すので、その結果、正しくないモーションブラーが生成されてしまうことを意味します。
Number of Clips
1個のノードで複数のValue Clipファイルの参照を追加することができます。 参照するValue Clipの数をここに設定するか、または、プラスとマイナスのボタンをクリックしてValue Clipを追加/削除します。
Clip File or Sequence
Value Clipファイルのファイルパス。
このパスには、ループの数値置換を実行するためのハッシュ(#
)文字を含めることができます。
例えば、ディスク上にsim_0001.usd
、sim_0002.usd
といった名前のファイルが複数あって、各ファイルに1フレーム分のアニメーションが含まれていたとします。
この場合、sim_####.usd
を使用します。
数値置換は File Sequence Count が有効になっている場合にのみ機能します。
以下の File Sequence Count 、 File Index Start 、 File Index Step を参照してください。
例えば、 File Sequence Count を有効にして、 Clip File or Sequence をsim_####.usd
に、 File Index Start を10
に、 File Index Step を2
に、 File Sequence Count を3
に設定すると、このノードは、sim_0010.usd
、sim_0012.usd
、sim_0014.usd
を読み込みます。
数値置換を使用する場合、各ファイルのアニメーションの長さは同じフレーム数( File Duration )である必要があります。
File Duration
Value Clipファイルで有効となるフレーム数。 数値置換によって複数ファイルにマッチした Clip File or Sequence パスの各Value Clipファイルは、同じアニメーション長さになります。
File Sequence Count
これを有効にすると、このノードは、数値置換を使って、 File Index Start で数値を開始して、 File Index Step だけ増分して、この回数だけ Clip File or Sequence ファイル名を評価します。
File Index Start
File Sequence Count が有効な時、このノードは、数値置換を使って、この数値で開始して Clip File or Sequence ファイル名を複数回評価します。
File Index Step
File Sequence Count が有効な時、このノードは、数値置換を使って、 Clip File or Sequence ファイル名を複数回評価する度に、この数だけ増分させます。