このシリーズの第2回チュートリアルでは、Blender 4.5 の Fluid シミュレーターを使った fire と smoke の基本として、Cycles でレンダリングするための基本的な Material の設定方法を見ていきます。
このチュートリアルは、Blender 4.5 における炎と煙の基礎に関する全10回のミニシリーズの一部です。エピソードの完全な一覧を見るには、ここをクリックしてください。
動画の書き起こし
皆さん、こんにちは!このシリーズの第2回チュートリアルでは、Blender 4.5 の Fluid シミュレーターを使った fire と smoke の基本として、Cycles でレンダリングするための基本的な Material の設定方法を見ていきます。具体的には、Principled Volume Shader と、この Material が提供する2つのモード、Emission と Blackbody を解説します。
今回は前回のチュートリアルの最後で使用したシーンから始めますが、今回は Blender ファイルを保存し、プロジェクトファイルと同じディレクトリ内に cache フォルダーを設定してあります。
fire と smoke の Material は、シーン内の Flow オブジェクトではなく Domain に設定しなければなりません。そこで Domain を選択し、インターフェースに Shading Editor を追加して Rendered ビューモードに切り替え、基本的な Material を作成します。

World タブで Background の Strength を 0 に設定し、炎が際立つようにします。アニメーションを再生しても、まだ何も表示されません。これは、デフォルトの Material に含まれる Principled Shader が Volumetric Material に適していないためです。
Principled Shader を削除し、代わりに Principled Volume Shader を挿入して、その出力を Material Output ノードの Volume 入力に接続します。ですが、この状態でアニメーションを再生しても、Rendered プレビューにはまだ何も表示されません。ここで、炎に色を付ける方法を見ていきましょう。

Blender には炎を着色する2つの方法が用意されています。最初の方法は Emission と呼ばれるものです。これは物理的には正確ではなく、最初の見た目は少々残念に感じるかもしれませんが、実際には炎の強度や色を柔軟に調整できるため非常に便利です。このモードとその用途については、後のエピソードでさらに詳しく解説します。

2つ目の方法は Blackbody と呼ばれるもので、こちらは物理的に正確です。特に Strength を 1 に設定し、適切な温度値をフィールドに入力すれば、正しい結果が得られます。このツールを使うと、Rendered プレビューですぐに美しい炎が確認できます。Temperature の値はケルビン単位で表され、インターネット上には実際の数値とそれに対応する炎の色の例が数多く公開されています。

続ける前に、Render タブでプレビュー用の Denoise を有効にします。
物理学において Blackbody とは、すべての電磁放射を吸収し、それを温度だけに依存するスペクトル、ここでは単純に「色」と呼びますが、それとして再放射する理想的な物体を意味します。
温度が上がると、赤熱したストーブの赤から黄色や白に変化し、さらに上がると色は青に近づいていきます。
実際、表面温度が最も高い星は青白い巨星です。
Intensity と Tint パラメータについて説明します。まず Intensity は直感的に理解できる値で、先ほど触れたとおり、物理的に正しい値は 1 です。
1 より大きくすれば fire は明るくなりますが、物理的には正確ではありません。
Tint フィールドでは炎の色を変更できます。
もちろん、これは物理的に正確な表現ではありません。
物理的な正確さを求めるなら、Temperature の値を使い、Tint は白のままにしておくべきです。
しかし、Emission でノードやパラメータを設定することなく手早く炎に色を付けたい場合、このオプションは便利です。

ここで「Inflow オブジェクトごとに異なる炎の色を付けるにはどうすればいいのか?」と疑問に思うかもしれません。なぜなら、色は Inflow オブジェクトではなく Domain の Material で定義されるからです。基本的には2つの方法があります。1つは Domain を別々に作成することですが、これは炎同士が相互作用しない場合にしか適しません。もう1つの方法は、emitter オブジェクトからのパラメータや Attribute を使ってそれぞれの炎に異なる色を与える方法ですが、必ずしも上手くいくとは限りません。これについては、他のオブジェクトパラメータや Principled Volume をさらに詳しく見た後、別のエピソードで可能な解決策を紹介します。
Principled Volume ノードの上部には Color というフィールドがあり、デフォルトでは灰色になっています。これは smoke の色を表しています。Principled Volume は単一のノード内で flame と smoke の見た目を個別のパラメータで定義できるからです。Density の値も smoke に関係します。smoke を見せるために、World Background Strength を 1 に戻します。
煙粒子を通過する光の散乱は Anisotropy と Absorption Color で調整できます。
Anisotropy では散乱の方向を制御でき、値が負の場合は後方、正の場合は前方に強く散乱します。その違いを分かりやすくするために、Density の値を 2 に設定して smoke を濃くし、flame が smoke の後ろに来るようにオブジェクトを配置しました。Absorption Color フィールドでは、光が smoke に吸収される際に色味を加えることができます。


ノードで使用できる Attribute について説明する前に、まず Domain が保存する情報を解説する必要があるので、このエピソードはここで終了します。
今回見たのはレンダリング時における fire と smoke の見た目を定義するための最初のステップにすぎません。
しかし、前回と今回の内容で、炎を作成してレンダリングするために必要な基本知識はすでに揃っています。
数回後のエピソードでは、特に Emission を活用するために Material が提供する他のツールも分析していきますが、その前に flame と smoke をよりコントロールするための simulation の基本をさらに扱う必要があります。