アニメ調のろうそくの炎を表現するには
https://www.youtube.com/watch?v=M8ARq8cUAO8今回はアニメ調のろうそくの炎を表現する方法について解説します。こちらはPixelfondueにて公開されていたビデオを基に作成しています。
まずこの炎の動きを作っていきます。この動きを作るのはパーティクルです。セットアップツールバー > パーティクルタブからラディアルエミッターを追加します。このラディアルエミッターは放射状にパーティクルを放射するエミッター、つまり放射元となるアイテムですが、方向を定めてパーティクルを放射したい場合などにも便利に使えます。円錐角度を8度ぐらいに小さくし、Particle Simulationのサイズを大きめにして、シミュレーションしてみましょう。パーティクルが上方向に放射されているのがわかります。これが炎の基本となる動きです。少し動きが早いようであれば、初期速度を300mmm/s、速度の広がりを100mm/sあたりまで落としておきます。
通常パーティクルはこれだけではレンダリングされません。パーティクルに対して、何らかのアイテムを割り当てる必要があります。今回はブロブを使います。ブロブはボリュームの一種ですが、標準的なボリュームアイテムと違い、よりシンプルに使えます。アイテムリストのアイテム追加 > ボリューム > Blobを追加し、パーティクルソースにParticle Simulationを選択します。
半径の値が大きすぎるようですので、60mm程度にしておきます。プレビューで確認してみると、単なる球体がくっつきあっているだけのように見えますので、パーティクル伸縮の値を600%程度に設定します。こうすることでパーティクルの動きの向きに合わせて、パーティクルが伸びるようになります。
ここで炎にマテリアルを付けてみます。Blobを選択し、右クリックからシェーディング > アイテムマスクの作成を実行します。シェーダツリーを見てみると、Blobというマテリアルグループが作られ、その中にマテリアルが存在しています。マテリアルのディフューズ量を0、スペキュラ量を0、透過量を100%、ルミナンス輝度を1に設定します。そうすると白いシルエットだけが見えるようになります。シミュレーションしてみると、炎の動きのシルエットを確認できるようになります。確認しやすいように、環境であるEnvironement Materialを黒一色の背景にしておきます。
さらにサイズグラディエントでサイズを調整します。グラディエントバーでキーを一つ作成し、この値を0%に設定します。グラフ編集を開いたら、ふっくらとした炎のシルエットとなるよう、キーを調整します。
次にマテリアルを調整していきます。マテリアルはルミナンス量とルミナンスの色に対して、複数のグラディエントテクスチャを組み合わせて調整していきます。まずは炎全体の色を設定していきます。レイヤー追加 > Gradientを追加したら、エフェクトをディフューズの量から基本チャンネル > ルミナンスの色へと変更します。入力パラメータをパーティクル > パーティクルエイジに設定し、黒から青、そして黄色へと変化するグラディエントを設定します。こうすることで、ろうそくの炎が下から黒、青、黄色へと変更するようになります。
次に炎の輪郭だけを抽出します。同じようにGradientテクスチャを追加し、今度はエフェクトをルミナンス量に変更します。入力パラメータは入射のままにしておいてください。値のグラディエントを黒から白へと変化するように設定します。そうすると炎中央が消えてなくなり、輪郭のみが強く表示されるようになります。
この状態だと炎の下側がくっきりと表示されているので、炎の根元が消えて見えるようにルミナンス量を調整します。Gradientテクスチャを追加し、こちらもルミナンス量へとエフェクトを変更します。入力パラメータはパーティクルエイジへと変更し、炎の根元が消えるように調整します。これを先ほど設定した炎の輪郭と合わせるため、ブレンドを乗算にします。そうすると根元部分が消えた炎の輪郭が表示されるようになります。
もう少し炎を見せるようにしたいので、さらにもう一つGradientテクスチャを追加し重ねます。同じように入力パラメータをパーティクルエイジにし、根元部分が表示されないように調整したら、ブレンドモードを今度は加算にして、それまで設定したルミナンス量と足し合わせます。こうすることで、輪郭部分が強く表示された炎の光を表現することができるようになります。
あとは、Radial Emitterで円錐角度や初期速度、速度の広がりの値、またBlobの半径の値を調整することで、炎の動きをより激しくしたり、大きくしたりと、望みの形状や動きになるよう調整してみてください。