ランタイム エクスプレッションの実行

パーティクル ツール(Particle Tool)を使用して作成するパーティクルについては、通常、巻き戻し時に表示されるフレームより後の各フレームで、ランタイム エクスプレッションが、ダイナミクスの計算前、または後に実行されます。

放出されるパーティクルについては、通常、パーティクルが放出された最初のフレームより後のフレームごとにランタイム エクスプレッションが実行されます。さらに詳しく言うと、ダイナミクスが評価されるたびに、存在時間が 0 より大きい各パーティクルについてランタイム エクスプレッションが 1 回ずつ実行されます。

タイム スライダの時間が変化し、その時間がパーティクル オブジェクトの開始フレーム(Start Frame)より大きいか、等しい場合は、ダイナミクスが評価されます。ダイナミクスの開始フレーム(Start Frame)を設定するには、パーティクル オブジェクトを選択し、アトリビュート エディタ(Attribute Editor)開始フレームに値を入力します。タイム スライダの時間が変化するのは、アニメーションの再生や巻き戻し、その他の手段により、表示される現在のフレームを変更した場合です。

アニメーションを再生するなどの手段でアニメーション時間を変更すると、フレームの各オーバー サンプル レベルごとにランタイム エクスプレッションが 1 回実行されます。たとえば、オーバー サンプル レベルが 4 である場合は、オブジェクトの各パーティクルについて 1 フレームごとに 4 回、パーティクル シェイプ(particle shape) エクスプレッションが実行されます。

ダイナミクス(Dynamics)メニューセットから、ソルバ > オーバー サンプリングまたはキャッシュ設定の編集(Solvers > Edit Oversampling or Cache Settings)を選択し、オーバー サンプル(Over Samples)レベルを設定します。Maya の既定の設定は 1 です。

アニメーション時間が変化する場合に加えて、エクスプレッションによって読み取られるアトリビュート値が変化した場合、および次のいずれかの状況が発生した場合にも、ランタイム エクスプレッションが実行されます。

この場合、Maya の定義済み変数である時間(time)とフレーム(frame)も、エクスプレッションによって読み取られるアトリビュートとみなされます。

重要: パーティクル シェイプ(particle shape) ノード以外のオブジェクトには、作成時のエクスプレッションは存在しません。そのようなオブジェクトに適用できるエクスプレッションは 1 種類だけです(ランタイム エクスプレッションに似ています)。

パーティクル シェイプ(particle shape) ノードでは、すべてのアトリビュートについて 1 つのランタイム エクスプレッションしか作成できないため、エクスプレッション エディタのアトリビュート(Attributes) リストからアトリビュートを選択する必要はありません。すなわち、1 つのパーティクル シェイプ(particle shape) ノードについて作成できるランタイム エクスプレッションは 1 つに限られています。