ICE Tree で ICE シミュレーションをキャッシュする

 
 
 

納得のいくシミュレーションが仕上がるまでは、試行錯誤の繰り返しとなります。通常は、満足のいくエフェクトが得られるまで、設定の多種多様な組み合わせをテストする必要があります。キャッシュは、アニメーションのテストでフリップブックを作成する場合と同様に、このような作業に役立つ機能です。

キャッシュ ファイルは、次のような場合に役立ちます。

シミュレーションがキャッシュされると、再生した各フレームが評価され、保存されます。これは、シミュレーションの各フレームをキャッシュするには、シミュレーション全体を再生する(タイムラインで、[RT]ではなく[すべて](All)フレーム ボタンが選択された状態)必要があることを意味します。シミュレーションで何かを変更すると、後続のすべてのフレームが影響を受けます。これにより、キャッシュが空になるため、変更した内容で更新するには再度キャッシュを行う必要があります。

ICE シミュレーション データでのキャッシュには、次の 3 つの方法があります。

[Cache on File]ノードを使用して作成されたキャッシュ ファイルは、Cache Manager を使用して作成されたものと同じタイプになります。「Cache Manager」を参照してください。つまり、作成されるキャッシュ ファイルは ICE Tree または Animation Mixer のいずれでも使用できます。

ヒント:キャッシュファイルのデフォルトパス、ファイル名の構文、およびファイル形式をセットアップするには、「キャッシュファイルのデフォルトの設定」を参照してください。

[Cache on File]ノードについて

[Cache On File]ノードは高度な機能です。このノードは、シミュレーション データの書き込みまたは読み取り専用のオペレータとして使用する必要があり、動的に変更してはなりません。キャッシュされたシーケンスを読み取り、他のシーケンスとブレンドする場合や、ノードを追加して新しい ICE Tree を構築したりシミュレーションを向上したりする場合に使用することをお勧めします。

[Cache On File]ノードは、既定で[何もしない]に設定されているため、どのような動作を実行するのかを指定する必要があります。次のいずれかのモードに設定することで、ノードの動作方法を決定します。

ICE Tree でキャッシュ ファイルを書き込み

ICE Tree で[Cache on File]ノードを使用すると、オブジェクトに保存されているシミュレーションまたはアニメートされたデフォメーションのデータ(ICE 属性を含む)をキャッシュ ファイルに書き込むことができます。特別なデータ操作方法を作成したキャッシュ書き込み専用のオペレータを使用する場合は、この方法でキャッシュを書き込む必要があります。

ICE Tree からキャッシュを書き込むと、[更新]アイコンをクリックするまで、評価ポイントの値が保存され、そのポイントより先のポイントにこれらの値が出力されます。値が時間の経過に伴って変化する場合は、1 フレームだけが保存され、次のフレームが評価されます。このノードは ICE Tree の一部を最適化するので、評価が行われないフレームもあります。

ICE Tree のシミュレーション フレームのみがキャッシュに書き込まれます。シーンの最初のフレームは含まれません。最初のフレームは初期状態であるとみなされ、したがってシミュレーションされません。

[Cache on File]ノードは、シミュレーションが変更されたことを検出しません。そのため、キャッシュする必要がある変更が存在する場合は、再度シミュレーションを実行してキャッシュを書き換える必要があります。同様に、このノードが接続され、[キャッシュに書き込む]モードに設定されている場合、シミュレーションを再生するたびにキャッシュ ファイルが上書きされることに注意してください。キャッシュの書き込みを中止する場合は、ノードの接続を解除するか、[何もしない]に設定します。

