納得のいくシミュレーションが仕上がるまでは、試行錯誤の繰り返しとなります。通常は、満足のいくエフェクトが得られるまで、設定の多種多様な組み合わせをテストする必要があります。キャッシュは、アニメーションのテストでフリップブックを作成する場合と同様に、このような作業に役立つ機能です。
シミュレーションがキャッシュされると、再生した各フレームが評価され、保存されます。これは、シミュレーションの各フレームをキャッシュするには、シミュレーション全体を再生する(タイムラインで、[RT]ではなく[すべて](All)フレーム ボタンが選択された状態)必要があることを意味します。シミュレーションで何かを変更すると、後続のすべてのフレームが影響を受けます。これにより、キャッシュが空になるため、変更した内容で更新するには再度キャッシュを行う必要があります。
ICE シミュレーション データでのキャッシュには、次の 3 つの方法があります。
ICE Tree で[Cache on File]ノードを使用して、ICE シミュレーションまたはアニメートされたデフォーメーションならびにその ICE 属性をポイント キャッシュ ファイルに保存する。「ICE Tree でキャッシュ ファイルを書き込み」を参照してください。
また、[Cache on File]ノードを使用して、キャッシュ ファイルからの属性情報の読み込み(ロード)や、キャッシュ ファイル シーケンス同士のブレンドまたはマージも行うことができます。「ICE Tree でキャッシュ ファイルを読み込む」を参照してください。
[Cache Manager]の[Write]タブにあるオプションを使用して、ICEシミュレーションまたはアニメートされたデフォーメーションならびにその ICE 属性をポイントキャッシュファイルにプロットする。「キャッシュ ファイルの書き込み」を参照してください。
[Simulation Time Control]を使用して、ICE シミュレーションとそのローカル ICE 属性値をポイント キャッシュ ファイル(および、オプションでアクション ソース)にキャッシュする。これにより、シミュレーションを逆再生してスクラブできるシミュレーション環境キャッシュも作成されます。これらのコントロールは、Explorer を使用してICEシミュレーションの環境から、または Cache Manager の[Simulation]ページから使用できます。「ICE シミュレーション環境キャッシュ ファイルを作成する」を参照してください。
[Cache on File]ノードを使用して作成されたキャッシュ ファイルは、Cache Manager を使用して作成されたものと同じタイプになります。「Cache Manager」を参照してください。つまり、作成されるキャッシュ ファイルは ICE Tree または Animation Mixer のいずれでも使用できます。
[Cache On File]ノードは高度な機能です。このノードは、シミュレーション データの書き込みまたは読み取り専用のオペレータとして使用する必要があり、動的に変更してはなりません。キャッシュされたシーケンスを読み取り、他のシーケンスとブレンドする場合や、ノードを追加して新しい ICE Tree を構築したりシミュレーションを向上したりする場合に使用することをお勧めします。
[Cache On File]ノードは、既定で[何もしない]に設定されているため、どのような動作を実行するのかを指定する必要があります。次のいずれかのモードに設定することで、ノードの動作方法を決定します。
シミュレーション シーケンスをキャッシュ ファイルに書き込む場合は、[キャッシュに書き込む](Write Cache)モードに設定します。以下の「ICE Tree でキャッシュ ファイルを書き込み」を参照してください。
キャッシュファイルをICEツリーにロードする場合は、[Read Cache]モードに設定します。「ICE Tree でキャッシュ ファイルを読み込む」を参照してください。
ICE Tree で[Cache on File]ノードを使用すると、オブジェクトに保存されているシミュレーションまたはアニメートされたデフォメーションのデータ(ICE 属性を含む)をキャッシュ ファイルに書き込むことができます。特別なデータ操作方法を作成したキャッシュ書き込み専用のオペレータを使用する場合は、この方法でキャッシュを書き込む必要があります。
ICE Tree からキャッシュを書き込むと、[更新]アイコンをクリックするまで、評価ポイントの値が保存され、そのポイントより先のポイントにこれらの値が出力されます。値が時間の経過に伴って変化する場合は、1 フレームだけが保存され、次のフレームが評価されます。このノードは ICE Tree の一部を最適化するので、評価が行われないフレームもあります。
ICE Tree のシミュレーション フレームのみがキャッシュに書き込まれます。シーンの最初のフレームは含まれません。最初のフレームは初期状態であるとみなされ、したがってシミュレーションされません。
[Cache on File]ノードは、シミュレーションが変更されたことを検出しません。そのため、キャッシュする必要がある変更が存在する場合は、再度シミュレーションを実行してキャッシュを書き換える必要があります。同様に、このノードが接続され、[キャッシュに書き込む]モードに設定されている場合、シミュレーションを再生するたびにキャッシュ ファイルが上書きされることに注意してください。キャッシュの書き込みを中止する場合は、ノードの接続を解除するか、[何もしない]に設定します。
ICE Tree ビューの Preset Manager で[ツール]タブをクリックし、[Data Access]グループからワークスペースに[Cache on File]ノードをドラッグします。
ICE Tree 全体をキャッシュの評価対象とする場合は、このノードの[実行]出力を[ICETree]ノードの一番下のポート(接続されている他のすべてのノードの下)に接続します。
[Cache on File(ファイルへのキャッシュ)]プロパティ エディタを開き、[ファイル モード](File Mode)リストから[キャッシュに書き込む](Write Cache)を選択します。
現在のキャッシュファイルのパスを[Path]で選択します。「Cache on File(ファイルへのキャッシュ)」を参照してください。
キャッシュの[ファイル名](File Name)の構文は、[object]_[version]_[frame]です。
[Path]と[File Name]で使用するトークンは、[Simulation]プリファレンスでの設定に従って自動的に設定されます。
[パス]または[ファイル名]で使用するトークンを変更する場合は、[トークン](Tokens)ボタンをクリックして、使用できるトークンを確認します。キャッシュ用のトークンだけでなく、任意の共通のトークンを使用することができます。
キャッシュファイルのファイル形式を[Format]リストから選択します。「キャッシュ ファイル フォーマット」を参照してください。サポートされている形式は、[IceCache]および[カスタム]だけです。
[属性リスト](Attribute List)テキスト ボックスを使用して、キャッシュ ファイルに含める ICE 属性を指定します。「キャッシュ ファイルで ICE 属性を指定する」を参照してください。ここで何も指定しなかった場合、すべての必須属性がキャッシュ ファイルに含まれます。
デフォルトでは、[Current Frame]ノードは[Cache on File]ノードの[フレーム]ポートに接続されています。このポートは、ファイル名を解決するために使用されるフレーム番号を指定します。
[Frame Cycle Control(フレーム サイクルのコントロール)]コンパウンドなど、ここに別のノードやコンパウンドを接続して、キャッシュに使用されているフレームを処理することもできます。
シミュレーション全体を再生するか(シミュレーションの各フレームをキャッシュする場合)、またはキャッシュしたいフレームだけを再生します。
タイムラインで[すべて](All)フレーム ボタンが選択され、[RT](リアルタイム)になっていないことを確認します。[RT]が選択されていると一部のフレームがスキップされる場合があります。詳細については、「 すべてのフレームを再生する、またはリアルタイムで再生する」を参照してください。
シミュレーションを初めて再生する場合は、データがキャッシュされるため、多少時間がかかります。ただし、いったんデータがキャッシュされれば、通常は、キャッシュされていない場合より再生が高速になります。
キャッシュ ファイルを使用して、次のいずれかの操作を実行できます。
現在の ICE Tree または別のオブジェクトの ICE Tree で、キャッシュ ファイルを読み込む。「ICE Tree でキャッシュ ファイルを読み込む」を参照してください。
トラックのキャッシュ クリップとして、Animation Mixer にロードする。その後は、シミュレーションをループするためのサイクルの作成、クリップの時間のスケーリング、タイムワープを使用したシミュレーションの反転やカーブでのタイミングの調整、キャッシュ クリップのブレンドなどを行うことができます。詳細については、「Animation Mixer でキャッシュ ファイルを使用する」を参照してください。
[Cache on File]プロパティ エディタの下部には、キャッシュ ファイルに書き込む属性を指定できます。リストに何も入力しないと、自動的にすべての必須属性が含まれます。これらは、オブジェクトの ICE Tree や Render Tree でのレンダリングに使用される属性です(Render Tree の属性シェーダによって使用される属性など)。
ただし、特定の属性だけをキャッシュする場合は、対象となる属性の名前を[属性リスト](Attribute List)テキスト ボックスに入力します。各属性名はカンマで区切ります(例: PointPosition,PointVelocity,Color,Shape,Size,Mass)。ただし、カンマと次の属性名の間にスペースを入れないでください。
ここで属性を指定すると、それらの属性だけがファイルにキャッシュされます。また、そのような属性は、必須属性には追加されません。
キャッシュする属性の指定の詳細については、「キャッシュの ICE 属性の設定」を参照してください。
ICE 属性全般については、「ICE 属性」を参照してください。
キャッシュ ファイルを作成したら、[Cache On File]ノードを使用して ICE ツリーにロードできます。このノードは、単にキャッシュ データを再生するために使用することもできますが、ICE ツリーの構築や修正の場合と同様に、ノードを接続してキャッシュ ファイル データを修正することもできます。
また、Animation Mixer のトラックにキャッシュファイルをロードすることもできます。「Animation Mixer でキャッシュ ファイルを使用する」を参照してください。
キャッシュ ファイルは、それを作成したのと同じオブジェクトに適用することも、別のオブジェクトに適用することもできます。キャッシュ ファイルを別のオブジェクトにロードする場合は、そのオブジェクト上のポイントの数とデータがキャッシュされたオブジェクト上のポイントの数が一致する必要があります。
読み取りモードでは、ICE Tree に接続されたシミュレート ノードが[Cache on File]ノードによって上書きされるため、このようなノードによるシミュレーションは無視されます。
[ICETree]ノードに複数の[Cache on File]ノードを接続している場合は、さまざまな方法でブレンドできます(「キャッシュ ファイルをブレンドする」を参照)。ブレンドしない場合は、最下位の[Cache on File]ノードが評価対象の最後のノードとなるため、このノードから出力されたデータだけが再生されます。
ICE Tree ビューの Preset Manager で[ツール]タブをクリックし、[Data Access]グループからワークスペースに[Cache on File]ノードをドラッグします。
複数のキャッシュ ファイルの結果をブレンドする場合は、以下の「キャッシュ ファイルをブレンドする」を参照してください。
[実行]出力を[ICETree]ノードのポートに接続します。多くの場合、シミュレート ノードの下に接続します。接続した場所にかかわらず、ツリーに存在するシミュレート ノードは、[Cache on File]ノードによって上書きされます。
[Cache on File]プロパティ エディタで、[ファイル モード](File Mode list)リストから[キャッシュを読み取る](Read Cache)を選択します。これにより、選択したファイルからデータがロードされ、ツリーのこのポイントに挿入されます。
デフォルトでは、[Current Frame]ノードは[Cache on File]ノードの[フレーム]ポートに接続されています。このポートは、ファイル名を解決するために使用されるフレーム番号を指定します。
再生コントロールを使用し、選択したオブジェクトについて、キャッシュ ファイルのシミュレーションを再生します。シミュレーションを逆再生したり、プレイバック カーソルを前後にスクラブしたりすることもできます。
[Cache on File]プロパティ エディタの[キャッシュ バインディング]タブで[Mute]オプションを選択すると、キャッシュ ファイルの再生を一時的に無効にすることができます。
キャッシュ ファイルに保存された ICE 属性データは、他のキャッシュ ファイルや、シーン内のオブジェクトの現在の属性データとブレンドできます。このような処理は、ICE Tree に複数の[Cache on File]ノードを接続している場合のみ可能です。
キャッシュ ファイルごとに[Cache on File]ノードを作成し、各ノードを[ICETree]ノードに接続します。
ブレンド値を設定しない限り、[ICETree]ノードの最下位のポートに接続した[Cache on File]しか再生されません。
各ノードの[Cache on File(ファイルへのキャッシュ)]プロパティ エディタで、各[Cache on File]ノードが[キャッシュを読み取る](Read from File)に設定されていることを確認します。
最下位の[Cache on File]ノードのプロパティ エディタで[キャッシュ バインディング](Cache Binding)タブをクリックし、次の 1 つまたは複数のオプションを選択して、ブレンドを制御します。
このオプションでは、このキャッシュ ファイルの属性値と、接続されている他のキャッシュ ファイルや現在のシーン内の属性値とのブレンドの量を指定します。
この値を 1 に設定すると、他の属性値がこのキャッシュ ファイルの属性値で単純に上書きされます。1 未満の値に設定すると、このキャッシュ ファイルの値ウェイトのうちその値のパーセンテージしか使用されません。たとえば、0.5 に設定すると値ウェイトの 50% しか使用されません。
このオプションは、キャッシュ ファイルの属性値を他のキャッシュ ファイルや現在のシーン内の属性値で正規化(平均化)します。このオプションを選択しない場合、属性値はブレンド時にひとまとめにされます(加算)。
このオプションは、キャッシュ ファイル シーケンスを別のシーケンスとオーバーレイすることにより、キャッシュ ファイルをブレンドします。このオプションを選択しない場合、パーティクルの ID が使用されます。
オーバーレイすると、パーティクルは最初のシーケンスから直線的に削除され、2 番目のシーケンスに基づいて次のシーケンスに追加されます。バランスは[ブレンド]の値によって決まります。値を 0.5 に設定すると、各クラウドのパーティクルの 50% が最初のシーケンスから削除され、次のシーケンスに追加されることになります。それらの属性はブレンドされません。
[ブレンド]の値を 0.5 に設定し、[オーバーレイ]オプションをオンにしてブレンドされたキャッシュ ファイル A および B。ブレンド量が 50% であるため、最初のシーケンスの半分のパーティクルが削除され、2 番目のシーケンスに追加されます。