On this page | |
Since | 20.0 |
概要 ¶
USDでは、データセットを別々のファイルに保存する方法として Value Clip があります。
-
このValue Clipを使用することで、膨大なデータを複数のファイルに分割することができます。 例えば、シミュレーションや他のアニメーションデータは各タイムサンプルのサイズが非常に大きいので、すべてのタイムサンプルを単一ファイルにまとめるのは(ネットワークの帯域幅を確保しなければならないなど)扱いにくいです。
-
Value Clipは、アニメーションクリップのライブラリがあって、それをシーケンスやループで実行したい場合にも役立ちます。異なるプリミティブでアニメーションクリップを共有する場合もありますが、様々な方法でそれらのアニメーションクリップを組み立ててバリエーションを作成することが多いです。
-
Value Clipは、レイヤーのオーバーライドの合成に柔軟性を持たせることができます。USDのValue Resolution(値解決)では、アトリビュートの どれか1つでも
timeSample
を含んだ最初の(最も強い)レイヤーがそのアトリビュートの すべて のtimeSample
のソースであると規定しています。 たいていの場合、これで問題ありませんが、timeSample
が膨大な数になると、もっと柔軟性が必要になることがあります。
Value Clipの挙動と利用方法を理解するために、USDドキュメントを読むべきです:
Note
このノードは、ディスク上の既存ファイル、または、このノードの2番目の入力に接続されたLOPsで生成されたデータからUSDのValue Clipを作成することができます。
このノードは、それぞれ重大な制限があるValue Clip LOPまたはUSD Stitch Clips ROPのほとんどの用途に取って代わります。 Value Clip LOPは、マニフェストファイルやトポロジーファイルを作成しません(そのため、それらのファイルが既に存在している必要があり、存在しなかった場合、USDはステージを読み込む度にそれらのファイルを再生成する必要があります)。 USD Stitch Clips ROPでは、まずUSDファイルをディスクに書き出し、その次の工程としてそのROPを実行してから、そのROPの出力を参照しなければなりません。 これらの方法のいずれとも違って、このLOPには、クリップファイルからアニメーションデータをディスクに書き出す前に、非アニメーションデータを除去する機能があります(非アニメーションデータはトポロジーファイルにのみ残ります)。 これによって、ディスク容量を大幅に節約することができます。
Note
.bgeo
ファイルまたは同様の非ネイティブUSDファイルのシーケンスは、Value Clipとして直接読み込むことができますが、各ジオメトリファイルが正しいタイムサンプルでUSDアトリビュートデータを必ず生成するようにしなければなりません。
これは、USD Configure SOPで生成されたDetailアトリビュートとして時間値をジオメトリファイルに書き出すことで可能です。
または、/tmp/file.$F4.bgeo.sc:SDF_FORMAT_ARGS:sampleframe=$F
のようにジオメトリファイルパスに接尾辞として引数を追加することで、時間値を指定することができます。
パラメータ ¶
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
入力ノードのステージ上のカメラPrimのシーングラフパス。 このPrimからShutter Open/Closeのアトリビュート値が読み込まれます。
Samples
プライマリサンプル毎に作成するサブフレームサンプルの数。 これらのサンプルは、シャッターの開時間から閉時間の間で均等に分布します。 このような均等な分布は、ちょうどプライマリサンプル時間にサンプルが作成される場合と作成されない場合があることに注意してください。
Always Include Frame Sample
このオプションを有効にすると、ちょうどプライマリサンプル時間にサンプルを作成させることができます。 シャッター開時間とシャッター閉時間のどちらの Samples 値も既にプライマリサンプル時間でサンプルが配置されている場合、このオプションを有効にしても何の効果もありません。 そうでない場合、このオプションによって、追加でサンプルが作成されます。 つまり、プライマリサンプルあたりの実際のサンプル数は、 Samples で指定されたサンプル数よりも多くなる可能性があります。
Value Clipに関するパラメータ ¶
Primitive Path
Value Clipメタデータが追加されるプリミティブのシーングラフパス。 指定したプリミティブが存在しなかった場合、このノードは、プリミティブタイプなしでプリミティブを作成します(そのプリミティブタイプは、クリップファイルから取得されます)。
Primitive Kind
Primitive Path のプリミティブがまだ存在しないためにこのノードがそのプリミティブを作成する必要がある場合、このノードは、その新しいプリミティブのKindにこれを設定します。
Parent Primitive Type
Primitive Path のパスの親プリミティブが存在しなかった場合、このノードは自動的に親プリミティブを作成します。その場合、このタイプの親プリミティブが作成されます。
Get Geometry From Second Input
このオプションを有効にすると、このノードの2番目の入力に接続されているLOPノードからクリップファイルを生成します。 クリップファイルの保存先の制御は、その入力ステージの保存パスが使用されるわけではありません。 Save Clip File Path パラメータがこれを制御します。
このオプションを無効にすると、ディスクからクリップファイルが読み込まれます。その場合、2番目の入力の接続は無視されます。
Load Clip File Path
Get Geometry From Second Input が無効な時、このパラメータには、ディスク上の既存のクリップファイルのパスを指定します。
All Clip Files Have Matching Scene Graph Structure
すべてのクリップファイルが同じシーングラフ階層を持っていて、それらのプリミティブ上に同じタイムサンプルされたアトリビュートがあることが分かっている場合、このオプションを有効にします。 これによって、このノードは、すべてのクリップファイルを処理するのではなく、1個のクリップファイルだけを見ることで、マニフェストファイルとトポロジーファイルの生成を最適化することができます。
Track Primitive Existence to Set Visibility
LOPネットワークは、フレームから次のフレームに移った時に非常に大きく異なるシーングラフを生成する場合があります。
このようなシーングラフからフレーム範囲にわたってValue Clipを作成する場合、トポロジーファイルにないプリミティブをクリップファイルで表示しても出現しないので、それらのプリミティブを固定しなければなりません。
このオプションを有効にすると、このノードは、フレーム毎にすべてのプリミティブのリストを追跡するようになり、時間の経過と共にシーンから追加されたり削除されるプリミティブに対して、アニメーションするvisibility
アトリビュートを自動的に作成します。
これによって、時間の経過と共にプリミティブが追加されたり削除されたように見せることができます。
これらのvisibility
オピニオンはトポロジーレイヤーに追加されます。
UsdGeomImageable
プリミティブのサブクラスのみがこの方法で追跡されます。その理由は、visibility
アトリビュートを評価するUSDプリミティブタイプがそれしかないからです。
All Clip Files Have Matching Scene Graph Structure
が有効な場合、シーングラフ構造の変更を処理するのにアニメーションするvisibility
オピニオンが不要であることが分かっているので、このパラメータは無効になります。
Flatten Clip Files
クリップファイルをディスクまたはこのノードの2番目の入力のどちらで読み込むのか関係なく、入力クリップファイルのレイヤーを平坦化するのは役に立ちます。 その理由は、USDのValue Clipで読み込まれるクリップファイルは合成されないからです。 USDのValue Clipはリファレンス、サブレイヤー、ペイロードのコンポジションアークに従いません。 クリップファイルに直接格納されているデータのみがValue Clipによって読み込まれます。 このオプションを有効にすると、入力が2番目の入力からまたはディスク上のファイルからのどちらなのか関係なく、 Save Clip File Path パラメータで設定されたパスを使用して、平坦化されたUSDファイルがディスクに書き出されます。
Remove Unused Data From Flattened Clip Files
このノードでクリップファイルを平坦化する場合、このオプションを有効にすることで、アニメーションデータをディスクに保存する前に、すべての非アニメーションデータがクリップファイルから削除されます(それらの非アニメーションデータはトポロジーファイルに保存されます)。 これは、自動処理であり、かなりのディスク容量を節約することができます。
Save Clip File Path
(クリップデータを2番目の入力から取得している、または、クリップファイルを平坦化するオプションが有効になっているのどちらかの理由で)このLOPからクリップファイルがディスクに書き出される場合、 このパラメータは、それらのクリップファイルの書き出し先のディスク上のパスを制御します。 LOPsで作成されるすべてのUSDデータと同様に、USD ROPまたはUSD Render ROPを使用してシーン全体を保存する時にのみ、これらのクリップファイルがディスクに書き出されます。
このパラメータは、時間で可変させることができます。 その場合、フレーム毎に別々のクリップファイルが書き出されます。 定数の場合、すべてのフレームのデータが単一クリップファイルに書き出されます。 どちらの方法もクリップデータのサイズに応じて有効です。
Manifest File Save Path
自動で生成されるマニフェストファイルが保存されるファイルパス。 このファイルには、Value Clipファイルから読み込まれているプリミティブと値がそのまま指定されます。 このファイルの内容は、クリップファイル内のタイプサンプルのアトリビュートから自動的に生成されます。
Topology File Save Path
自動で生成されるトポロジーファイルが保存されるファイルパス。 このファイルには、クリップファイルからアニメーションが付いていないすべてのデータが格納されます。 このトポロジーファイルは、クリップメタデータを含んだプリミティブで参照されます。
Clip Set
Value Clipが属するクリップセットの名前。 1つのプリミティブ上に複数のクリップセットが存在することができます。
Clip Primitive Path
値にアクセスする時に Primitive Path にマッピングさせたいValue Clipファイル内のプリミティブのパス。
Start Frame
Value Resolution(値解決)が開始される最初のフレーム。 このフレームより前では、クリップメタデータは用意されないので、この Start Frame に到達するまでは、USDは最初のクリップファイルに保存されている値を保持します。
End Frame
Value Resolution(値解決)が終了する最後のフレーム。 このパラメータは有効にしないと何の効果もありません。 無効にすると、このノードがクックされるすべてのフレームでクリップメタデータが生成されます。 有効にすると、クリップメタデータは、ここで指定したフレームで単に停止します(そして最後のクリップファイルの値がずっと保持されます)。または、 Loop frames が有効な場合には、前のクリップファイルが再利用されます。
Loop Frames
クリップを繰り返すループを作成するには、 End frame を設定して、このオプションを有効にします。 End Frame 後のフレームでは、クリップファイルを再利用してクリップメタデータを作成し、 End Frame に到達する度に Start Frame に戻ります。 このノードがクックされるすべてのフレームでクリップメタデータが作成されます。