ランタイム エクスプレッションを変更する
 
 
 

カラーは非常に急速に変化するので、どのような状況でも、パーティクルのカラーを見るのは大変です。カラーの変化を遅くして、点滅するクリスマスのライトの効果を作成することができます。ここでは、アニメーションで 1 秒ごとにカラーの変わるパーティクルを作成する方法について説明します。

カラーを変更するタイミングを調整するには

  1. ランタイム エクスプレッションを次のように変更します。
    if ((frame % 24) == 0)
    	BubblesShape.rgbPP = sphrand(1);

    このエクスプレッションでは、剰余演算子(%)を使用して、パーティクルの rgbPP アトリビュートがランダムなカラーを受け取るタイミングを制御します。剰余演算子は除算後の余りを返します。たとえば、24 を 24 で割ると 0 が返されますが、25 を 24 で割ると 1 が返されます (25 を 24 で割ると、答えは 1 で余りが 1 になります)。

    フレームを 24 で割った値が余り 0 の数値と等しければ、BubblesShape.rgbPP への代入が行われます。すなわち、フレームが 24、48、72 などと等しい場合に代入が行われます。アニメーション レートが 24 フレーム/秒の場合、代入は 1 秒ごとに 1 回ずつ行われます。

    記号「==」は等号を表します。条件文では、= ではなく == です。間違わないよう、注意してください。= 記号は、値の代入を表します。

  2. アニメーションを巻き戻して、もう一度再生します。

    開始時間に移動すると、作成エクスプレッションが実行されるので、パーティクルの色が赤く変わります。アニメーションが再生されると、パーティクルは 1 秒ごとにランダムにカラーを受け取ります。

    アニメーションを巻き戻した場合の先頭の赤色をランダムなカラーに変更するには、作成エクスプレッションを次のように変更します。

    BubblesShape.rgbPP = sphrand(1);

    これはランタイム エクスプレッションと同じエクスプレッションです。

  3. あとでシーンを再検討する場合は、シーンを保存します。これでこのレッスンは終わりです。