DOP Network ObjectはDOPシミュレーションを格納します。 シミュレーションは、あらゆる数のシミュレーションオブジェクト(/obj内で表示されているObjectsのことではありません)で構成することができます。 これらのシミュレーションオブジェクトは、このノードに格納されているDOPノードによって構築・制御されます。
キャッシュ化オプションやタイムステップコントロールなど、シミュレーション全体における制御が、このノードに用意されています。 また、このノードのTransformパラメータを使ってシミュレーション全体をトランスフォームすることができます。 このレベルでシミュレーションをトランスフォームしても、全くシミュレーションには影響は与えません。 Transformは、シミュレーションが発生した後に適用されます。
Tip
キャッシュ化した流体の再生を改善するには、 Simulation タブにある Cache Memory を増やしてください。
パラメータ ¶
Playback Simulation
DOP Networkをシミュレーションファイルのプレイヤーにします。 playbackモードを有効にすると、DOP Networkの結果が選択したシミュレーションファイルになります。 ネットワークの内部ノードは無視されます。 このオプションを使用して再生するシミュレーションファイルを作成する方法は、DOP Network内にOutputノードを作成することです。
Simulation ¶
Reset Simulation
シミュレーションキャッシュ全体をクリアします。ビューポートでDOP Networkを見ているときは、 右手側のビューポートの上部にあるボタンがアクティブになります。そのボタンを押すと Reset Simulation ボタンを押したときと全く同じ動作が実行されます。
Display
シミュレーションをビューポート内に表示するかどうか。
Initial State
シミュレーションの初期状態として使われるファイルの名前。 このファイルは、File DOPまたはDynamics Output Driverのどちらかが作成したシミュレーション状態ファイルでなければなりません。 このパラメータが設定されると、このネットワーク内のDOPノードは最初のシミュレーションタイムステップで処理されません。
Timestep
シミュレーションのタイムステップの長さをコントロールします。 通常この値をフレームタイムの数倍にしますが、必須ではありません。 より大きいタイムステップを指定すると、シミュレーションは高速になりますが精度が低下し、安定性にも欠けます。 タイムステップが小さければ結果はより美しくなりますが、計算時間が遅くなります。
Substeps
デフォルトのタイムステップエクスプレッションは、このパラメータを使って、DOPシミュレーションが各フレームで 実行するサブステップ数を制御します。タイムステップで1/$FPSパラメータで作業するよりも簡単に調整することができます。
Offset Time
このシミュレーションのためのシミュレーション時間とプレイバーに表示されるグローバル時間の間のオフセットを秒で指定します。
パラメータを1に設定すると、このシミュレーションはフレーム25までクッキングを開始しません。
グローバル時間が1秒の場合、シミュレーション時間は0になります。
doptime
などのいくつかのエクスプレッション関数は、グローバル時間からシミュレーション時間へ、またそのシミュレーション時間からグローバル時間へ変換するためにあります。
Start Frame
デフォルトのオフセット時間エクスプレッションは、このパラメータを参照して、適切にオフセット時間を設定します。 これで、開始時間を秒ではなくフレームで設定することができ、一部のケースにおいてより直接的に行なうことができます。 開始フレームを24に設定すると、シミュレーションはフレーム24までクッキングを開始しません。
Note
これを使うと、$SFおよび$Fは、シミュレーション内部と同じものを参照しなくなります。
Scale Time
このDOP Network用にグローバル時間をシミュレーション時間に関連付けるスケール係数を指定します。
1より大きい値は、シミュレーション時間がグローバル時間よりも高速に進むことを意味します。
1未満の値は、シミュレーションがグローバル時間を基準にスローモーションで実行されるようになります。
doptime
などのいくつかのエクスプレッション関数は、グローバル時間からシミュレーション時間へ、またそのシミュレーション時間からグローバル時間へ変換するためにあります。
Max Feedback Loops
異なるソルバを使っているシミュレーションオブジェクトが相互Affector(クロスオブジェクトやRBDオブジェクト)に設定されている時、 このパラメータは、2つのソルバの解決を試みながら反復を実行するための最大数をコントロールします。 異なるソルバが相互Affectorである状況で、この数を増やすと、満足のいくシミュレーション結果に到達する可能性が高くなりますが、シミュレーション計算時間も増加することになります。
流体シミュレーションのケースでは、流体は適用されたフィードバックフォースに適応することができないので、 高い値ではなく2の値を使ってください。値が大きいと流体が不自然に強くなり、相当な時間がかかります。
Enable Automatic Resimulation
DOPシミュレーション内のパラメータを変更した時、あるいは参照した外部ノードを変更した時、 シミュレーションのキャッシュは無効とマークされます。 このパラメータがオンの場合、次にシミュレーション時間が0に到達するようにプレイバーを動かすと、キャッシュがクリアされ、最初のシミュレーションタイムステップが再計算されます。 シミュレーション時間が0の時にキャッシュが無効化される場合、初期状態が即座に再計算されます。 現行時間が時間0を超えている場合、一番最近のタイムステップが再クックされ、現行時間を超えたキャッシュがクリアされます。 しかし前のタイムステップは全て無効とマークされる以外は着手されないまま残ります。 このパラメータがオフの場合、キャッシュは全く同じ方法で無効であるとマークされますが、キャッシュが自動的にクリアされることは決してありません。 このモードでシミュレーションを再クックするには、このパラメータダイアログ上、またはビューポート上部にある Recook Simulation ボタンを使わなければなりません。
Provide Data Hints
シミュレーションデータ関係がスクリプトディレクトリにあるdophints.cmdと呼ばれるファイルに保存できるように規則化します。 このオプションがオンなら、各タイムステップの終わりに、シミュレーション状態がそのファイル内のルールと比較されます。 ルールが破られた場合、それに該当するDOPノードに警告が追加されます。 これは、DOPの使い方を学習する時、またはシミュレーションの問題をデバッグする時に非常に役に立ちます。 このオプションをオフにすると、各タイムステップの終わりに、この動作確認ステップがスキップされるので、シミュレーションのパフォーマンスが改善します。
Interpolate Display Data
グローバル時間をシミュレーションのタイムステップ境界と並んでいない値に設定すると、 このパラメータは、どのようにシミュレーションを表示するべきかを制御します。 このパラメータがオフの場合、最も近いシミュレーションタイムステップの内容が表示されます。 このパラメータがオンの場合、直前および次のシミュレーションタイムステップの内容が補間されて、現行時間に実際にあったようなシミュレーションの近似値を作成します。 このオプションによって、たとえシミュレーションのタイムステップがグローバルフレーム時間と並んでいないとしても、シミュレーションをビューポートにスムーズに表示させることができます。
Cache ¶
Cache Simulation
シミュレーションキャッシュを有効にします。このオプションを有効にしない限り、ソルバの多くは適切に動作しません。 しかし、非常に大規模なシミュレーションにおいては、このオプションを無効にすると、シミュレーション用のメモリ使用量が確実に最小になります。
Compress .sim Files
キャッシュ化用にディスクに書き出される.simファイルを圧縮するかどうかを決定します。 圧縮すると、ディスクのサイズを大幅に削減することができますが、キャッシュ化する時間もまた大幅に増加します。 キャッシュの読み込みまたは書き出しが遅いと感じたら、特に流体シミュレーションでは非圧縮の.simファイルを使ってみてください。
Allow Caching To Disk
メモリにおけるキャッシュの最大サイズに到達した場合、DOP Networkは、新しいエントリー用に古いキャッシュエントリーの削除、または古いエントリーをディスクへ保存のどちらかを行なうことができます。 もしこのオプションがオンである場合、古いキャッシュエントリーがディスクに保存され、必要であればディスクから再読み込みされます。 このモードでは、単に古いキャッシュエントリーを破棄するよりも速度は遅くなりますが、内部メモリキャッシュサイズに関係なく常にシミュレーション履歴全体を確実に使用することができます。
Cache to Disk in Non Interactive Sessions
HScriptまたはHythonといった非インタラクティブセッションにおいては、シミュレーション履歴全体を利用したくはないことも多いでしょう。 デフォルトの挙動は、Allow Caching to Diskを無視して、ディスクにキャッシュ化しないことです。 この挙動は、このトグルで上書きすることができます。 ディスクに古いシミュレーション状態を保存すると、処理が非常に重くなることがしばしばあり、その結果に関してプレイバーをスクラブしてはいないので、ディスク容量の無駄です。
Cache Substep Data
一部のソルバは、より良い結果を得るために、独自の時間の内部サブサンプリングを実行します。 このオプションは、この内部サブサンプリング中に作成されたサブステップデータに関し、キャッシュの一部として保存するべきかどうか、またはシミュレーションのタイムステップが計算を 終了したら即座に破棄するべきかを制御します。このオプションをオンにしておくと、デバッグ目的やサブタイムステップデータを正確に表示させる必要がある場合に役に立ちます。 実際のサブステップデータを使用すると、補間されたデータを表示するより正確な結果が生成されます。
Cache Memory (MB)
このシミュレーション用のキャッシュがどのくらいのメモリを消費することができるかをメガバイトで指定します。 この制限を超過すると、前述の Allow Caching To Disk パラメータ値に依存しながら、古いキャッシュエントリーが削除されるか、またはスペースを空けるためにディスクに保存されます。
Timeless (No History)
各フレームがまるで最初のフレームであるかのように、シミュレーションが新しく開始されます。 これは、$SFは常に1であるという意味です。しかしながら、もしネットワークが.simファイルに基づいて$Fを持つFile DOPで構成される場合、現行フレームのみが読み込まれなければならず、 ベイクしたシミュレーションの高速なランダムアクセスが可能であることも意味します。 このモードでは、キャッシュに保存されるのは1フレームのみですのでご注意ください。
Save Checkpoints
通常、 Allow Caching to Disk が有効で、シミュレーションがメモリ制限に到達している時、シミュレーションはtempディレクトリにあるファイルに保存されます。 これらは有効な.simファイルである一方、管理が難しいです。このオプションがオンの時、各フレームは即座に指定したディレクトリにキャッシュ化されます。 各フレームはCache Memoryに到達するまでメモリ内に保存されますが、(既にディスク上にあるので)この時点ではディスクには保存されません。 チェックポイントの利点は、キャッシュフレームが既に存在する場合、たとえシミュレーションがリセットされたとしても、DOPはそのフレームをクックせず、代わりにそのフレームを読み込むことです。 さらに言えば、要求されたフレームの前で、最後の有効なチェックポイントフレームの後のフレームをクックするだけです。 そのため、もしcache_50.simを持っていてフレーム100をクックしようとする場合、フレーム50でクッキングを開始することができます。
Save Checkpointsの使用は、Automatic ModeでFile DOPを使うことと同等です。 しかし、File DOPでフレーム50に飛ぼうとするとき、最初の50フレームを読み込まなくてはなりません。 チェックポイントを使えば、このステップをスキップできます。
Checkpoint Files
チェックポイントを保存するためのファイルシーケンス。これらは.simファイルで、File DOPまたは File SOPを使って読み込むことが可能です。変数$SFはフレーム番号を指定するために使わなければいけません。 $Fはシミュレーション空間で動作しているので、使うことはできません。$SF4もサポート済みです。
Checkpoint Trail Length
チェックポイントファイルが削除される前にどれだけの量の履歴が保存されるか。 値が0では、キャッシュファイルは削除されません。 そうでなければ、この値よりも古いフレームはディスクから消去されます。
Note
削除されるのは、Houdiniのこのセッションで作成されたチェックポイントファイルのみです。 もし存在するキャッシュファイルでHoudiniを再スタートする場合、削除されません。 クラッシュした位置から再スタートしたいでしょうし、もしまたクラッシュした場合にまた同じ位置から 再スタートできることを保証したかったので、このような仕様にしました。
Checkpoint Interval
チェックポイント間のフレーム間隔。これを1に設定すると、フレーム毎にチェックポイントを保存します。 これを高い値に設定すると、指定したフレームおきにチェックポイントを保存します。 例えば、これを5に設定すると、5フレームおきにチェックポイントを保存します。
大きなシミュレーションを走らせる場合は、これによってディスク容量を節約することができます。
Transform ¶
Note
オブジェクトのトランスフォームは、追加したノードプロパティの存在によっても決定されます。
Transform Order
左のメニューでは、トランスフォームを適用する順番(例えば、スケールしてから回転して移動)を選択します。これは、順番を変えるだけでオブジェクトの位置と向きが変わります。
右のメニューでは、X,Y,Z軸の回転順を選択します。キャラクタ次第では、ある順番にすればキャラクタのジョイントトランスフォームが扱いやすくなる場合があります。
Translate
XYZ軸に沿って移動します。
Rotation
XYZ軸に沿って回転します。
Scale
XYZ軸に沿って不均一にスケールします。
Pivot
オブジェクトの基点。 ピボットポイントの設定も参照してください。
Uniform Scale
3つの軸すべてに沿って均一にオブジェクトをスケールします。
Modify Pre-Transform
このメニューには、pre-transformの値を操作するオプションがあります。pre-transformとは、標準のトランスフォームパラメータよりも前に適用される内部的なトランスフォームのことです。これは、全体のトランスフォームを変更しないで、以下の移動、回転、スケールのパラメータ値のための参照のフレームを変更することができます。
Clean Transform
これは、同じ全体のトランスフォームを維持しながら、移動、回転、スケールのパラメータをデフォルト値に戻します。
Clean Translates
これは、同じ全体のトランストームを維持しながら、移動パラメータを(0, 0, 0)に設定します。
Clean Rotates
これは、同じ全体のトランストームを維持しながら、回転パラメータを(0, 0, 0)に設定します。
Clean Scales
これは、同じ全体のトランストームを維持しながら、スケールパラメータを(1, 1, 1)に設定します。
Extract Pre-transform
これは、同じ全体のトランスフォームを維持しながら、移動、回転、スケールのパラメータを設定してpre-transformを削除します。pre-transformに傾斜があると完全に削除できないことに注意してください。
Reset Pre-transform
これはパラメータを変更せずに完全にpre-transformを削除します。これは、移動、回転、スケールのパラメータがデフォルトの値でなければ、オブジェクトの全体のトランスフォームが変わります。
Keep Position When Parenting
オブジェクトが親子化されても、オブジェクトのトランスフォームパラメータを変更することで、現在のワールドポジションを保持します。
Child Compensation
オブジェクトをトランスフォームする時、その子のトランフォームパラメータを変更することで、その子の現行ワールドトランスフォームを保持します。
Enable Constraints
オブジェクトの Constraints Network を有効にします。
Constraints
Constraints Network CHOPのパス。 拘束を作成する方法も参照してください。
Tip
Constraintsドロップダウンボタンを使用することで、Constraintsシェルフツールのどれかをアクティブにすることができます。そのボタンを使用すると、パラメータエディタで選択されているノードから自動的に1番目のピックセッションが満たされます。
Note
オブジェクトのLookatとFollow Pathのパラメータは廃止されました。代わりにLook AtとFollow Pathの拘束を使用してください。 これらのパラメータは、今のところ非表示にしているだけなので、そのノードのパラメータインターフェースを編集することで表示させることができます。