-Blenderでパーティクルを使う手順と注意点-

8. 時間による色やサイズの変化

パーティクルの表示法には複数の種類があり、それぞれで必要な設定が変わっていたりするので、やや混沌とした状況です。
それぞれの場合についてまとめてみます

■ オブジェクト表示の場合

パーティクルの情報をオブジェクトのマテリアルにですでに一度述べたように、コピーされるオブジェクト側が、マテリアルノードで Age(年齢) 情報を受け取って色を変化させる形になります。

Age 情報はフレーム単位で得られるので、-1から1までのカラーカーブの座標にあわせるために Lifetime(寿命) 情報を使ってやや煩雑な計算をしています。
また、粒子サイズはパーティクルの「物理半径」に依存します。これはパーティクル側で制御しないといけないので、パーティクルにテクスチャ情報を持たせせ、その色をサイズに反映させます。
座標を Strand/Particle に設定し、Size に影響させることでパーティクルの特性として粒子サイズが変化します。




■ Halo マテリアル表示の場合

この方法での表示の場合については、パーティクルの表示 (ハローとオブジェクト)に具体的な方法がすでに記述してあります。 パーティクル側のマテリアル(Halo)に対して、テクスチャを設定して、Strand/Particle 座標系を使用することで、設定ができます。

色もサイズもどちらもマテリアルで制御します。
注意点は、オブジェクトのときと違って「粒子の物理サイズ」を変化させるのではなく「マテリアル(Halo)の表示サイズ」を変化させる点です。
サイズ変化用のテクスチャは、マテリアルが持つことになります。(物理サイズは見た目に影響しません)

サイズ用のテクスチャの適用先にさえ気をつければ、一番簡単なやり方です。


■ Billboard 表示の場合

Halo と違って「物理サイズによってサイズが決まる」、オブジェクト表示と違ってコピーされる側のオブジェクトが無いため、「パーティクル側でマテリアルの管理する」と、上の両者とまた違った設定が必要になります。

まず、重要な点として、時間情報を保存する先として、UVマップを1つ用意しなければなりません。時間で変化する量なので 例としてAge などとしておきます。
Billboard 表示の設定で、Time Index UV の項目を Age にすると、UVマップ「Age」に時間情報が載るようになります。U方向が時間情報です。V方向には粒子番号情報が載るので、粒子を単純に番号に応じて色分けするような使い方にもできます。
Halo の場合のように Strand/Particle 座標ではなく、上で準備したUVマップ「Age」を使ってテクスチャを貼り付けることによって、色が時間変化するビルボードが実現できます。
粒子サイズはオブジェクトの時と同様にパーティクルの「物理半径」に依存します。パーティクルにテクスチャ情報を持たせせ、その色をサイズに反映させます。

色とサイズが変化するビルボードが作成できました。
ただの四角ではなんなので、もうひとつテクスチャを使います。UVをもうひとつ追加して、デフォルト状態のまま弄らない状態で利用すれば、ビルボードにテクスチャをぴったりと張ることができます。
色とサイズが変化するテクスチャ付のビルボードが作成できました。

inserted by FC2 system