[blender]プリンシプルボリュームを使わず煙だけで炎を表現する方法[Mantaflow]

blender2.82a使用
blender2.8になってプリンシプルボリュームが追加され煙や火炎の設定が一つのノードで行える様になりました。プリンシブルボリュームで様々な表現ができますが、以前のボリュームの設定にもメリットがあります。
(私が使いこなせていないだけかもしれないですが)


これは煙しか使っていませんよ


まずはMantaflowの煙を設定する
煙を設定しないことには始まりません。
煙や火炎そして今回はやらないですが液体シミュレーションは放出源となるフローとシミュレーション領域であるドメインが最低限必要です。そしてドメインには煙や火炎、液体のマテリアル設定をします。

今回は簡単にデフォルトのCubeにクイック煙を適用しましょう。
これで最低限の設定はやってくれます。

その後ドメインや設定を微調整してベイクをしましょう。
[Mantaflow]煙の消滅で適応ドメインを使ってはいけない理由[blender] で書いた様に煙の消滅を設定する時は適応ドメインを使ってはいけません。少なくても記事を書いている現時点では。詳しくは記事を見てください。











プリンシプルボリュームでもそこそこの質感は設定出来ます。しかし火炎系の質感である放射などをいじると煙が変になってしまいます。

火炎用の質感なんだから当たり前だろうと思われるかも知れませんが、本来ボリュームには放射も使えます。それは煙でも例外ではありません。事実以前の設定方法では煙に放射を使う事が出来ました。

では以前の方法をやってみましょう。
まずは通常の煙の設定方法です。
ボリュームの吸収とボリュームの散乱をシェーダー加算で一つにしてボリュームに繋ぎます。
カラーは同じ色にするのでRGBノードを繋いで同一の色を入力できる様にすると良いでしょう。
そして属性ノードを追加して「density」と入力します。これが煙の密度になります。
数式ノードなどdensityの値を調整できるノードを係数と繋ぎ、それをボリュームの散乱と吸収の密度にそれぞれ繋ぎます。これで完成です。



煙に火炎のマテリアルを割り当てる
これはおそらくプリンシプルボリュームには出来ない事だと思うのですが、煙の密度にも火炎と同じく放射を割り当てる事が出来ます。
ボリュームの吸収と散乱、そしてRGBとシェーダー加算はいらないので削除します。
ボリュームに放射を繋いで強さに密度を調整した値を繋ぎます。
そしてカラーランプを追加して密度と繋ぎます。
炎の色を設定してカラーを放射のカラーと繋いで完成です。




煙を使った火炎表現もなかなか味があるでしょ?