キャッシュファイルに書き込むには

  1. キャッシュ対象の ICE シミュレーションを含むオブジェクトまたはポイント クラウドを選択します。

  2. ICE Tree ビューの Preset Manager で[ツール]タブをクリックし、[Data Access]グループからワークスペースに[Cache on File]ノードをドラッグします。

  3. ICE Tree 全体をキャッシュの評価対象とする場合は、このノードの[実行]出力を[ICETree]ノードの一番下のポート(接続されている他のすべてのノードの下)に接続します。

  4. [Cache on File(ファイルへのキャッシュ)]プロパティ エディタを開き、[ファイル モード](File Mode)リストから[キャッシュに書き込む](Write Cache)を選択します。

    注:ファイル モードをノードを使用して直接操作する場合は、[キャッシュ バインディング]タブの[キャッシング モード](Caching Mode)パラメータを使用します。
  5. 現在のキャッシュファイルのパスを[Path]で選択します。「Cache on File(ファイルへのキャッシュ)」を参照してください。

  6. キャッシュの[ファイル名](File Name)の構文は、[object]_[version]_[frame]です。

    [Path]と[File Name]で使用するトークンは、[シミュレーション]プリファレンスでの設定に従って自動的に設定されます。

    [パス]または[ファイル名]で使用するトークンを変更する場合は、[トークン](Tokens)ボタンをクリックして、使用できるトークンを確認します。キャッシュ用のトークンだけでなく、任意の共通のトークンを使用することができます。

    注:パスとファイル名を直接操作する場合は、[キャッシュ バインディング]タブの[ファイルのフル ネーム](File Full Name)パラメータを使用します。
  7. キャッシュファイルのファイル形式を[Format]リストから選択します。「キャッシュファイルフォーマット」を参照してください。サポートされている形式は、[IceCache]および[カスタム]だけです。

  8. [属性リスト](Attribute List)テキスト ボックスを使用して、キャッシュ ファイルに含める ICE 属性を指定します。「キャッシュ ファイルで ICE 属性を指定する」を参照してください。ここで何も指定しなかった場合、すべての必須属性がキャッシュ ファイルに含まれます。

  9. デフォルトでは、[Current Frame]ノードは[Cache on File]ノードの[フレーム]ポートに接続されています。このポートは、ファイル名を解決するために使用されるフレーム番号を指定します。

    [Frame Cycle Control(フレーム サイクルのコントロール)]コンパウンドなど、ここに別のノードやコンパウンドを接続して、キャッシュに使用されているフレームを処理することもできます。

  10. シミュレーション全体を再生するか(シミュレーションの各フレームをキャッシュする場合)、またはキャッシュしたいフレームだけを再生します。

    タイムラインで[すべて](All)フレーム ボタンが選択され、[RT](リアルタイム)になっていないことを確認します。[RT]が選択されていると一部のフレームがスキップされる場合があります。詳細については、「 すべてのフレームを再生する、またはリアルタイムで再生する」を参照してください。

    シミュレーションを初めて再生する場合は、データがキャッシュされるため、多少時間がかかります。ただし、いったんデータがキャッシュされれば、通常は、キャッシュされていない場合より再生が高速になります。

  11. 再生されるフレームは、ユーザが指定したパスにあるファイルにキャッシュされます。

    ヒント:ICE Tree のシミュレーション フレームのみがキャッシュに書き込まれます。シーンの最初のフレームは含まれません。最初のフレームは初期状態であるとみなされ、したがってシミュレーションされません。たとえば、フレーム 1 で始まりフレーム 100 で終わるシーンの場合、フレーム 2 から始まる 99 個のシミュレーション フレームがキャッシュに書き込まれます。
  12. キャッシュ ファイルを使用して、次のいずれかの操作を実行できます。

    • 現在の ICE Tree または別のオブジェクトの ICE Tree で、キャッシュ ファイルを読み込む。「ICE Tree でキャッシュ ファイルを読み込む」を参照してください。

    • トラックのキャッシュ クリップとして、Animation Mixer にロードする。その後は、シミュレーションをループするためのサイクルの作成、クリップの時間のスケーリング、タイムワープを使用したシミュレーションの反転やカーブでのタイミングの調整、キャッシュ クリップのブレンドなどを行うことができます。詳細については、「Animation Mixer でキャッシュ ファイルを使用する」を参照してください。

キャッシュ ファイルで ICE 属性を指定する

[Cache on File]プロパティ エディタの下部には、キャッシュ ファイルに書き込む属性を指定できます。リストに何も入力しないと、自動的にすべての必須属性が含まれます。これらは、オブジェクトの ICE Tree や Render Tree でのレンダリングに使用される属性です(Render Tree の属性シェーダによって使用される属性など)。

ただし、特定の属性だけをキャッシュする場合は、対象となる属性の名前を[属性リスト](Attribute List)テキスト ボックスに入力します。各属性名はカンマで区切ります(例: PointPosition,PointVelocity,Color,Shape,Size,Mass)。ただし、カンマと次の属性名の間にスペースを入れないでください。

