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
Shutter モードが Use 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 が無効な時、このパラメータには、ディスク上の既存のクリップファイルのパスを指定します。
Handle Missing Files
クリップファイルがディスク上の外部ファイルの場合、これは、指定した一部のクリップファイルが存在しなかった場合のこのノードの挙動を制御します。
Error for Missing Files
ノードがエラーになり、残りのネットワークのクックを中止します。
Warn for Missing Files
ノードが警告を出し、見つからないファイルをクリップから除外します。
Ignore Missing Files
ノードは静かに見つからないファイルを無視し、見つからないファイルをクリップから除外します。
Allow Missing Files on the Stage
見つからないファイルをクリップに追加し、何も警告を出しません。 このノードとそれ以降のノードは、ファイルが見つからないことに関してUSDライブラリから警告を出します。
Reload Files
Load clip file path パラメータで指定されたUSDファイルをHoudiniに強制的にリロードさせます。
All Clip Files Have Matching Scene Graph Structure
すべてのクリップファイルが同じシーングラフ階層を持っていて、それらのプリミティブ上に同じタイムサンプルされたアトリビュートがあることが分かっている場合、このオプションを有効にします。 これによって、このノードは、すべてのクリップファイルを処理するのではなく、1個のクリップファイルだけを見ることで、マニフェストファイルとトポロジーファイルの生成を最適化することができます。
新しいオプションを活用するには、いくつかの設定が必須です:
-
Get Geometry From Second Input を無効にします。
-
All Clip Files Have Matching Scene Graph Structure を有効にします。
-
USD ROPを使用する場合、 Valid Frame Range を Render Current Frame に設定します。
Reference Topology File
生成されたトポロジーファイルは、クリップが作成されたプリミティブ上でリファレンスされます。 無効にすると、そのトポロジーファイルは、代わりにアクティブレイヤ上にサブレイヤ化されます。 この後者の手法は、トポロジーレイヤのオピニオンをリファレンスの手法よりも強くするので、そのトポロジーレイヤ上の一部のプリミティブをクリップソースパスからクリップターゲットパスに移動させる必要があります。
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
自動で生成されるトポロジーファイルが保存されるファイルパス。 このファイルには、クリップファイルからアニメーションが付いていないすべてのデータが格納されます。 Reference Topology File 設定に応じて、このトポロジーファイルは、 クリップメタデータを含んだプリミティブ上でリファレンスされたり、アクティブレイヤ上でサブレイヤ化されます。
ValueクリップファイルはUSDで構成されていないので、コンポジションアークが含まれていると、期待通りに動作しません。 トポロジーファイルは、作成された後にコンポジションアークにスキャンされるので、どれかのプリミティブにコンポジションアークが含まれていれば警告が生成されます。
Clip Set
Value Clipが属するクリップセットの名前。 1つのプリミティブ上に複数のクリップセットが存在することができます。
Clip Primitive Path
値にアクセスする時に Primitive Path にマッピングさせたいValue Clipファイル内のプリミティブのパス。
Clip Start Offset
個々のクリップファイルにサブフレームサンプルが含まれている場合、あるクリップファイルから別のクリップファイルへの切り替えが最初のサブサンプルの時に行なわれることが重要になります。 このオフセットは、そのことを考慮するために、クリップのアクティベーション時間を調整します。 通常では、 Start Frame は、各クリップファイルのステージ時間がそのクリップファイル内で使用されている時間と一致するような同量で調整する必要があります。
例を挙げると、Cache LOPを使用して、
($F-0.2, $F-0.1, $F, $F+0.1, $F+0.2)
のローリングウィンドウをキャッシュ化する場合、
このパラメータを-0.2
に設定し、 Start Frame を0.8
に設定する必要があります。
そうすることで、各クリップファイルが$F
から$F+1
ではなく$F-0.2
から$F+0.8
までアクティブになるようにクリップが作成されます。
Start Frame
Value Resolution(値解決)が開始される最初のフレーム。 このフレームより前では、クリップメタデータは用意されないので、この Start Frame に到達するまでは、USDは最初のクリップファイルに保存されている値を保持します。
End Frame
Value Resolution(値解決)が終了する最後のフレーム。 このパラメータは有効にしないと何の効果もありません。 無効にすると、このノードがクックされるすべてのフレームでクリップメタデータが生成されます。 有効にすると、クリップメタデータは、ここで指定したフレームで単に停止します(そして最後のクリップファイルの値がずっと保持されます)。または、 Loop frames が有効な場合には、前のクリップファイルが再利用されます。
Loop Frames
クリップを繰り返すループを作成するには、 End frame を設定して、このオプションを有効にします。 End Frame 後のフレームでは、クリップファイルを再利用してクリップメタデータを作成し、 End Frame に到達する度に Start Frame に戻ります。 このノードがクックされるすべてのフレームでクリップメタデータが作成されます。