| On this page | |
| Since | 19.5 |
概要 ¶
このノードは、USD ROPと
Sublayer LOPの機能を組み合わせて、USDをディスク上のファイルに書き出してから、入力のクックをすることなくそのファイルを読み込めるようにします。
Tips ¶
-
Cache LOPをこのノードの入力として使用することで、サブフレームサンプリングに対してもっと細かく制御することができます。
パラメータ ¶
Load from Disk
これを有効にすると、このノードは、入力をクックせずに、キャッシュディスクファイルの出力を読み込みます。 ( Caching タブにある) Save to Disk または Save to Disk in Background をクリックしてキャッシュファイルを書き出すと、 このノードは自動的にこのチェックボックスを有効にします。
Reload Geometry
強制的にファイルを再読み込みします。 また、これはパックディスクプリミティブのキャッシュデータをクリアします(geocacheコマンドも参照してください)。
File Path
これが Constructed (デフォルト)の場合、このノードは、様々なパラメータの値からキャッシュファイルパス(s)を構築するので、バージョン管理やアニメーションオプションといった機能を利用することができます。これを Explicit に設定した場合、 Geometry File パラメータ内にパスに入れたい変数( Time Dependent Cache が有効な場合は、フレーム番号も)をすべて含めた単一エクスプレッションを手動で記述する必要があります。
Base Name
File Path が Constructed の時、ここにはキャッシュファイル名の頭の部分を指定します。
デフォルトは$HIPNAME.$OS(.hip拡張子を除いた現行シーンファイル名にドットを足して、このノードの名前を足した名前)です。
このノードの名前を意味のある固有な名前にしていれば、通常ではこれはファイル/ノード間でファイル名の干渉を回避するのに十分です(2つのネットワークのどちらにもfilecache1という名前のノードが含まれている場合、干渉が起きます)。
このテキストフィールドの右側にあるドロップダウンメニューには、色々なエクスプレッションが用意されています。
File Type
デフォルトは.bgeo.scです。このファイルタイプは、どのタイプのHoudiniジオメトリも扱うことができ、圧縮をすることができるので、常にこれを使用するのが安全です。
入力内の すべての プリミティブが 常に VDBボリュームである場合、このファイルタイプを切り替えることで、それらのファイルを直接.vdbとして保存することができます。
File Type を.vdbに設定すると、このノードは、HoudiniのPrimiriveアトリビュートをVDBグリッドメタデータに、Detailアトリビュートをファイルメタデータに変換します。
Base Folder
File Path が Constructed の時、ここにはキャッシュファイルが保存されるフォルダを指定します。
デフォルトは$HIP/geo(現行シーンファイルと同じディレクトリ内のgeoフォルダ)です( Version を有効にすると、この基本フォルダの中にさらにディレクトリレベルが追加されます)。
Open Directory
クリックすると、 Base Folder の内容がファイルマネージャで表示されます。 これは、古いキャッシュファイルをクリーンアップしたい時に役立ちます。
Version
File Path が Constructed で、左側にあるチェックボックスを有効にすると、このノードは、キャッシュファイルパス(s)にバージョンを示したディレクトリレベル(とファイル名部分)を追加します。 これによって、複数のバリエーションの入力ネットワークをキャッシュ化することができます。
Caching ¶
Save to Disk
最近のコントロール設定を使用してジオメトリをディスクに保存します。
Save to Disk in Background
TOPネットワークを使用して、別々のバックグラウンドプロセスでクックしてキャッシュファイルをディスクに保存します。 これによって、Houdiniの他の部分で作業を続けることができます。 キャッシュ化されたフレームは、そのフレームが他のプロセスによって完了すると現れます。
Cancel Cook
すべてのバックグラウンドキャッシュプロセスを停止します。
Tip
これらのボタンを誤ってクリックしてキャッシュを再構築してしまわないように、このセクションを“安全ロック”として折り畳むと良いでしょう。
Evaluate As
これが Frame Range の時、このノードはフレーム毎にキャッシュファイルを書き出します(以下のStart/End/Incを参照してください)。 一度にすべてのフレームを事前生成したくない場合、または、変更された単一フレームだけを再生成すれば良いと分かっている場合、 これを Single Frame に設定すると良いでしょう。 Single Frame に設定すると、このノードは現行フレーム(または Override Frame で設定したフレーム)のキャッシュファイルのみを書き出します。
Override Frame
Evaluate As が Single Frame で、左側にあるチェックボックスを有効にすると、タイムラインの現行フレームではなく、ここで明示的に指定したフレーム番号のフレームがキャッシュ化されます。
Start/End/Inc
レンダリングするフレーム範囲(開始フレーム、終了フレーム、増分値)を指定します。すべての値には浮動小数点の値を指定することができます。その範囲の値を含みます。
これらのパラメータが出力ドライバのローカル変数の値を決めます。
$NRENDER
出力ドライバでレンダリングされるフレーム数。
$N
レンダリングされている現行フレーム(1から始まり、$NRENDERで終わります)。
Substeps
Evaluate As が Frame Range の時、ここには、各フレームを分割する小数サブフレームの数を指定します。
サブフレームをキャッシュ化すると、キャッシュ化されたアニメーションジオメトリのモーションブラーレンダリングの品質が良くなります。
Substeps に1より大きい数を設定し、 File Path を Explicit に設定した場合、明示的に指定するパスエクスプレッション内に$F(整数フレーム番号)の代わりに$T(単位が秒の浮動小数点時間)または$FF(小数フレーム番号)を使用することで、小数フレームを扱うことができます。
Scheduling ¶
Custom TOP Scheduler
このパラメータは、このノードのTOPスケジューラを上書きします。
USD ¶
Save Style
このノードは、USDファイルを書き出す前に、レイヤスタックに何かしらのトランスフォームを適用することができます。 このトランスフォームは最終的に合成されたステージに何も影響せず、生成されるレイヤファイルの数に影響するだけです。
Flatten Implicit Layers (Collapse Implicit Sublayers, Preserve References)
デフォルト。匿名In-Memoryレイヤを一番近いファイルパス付き下位レイヤ上に合成します(そのため、このノードは、ファイルパスメタデータを持ったすべてのレイヤを別々のUSDファイルに書き出します)。 これは、参照、バリアント、他のコンポジションアークを維持します。
Flatten All Layers (Combine All Sublayers, Preserve References)
これは、すべてのレイヤ(匿名レイヤとファイルパス付きレイヤの両方)を単一レイヤに合成します。 これは、参照、バリアント、他のコンポジションアークを維持するので、外部ファイルが参照されている場合には、このノードは2つ以上のファイルを書き出します。
Separate Layers (Preserve All Sublayers and References)
どのようにレイヤを構成していようがすべてのレイヤを合成しません。 匿名In-Memoryレイヤでさえもそれ自身のファイルに保存されるようになります(匿名レイヤの保存を試みたことが原因でこのノードがエラーを出さないよう Error Saving Layers With Implicit Paths を無効にしてください)。
これは、デバッグで役立ちます。 特に、ノードのデバッグフラグと組み合わせて各LOPノードの挙動を調べる時です。
このノードは、ファイルパスメタデータが設定されていないレイヤを書き出す必要がある時、そのレイヤを生成したノードのノードパスなどの情報に基づいて自動的に相対ファイルパスを生成します。
Flatten Stage (Collapse All Sublayers and References)
これは、すべてのレイヤを単一ステージに平坦化し、すべてのコンポジションアークさらにはバリアント選択までも“ベイク”します。 これによって、レイヤ由来のオピニオンなどの情報や未使用のバリアントが破棄されます。 これは、単一USDファイルを書き出します。
これは、“ヒストリーを削除”し、レイヤや参照などから何もファイルが合成されていないようにしたい場合に役立ちます。
Tip
“ヒストリーを維持”したいものの、単一ファイルの利便性と携帯性が必要なのであれば、USD Zip ROPを使って
.usdzファイルを生成してください。
Flush Data After Each Frame
これを有効にすると、このノードは、各フレームのデータをディスクに書き出した後にLOPネットワークをクックして次のフレームのデータを生成します。 これを無効(デフォルト)にすると、このノードは、すべてのフレームのデータをメモリ内でクックしてから、アニメーションファイルすべてを一度に書き出します。 このオプションを有効にすると、常に単一フレーム分のデータのみがRAMに格納されるので、制限なく大きなUSDファイルを生成することができます。 しかし、各フレームの保存が少し遅くなってしまい、USDファイルは既存ファイルに新しいデータを追加する方法であるので、生成されるファイルが大きくなる可能性があります。 上記のアニメーションの保存を参照してください。
このオプションを有効にすると、このROPはフレーム毎に別々にUSDファイルを生成することもできます。 これをするには、各フレームが固有の名前でファイルを書き出せるように、 Output File パス(と他のレイヤ保存パス)内に現行フレーム番号を示すローカル変数を埋め込みます。例:
$HIP/usd/scene_$F4.usd
詳細は、ファイル名のエクスプレッションを参照してください。
Error Saving Layers with Implicit Paths
これが有効(デフォルト)な時、匿名In-Memoryレイヤ(つまり、ファイルパスメタデータが設定されていないレイヤ)をディスクに書き出そうとすると、このノードはエラーになります。
通常では、デバッグ用途で Save Style ▸ Separate Layers (Preserve All Sublayers and References) を使ってすべてのレイヤを別々に書き出す場合にのみ、これを無効にしてください。
Strip Layers Above Layer Breaks
このオプションを有効にすることで、Layer Breakノードより上流で編集されたレイヤがこのROPでディスクに書き出されないようにすることができます。 これによって、Layer BreakノードはLOPネットワークのどの部分を保存するのか指示することができます。 このオプションを無効にすることで、この挙動がオーバーライドされて、LOPネットワークで編集された全ステージを強制的にディスクに書き出すことができます。 これは、デバッグ用途で使用したり、レンダリングするために完全なシーンをディスクに書き出す際に使用します。
Use Relative Paths
デフォルトでは、これが有効になっています。
このプロセッサは、レイヤファイル内の絶対ファイルパスを相対パスに変更します。
これによって、ソースファイルからのレイヤファイルの読み込みには$HIP/usd/foo.usdといったパスを使用することができ、レイヤファイルの書き出し時にはそのソースファイルを基準に相対パスで書き出すことができます。
これは、推奨されている運用方法なので、このプロセッサは削除しないほうが良いです。
Save All File to Specific Directory
すべての出力ファイルが保存されるフォルダ。
Save Paths Relative to Output Path
Save Path パラメータに指定されている相対パスを、出力ファイルの保存先を基準としたパスとして扱います。 これによって、LOPネットワークが生成するすべてのファイルを共通のルートディレクトリ下に簡単に保存できるようになります。 出力ファイルの保存先を変更すると、他のすべてのファイルの保存場所が暗黙で変更されます。
Use Search Paths
このプロセッサは、Search Pathパラメータを使用します。 各アセットパスは、そのSearch Pathパラメータにリストされているディレクトリと比較されます。 そのアセットがその検索パスリストのどれかの中に入っていれば、そのアセットは、絶対パスや相対パスではなく検索パスを使用して参照されます。
Match Output Layer Extension
通常では、出力ファイルの拡張子を変更しても、その変更が反映されるのは“トップレベル”の出力ファイルだけです。
その他のすべての外部ファイルは、その出力ファイルに埋め込まれている保存パスと拡張子のままで書き出されます。
このプロセッサは、その出力ファイルの拡張子に合わせてすべてのパスの拡張子を変更します。
つまり、出力ファイルの拡張子を.usda(テキストフォーマット)に変更すると、このプロセッサがアクティブであれば、すべての外部USDファイルの拡張子も.usdaに切り替わります。
Number of Options
このノードからファイルを書き出す時にのみ適用するコンテキストオプションを指定することができます。 定義/オーバーライドするコンテキストオプションを数を設定するか、または、プラスとマイナスのボタンを使ってコンテキストオプションを追加/削除します。
例えば、異なるコンテキストオプションが指定された2つの別々のUSDレンダーノードを用意すれば、エクスプレッションで@contextoption参照を使用することで、同じLOPネットワークから異なるUSDを書き出すことができます。
これは、Wedge化(バリエーション生成)するのに役立ちます。
または、インタラクティブ性には欠けるもののディスクに書き出す方法でLOPネットワークがステージを構成するようにさせたい場合に役立ちます。
Option Name
各オプションの名前。
エクスプレッションに@‹name›を使用することで、このオプションを参照することができます。
Option Type
各オプションに格納するデータのタイプ。 浮動小数点または文字列のどちらかを指定することができます。
Option Value
(このノードがUSDを書き出す時の)各オプションの値。
Advanced ¶
Enable Load from Disk on Save
Save to Disk または Save to Disk in Background をクリックした時に、このノードが Load from Disk を自動的に有効にするかどうか。
Harden Base Name on Save
File Path が Constructed で、これが有効になっていると、 Save to Disk または Save to Disk in Background をクリックした時に、このノードは Base Name 内のエクスプレッションをリテラル文字列に自動変換します。 これによって、シーンファイルまたはノードを複製したり名前を変更しても、キャッシュは壊れません。
Create Intermediate Directories
キャッシュファイルを書き出す時、そのファイルパス内の中間ディレクトリが存在しなければ、そのディレクトリを自動的に生成します。
Alfred Style Progress
ファイルの書き込みが何パーセント完了したかを示す値です。これは、PixarのAlfredレンダーキューが求めるスタイルになります。
Save in Background
1つ以上のフレームを保存する場合、バックグラウンドスレッドに保存します。 これにより、ファイルが大きなサイズでも保存が速くなりますが、保存が完了するまで出力ジオメトリが保持されるため、メモリの使用量が多くなるかもしれません。
Save Retries
ディスク書き込みエラーによりジオメトリをディスクに保存できない場合、Houdiniでは普通、出力ノードがすぐにエラーになります。 保存エラーが回復できないような不正パスを表しているほとんどの場合で妥当といえます。 しかし、ネットワークの問題でファイルが保存できない場合もあります。 保存リトライ数がゼロでない場合、Houdiniはこのパラメータで指定された回数を再保存しようとします。 毎回、保存エラーのコンソールへ出力が行なわれ、ネットワークの回復を期待して5秒間の待機があります。
Render with Take
レンダリング時に特定のテイクの設定を使用します。レンダリング時に現行テイクを使用する場合は、 Current を選択します。
Missing Frame
このノードがキャッシュファイルを見つけることができなかった場合(または、正しく読み込むことができなかった場合)にこのノードの( Load from Disk モードの)挙動を指定します。 Report Error は、このノードにエラーを設定して、以降のネットワークがクックされないようにします。 これによって、問題が発生した時にどのノードがエラーなのか分かりやすくなります。 No Geometry (デフォルト)は、このノードにエラーではなく警告を設定し、空っぽのジオメトリを出力します。 これは、見つからなかったキャッシュファイルの扱い方をネットワーク側で制御したい場合や、それらのキャッシュファイルが重要でない場合に役立ちます。
Load Retries
ディスク書き込みエラーが原因でディスクからのジオメトリの読み込みが失敗した場合、通常ではHoudiniは即座に出力ノードにエラーを出します。 これは、その読み込みの失敗がそもそも解決しようのない不正パスだったことを意味するほとんどの場合において望ましい挙動です。 しかし、ネットワークの問題が原因でファイルの読み込みに失敗する場合があります。 Load Retries の回数が0でない場合、Houdiniは、この回数まで読み込みを再試行します。 再試行の度に読み込み失敗のメッセージをコンソールに出力し、ネットワークが復旧することを期待して5秒間待機します。
Pre-fetch Geometry
次に必要なフレームを予測して、バックグラウンドでそれを読み込もうとします。 これにより、計算をファイルIOとオーバーラップさせることができます。
複数のフレームをブレンドする場合は、 Cache Frames が、次の新しいフレームだけをクック毎に読み込むのに十分な大きさである必要があります。 そうしないと、その先読みをする単純な予測モデルが混乱して動作を停止してしまいます。
スクリプトコマンドは、様々な実行タイミングで実行されるように指定することができます。 スクリプトコマンドがHScriptまたはPythonのどちらで実行されるのかは、スクリプトパラメータで選択されているエクスプレッション言語で決まります。
スクリプトコマンドを実行する前に、このノードが自動でグローバル現行ノードに設定されます。
ファイルからステートメントを実行したいのであれば、.cmd拡張子(エクスプレッション言語が Hscript に設定されている場合)または.py拡張子(エクスプレッション言語が Python に設定されている場合)が付いたファイルのパスを指定します。
そのスクリプトファイルには、追加で引数を指定することもできます。引数は、シェルライクな方法で解析されます。
Pre-Render Script
任意のレンダリング前に、このスクリプトを実行します。
Pre-Frame Script
各フレーム前に、このスクリプトを実行します。
Post-Frame Script
各フレーム後に、このスクリプトを実行します。
Post-Render Script
すべてのレンダリング後に、このスクリプトを実行します。
これらのパラメータにエクスプレッションを使用することで、上級ユーザは、このノードがキャッシュファイルパスを生成する方法を細かくカスタマイズすることができます。 ただし、エクスプレッションを編集すると、このノードの挙動が簡単に壊れてしまう場合があります。 基本パラメータでも十分にカスタマイズできるので、 これらのエクスプレッションのカスタマイズを試みない ことを推奨します。 とはいえ、スタジオ全体の慣例に準拠させる必要がある場合などは、これらのエクスプレッションを利用して構いません。
Version String
パスの“バージョン”部分を生成する(v接頭辞を含んだ)エクスプレッションを格納します。 このエクスプレッションを編集しないでください。
Cache Folder
キャッシュファイルの親ディレクトリパスを生成するエクスプレッションを格納します。 このエクスプレッションを編集しないでください。
Cache Name
キャッシュファイルのファイル名を生成するエクスプレッションを格納します。 このエクスプレッションを編集しないでください。
Descriptive Label
ネットワークエディタ内でこのノードの隣に(ノード名とバッジの下に)表示される 説明用テキスト を生成するエクスプレッションを格納します。このテキストには、キャッシュファイル名のパターンが設定されます。 このエクスプレッションを編集しないでください。
Output File
現行フレームのキャッシュファイルの解決済みフルパスを生成するエクスプレッションを格納します。 このエクスプレッションを編集しないでください。