ここで属性を指定すると、それらの属性だけがファイルにキャッシュされます。また、そのような属性は、必須属性には追加されません。

キャッシュする属性の指定の詳細については、「キャッシュの ICE 属性の設定」を参照してください。

ICE 属性全般については、「ICE 属性」を参照してください。

ICE Tree でキャッシュ ファイルを読み込む

キャッシュ ファイルを作成したら、[Cache On File]ノードを使用して ICE ツリーにロードできます。このノードは、単にキャッシュ データを再生するために使用することもできますが、ICE ツリーの構築や修正の場合と同様に、ノードを接続してキャッシュ ファイル データを修正することもできます。

また、Animation Mixer のトラックにキャッシュファイルをロードすることもできます。「Animation Mixer でキャッシュ ファイルを使用する」を参照してください。

キャッシュ ファイルは、それを作成したのと同じオブジェクトに適用することも、別のオブジェクトに適用することもできます。キャッシュ ファイルを別のオブジェクトにロードする場合は、そのオブジェクト上のポイントの数とデータがキャッシュされたオブジェクト上のポイントの数が一致する必要があります。

読み取りモードでは、ICE Tree に接続されたシミュレート ノードが[Cache on File]ノードによって上書きされるため、このようなノードによるシミュレーションは無視されます。

[ICETree]ノードに複数の[Cache on File]ノードを接続している場合は、さまざまな方法でブレンドできます(「キャッシュ ファイルをブレンドする」を参照)。ブレンドしない場合は、最下位の[Cache on File]ノードが評価対象の最後のノードとなるため、このノードから出力されたデータだけが再生されます。

ICEツリーでキャッシュファイルを読み込むには

  1. キャッシュ ファイルを適用するオブジェクトを選択します。

  2. そのオブジェクトに対して、シミュレートされた ICE Tree のノードを作成し、フレームが更新されるようにします。

  3. ICE Tree ビューの Preset Manager で[ツール]タブをクリックし、[Data Access]グループからワークスペースに[Cache on File]ノードをドラッグします。

    複数のキャッシュ ファイルの結果をブレンドする場合は、以下の「キャッシュ ファイルをブレンドする」を参照してください。

  4. [実行]出力を[ICETree]ノードのポートに接続します。多くの場合、シミュレート ノードの下に接続します。接続した場所にかかわらず、ツリーに存在するシミュレート ノードは、[Cache on File]ノードによって上書きされます。

  5. [Cache on File]プロパティ エディタで、[ファイル モード](File Mode list)リストから[キャッシュを読み取る](Read Cache)を選択します。これにより、選択したファイルからデータがロードされ、ツリーのこのポイントに挿入されます。

    注:ファイル モードをノードを使用して直接操作する場合は、[キャッシュ バインディング]タブの[キャッシング モード](Caching Mode)パラメータを使用します。
  6. プロパティ エディタで、[パス](Path)テキスト ボックスからキャッシュ ファイルを選択します。

  7. デフォルトでは、[Current Frame]ノードは[Cache on File]ノードの[フレーム]ポートに接続されています。このポートは、ファイル名を解決するために使用されるフレーム番号を指定します。

    ヒント:
    • シーンのタイムラインのフレームを使用してキャッシュ ファイルを再生する場合は、[Current Frame]ノードの[グローバル時間](Global Time)オプションを選択します。このオプションは、デフォルトでオフになっています。この場合はキャッシュ ファイルのローカルのシミュレーション フレームが使用されるため、多くの場合、シーンのフレームからオフセットされます。

    • [Current Frame]ノードを別のものに置き換えて、キャッシュ フレームを再生することができます。たとえば、次のものを使用できます。

      • [フレーム サイクルの制御]コンパウンドを使用して、フレームをサイクルさせる。

      • スカラノードを使用して乗数を使用し、最初のフレームに値 1 を設定して、最後のフレームに値 100 を設定する。これらの値をアニメートさせて、カーブをリニアにし、必要に応じて調整します。

  8. 再生コントロールを使用し、選択したオブジェクトについて、キャッシュ ファイルのシミュレーションを再生します。シミュレーションを逆再生したり、プレイバック カーソルを前後にスクラブしたりすることもできます。

    [Cache on File]プロパティ エディタの[キャッシュ バインディング]タブで[Mute]オプションを選択すると、キャッシュ ファイルの再生を一時的に無効にすることができます。

