ICEキネマティクスを使用して駆動する変換を、オペレータスタック内の上位への継承ではなく、前のフレームの値をベースにしたい場合、シミュレーションを使用できます。たとえば、これにより、ばねのようなデフォーマを駆動して、リグに 2 次ダイナミクスを追加してゆれなどのエフェクトを生成することができます。
ICETreeビューでヌルを選択して[作成](Create) [シミュレートICEツリー](Simulated ICE Tree)を選択すると、オペレータスタックに[Pre-Simulation]、[Simulation]、および[Post-Simulation]の各領域が作成されます。
これらの領域は、ジオメトリックオブジェクトの領域と同様に機能します。
シミュレーション環境が有効でない場合、シミュレーションの最初のフレームで[Pre-Simulation]領域のオペレータが評価されます。それらは、シミュレーション中に再評価されることはありません。それらを、シミュレーションの最初の状態を定義するのに使用することも、必要なデータを初期化するのに使用することもできます。
[Simulation]領域下のオペレータはシミュレーションの 2 番目以降のフレームで評価されます。それらは、[Pre-Simulation]領域の結果ではなく、前のフレームをベースに更新されます。たとえば、ベルレインテグレーションを使用して、前の値をベースにばねの速度を更新できます。
必要な場合は、オペレータの順序を変更する[モデリングおよびデフォーメーションの基本]で説明する手順に従って、オペレータを領域間で移動できます。
環境全般の詳細については、ICE シミュレーション環境[ICE の基本]を参照してください。
ICEキネマティクスを使用したシミュレーションを使用する場合、どのICEツリーがどのオブジェクトのデータを取得および設定するかには特に注意を払う必要があります。最適な結果を得るには次を行います。
開始ツリーおよび評価ツリーを保持するための、別個のヌルまたはその他のオブジェクトを使用します。これが、[Simulation]領域を持つ唯一のオブジェクトでなければなりません。
[Pre-Simulation]領域のツリー内の最初の値を計算し、それらをヌル自体にカスタム属性として保存します。被駆動オブジェクトにデータを設定しないでください。
[Simulation]領域のツリー内のシミュレーション値を評価し、それらもヌルにカスタム属性として保存します。この場合も、被駆動オブジェクトにデータを設定しないでください。
被駆動オブジェクトに対して、ツリーを使ってヌルから値を取得し、self.kine.globalを設定します。別のヌル上のツリーを使ってカスタム属性を取得し、複数のオブジェクトにkine.globalを設定することも可能です。
[Simulation]領域のICEツリーを変更すると、変更は即座に有効になりますが、それより前のフレームは[ライブ]モードまたは[インタラクティブ]モードで自動的に再シミュレーションされません。
[Pre-Simulation]領域のICEツリーを変更すると、シミュレーションの最初のフレームに戻るまで、変更は有効になりません。
ICE 駆動の変換の結果をキャッシュすることはできません。代わりに、結果をプロットする必要があります。プロットの詳細については、アニメーションをプロットする(焼き付ける)[アニメーション]を参照してください。