キャッシュ ファイルをブレンドする

キャッシュ ファイルに保存された ICE 属性データは、他のキャッシュ ファイルや、シーン内のオブジェクトの現在の属性データとブレンドできます。このような処理は、ICE Tree に複数の[Cache on File]ノードを接続している場合のみ可能です。

複数のキャッシュ ファイルをブレンドするには

  1. キャッシュ ファイルごとに[Cache on File]ノードを作成し、各ノードを[ICETree]ノードに接続します。

    ブレンド値を設定しない限り、[ICETree]ノードの最下位のポートに接続した[Cache on File]しか再生されません。

  2. 各ノードの[Cache on File(ファイルへのキャッシュ)]プロパティ エディタで、各[Cache on File]ノードが[キャッシュを読み取る](Read from File)に設定されていることを確認します。

  3. 最下位の[Cache on File]ノードのプロパティ エディタで[キャッシュ バインディング](Cache Binding)タブをクリックし、次の 1 つまたは複数のオプションを選択して、ブレンドを制御します。

ブレンド

このオプションでは、このキャッシュ ファイルの属性値と、接続されている他のキャッシュ ファイルや現在のシーン内の属性値とのブレンドの量を指定します。

この値を 1 に設定すると、他の属性値がこのキャッシュ ファイルの属性値で単純に上書きされます。1 未満の値に設定すると、このキャッシュ ファイルの値ウェイトのうちその値のパーセンテージしか使用されません。たとえば、0.5 に設定すると値ウェイトの 50% しか使用されません。

   

[ブレンド]の値を 1(ブレンドしない)に設定して、[Cache on File]ノードから読み取られたキャッシュ ファイル A。

[ブレンド]の値を 1 に設定して、[Cache on File]ノードから読み取られたキャッシュ ファイル B。

   

[ブレンド]の値を 0.5 に設定してブレンドされたキャッシュ ファイル A および B。

キャッシュ ファイル A が優勢となるように、[ブレンド]の値を 0.75 に設定してブレンドされたキャッシュ ファイル A および B。

正規化

このオプションは、キャッシュ ファイルの属性値を他のキャッシュ ファイルや現在のシーン内の属性値で正規化(平均化)します。このオプションを選択しない場合、属性値はブレンド時にひとまとめにされます(加算)。

   

[ブレンド]の値を 0.5 に設定してブレンドされたキャッシュ ファイル A および B。

属性値が平均化(正規化)されるように、[正規化]オプションがオンになっています。

[ブレンド]の値を 0.5 に設定してブレンドされた同じキャッシュ ファイルの組み合わせ。

属性値が平均化ではなく加算されるように、[正規化]オプションがオフになっています。

Overlay(オーバーレイ)

このオプションは、キャッシュ ファイル シーケンスを別のシーケンスとオーバーレイすることにより、キャッシュ ファイルをブレンドします。このオプションを選択しない場合、パーティクルの ID が使用されます。

オーバーレイすると、パーティクルは最初のシーケンスから直線的に削除され、2 番目のシーケンスに基づいて次のシーケンスに追加されます。バランスは[ブレンド]の値によって決まります。値を 0.5 に設定すると、各クラウドのパーティクルの 50% が最初のシーケンスから削除され、次のシーケンスに追加されることになります。それらの属性はブレンドされません。

[ブレンド]の値を 0.5 に設定し、[オーバーレイ]オプションをオンにしてブレンドされたキャッシュ ファイル A および B。ブレンド量が 50% であるため、最初のシーケンスの半分のパーティクルが削除され、2 番目のシーケンスに追加されます。

Append(追加)

このオプションは、複数のファイル キャッシュ シーケンスをロードするときに、パーティクルを既存のポイント クラウドにマージします。キャッシュされたポイントは、既存のポイントを置き換えるのではなく、そこに追加されます。このオプションを選択しない場合、パーティクルは互いをブレンドします。

このオプションはポイント クラウドについてのみ機能します。

[Append]オプションをオンにしてブレンドされたキャッシュ ファイル A および B。最初のシーケンスのパーティクルが、2 番目のシーケンスに追加されます。