このシリーズの最初のチュートリアルでは、Blender 4.5 の Fluid シミュレーターを使った fire と smoke の基本について解説します。ここでは、Blender で simulation を作成するために必要な2つの基本要素を見ていきます。


このチュートリアルは、Blender 4.5 における炎と煙の基礎に関する全10回のミニシリーズの一部です。エピソードの完全な一覧を見るには、ここをクリックしてください。


動画の書き起こし

皆さん、こんにちは!このシリーズの最初のチュートリアルでは、Blender 4.5 の Fluid シミュレーターを使った fire と smoke の基本について解説します。ここでは、Blender で simulation を作成するために必要な2つの基本要素を見ていきます。

まずは空の Blender シーンから始めましょう。シーンに fire や smoke を追加するには、まずそれらを発生させるオブジェクトを配置する必要があると思うかもしれません。それは正しいのですが、実際には simulation を実行するために必要な基本要素の半分にすぎません。それでも、まずは emitter となるオブジェクトをシーンに追加してみましょう。

Blender の fire と smoke の simulation ツールは、各オブジェクトの Physics タブにあります。追加する必要があるコンポーネントのタイプは Fluid です。Fluid は liquid だけでなく、fire や smoke の simulation も扱います。最初に表示されるのは Type というメニューだけで、まだ fluid や他のカテゴリーを区別しているわけではなく、simulation の中での役割を列挙している形になっています。

各タイプのツールチップを見れば、その役割のヒントが分かります。特に Flow タイプは、シーンに要素を追加または削除するために使われます。先ほど作成した最初のオブジェクトは fire と smoke の emitter にしたいので、この Flow タイプを選びます。

コンポーネントのパネルに新しいオプションがいくつか表示されます。最初の項目は Flow Type で、デフォルトでは Smoke に設定されています。メニューを開くと、Liquid には1つしかオプションがないのに対し、fire と smoke には3つの選択肢があります。それぞれを個別に扱うか、両方を組み合わせるかです。Fire And Smoke を選ぶと、両方のためのパラメータと設定が表示されます。そこで、このチュートリアルシリーズの最初の部分では、このオプションを選びます。

もし Blender の Cloth や Collision などの他の physics simulation に慣れている場合、この段階で Timeline の最初のフレームに移動し、Play ボタンを押せば fire と smoke の simulation が始まると期待するかもしれません。しかし実際には何も起こりません。そこで Timeline の最初のフレームに戻り、Fluid simulation に必要なもう1つの基本要素、Domain を導入しましょう。

すべての Fluid simulation は、メッシュによって定義された 3D 空間、つまり volume 内で行われます。Blender ではこの volume を simulation の Domain と呼びます。これは主にパフォーマンスのために必要です。というのも、こうした simulation には大量のメモリと計算が必要だからです。Domain はどのような形状のオブジェクトでも構いませんが、最終的に Blender はその Bounding Box を使用します。このため、最も分かりやすい選択肢は Cube を適切にスケールして使うことです。

emitter オブジェクトを Domain として使う Cube 内に入れたら、その Cube を選択し、Fluid コンポーネントを追加して Type を Domain、Subtype を Gas に設定します。すると Cube はすぐに透明になり、その構造が見えるようになります。また、下の角のひとつに小さな Cube が現れるのにも気づくでしょう。これについてはすぐに説明します。しかし最も重要な変化は、Domain 内の Inflow オブジェクトが炎に包まれることです!

Timeline の最初のフレームを現在のフレームに設定し、Play をクリックして simulation を開始します。確かに何かが起こりますが、最初の fire と smoke の simulation としては少々がっかりかもしれません。なぜなら、fire は最初の数フレームしか表示されず、その後は smoke だけが残るからです。

この挙動の原因は emitter オブジェクトの設定のひとつにあります。対象となる Fluid コンポーネントのパラメータは Flow Behavior で、デフォルトでは Geometry に設定されています。ツールチップによると、Geometry は現在のジオメトリを使って fire を生成し、Inflow モードは fire をシーンに継続的に追加します。そこでモードを Inflow に切り替え、Timeline の最初のフレームに戻ってもう一度 Play をクリックしましょう。

Inflow における「adds fire」という表現こそが重要です。なぜなら Inflow オブジェクトは各フレームで新しい simulation 要素をジオメトリから継続的に生成するからです。

一方で Geometry モードは最初のフレームでジオメトリを参照し、それをすぐに「消費」してしまいます。

言い換えると、Geometry モードは小さな紙切れを燃やす、あるいはスモークマシンが一度だけ煙を吐き出すようなものです。それに対して Inflow はガスコンロのバーナーや、煙を継続的に出し続けるスモークマシンのようなものです。

炎、とくにオブジェクトの下部が少しブロック状、つまり3D なので立方体的に見えることに気づいたかもしれません。

この見え方の原因は、Domain のパラメータのひとつである Resolution にあります。

Resolution は Domain の volume が小さな Cube にどのように分割されるかを決定します。

この解像度は、Domain の下の角に現れる小さな Cube で視覚的に表されます。

特に Resolution 値が低いと、炎や煙がそのサイズの Cube に分割されているのがはっきり分かります。

Fluid simulation は Domain の volume を Voxel と呼ばれる小さな Cube に分割して処理します。Voxel は simulation を計算するための最小単位であり、2D 画像における pixel の3D 版です。pixel と同じように、同じ volume に多くの Voxel があれば品質は向上しますが、その分計算コストとディスクメモリが増えます。最も良い方法は、まずデフォルトの Resolution 値 32 から始め、fire と smoke の形状が望むものになるまで他のパラメータを調整することです。その後 Resolution をさらに上げてテストし、最終的な結果のために非常に高い値に設定します。

メモリ使用に関連して、Fluid simulation のデータがどこに保存されるのかを見てみましょう。特に、まだプロジェクトファイルを保存していない状態です。この情報は Domain オブジェクトの Cache セクションにあり、そこに表示されたパスを見ると、Blender がディスク上に simulation ファイルを保存するフォルダーを作成していることが分かります。現在のプロジェクトファイルを保存していないので、このフォルダーは一時的な場所に作られます。つまり、私のようにしてはいけません。Domain や他の Fluid simulation 要素を作成する前に、必ず Blender のプロジェクトファイルを保存してください。そうすれば cache フォルダーはプロジェクトファイルと同じディレクトリに作成され、ディスクの中を探し回る必要がなくなります。

この時点で viewport shading モードを切り替えたり、Timeline の途中のフレームでレンダリングを実行しても、fire も smoke も表示されません。これは、現在 Solid モードの 3D Viewport に見えているのは fire と smoke の Voxel 表示にすぎず、レンダリング用の Material がまだ定義されていないからです。この内容については次のエピソードで扱います!

チュートリアルを検索

フレーズ、または複数のキーワードをカンマで区切って入力してください。

このウェブサイトは個人サイトであり、販売チャネルではありません。3Dモデルに関するページは、私の作品の一部を記録するためのものであり、販売案内、価格、購入方法、商用リンクは掲載していません。現在、カスタム制作、コンサルティング、その他の業務上の協力依頼は受け付けていません。


プライバシー及びクッキーの使用に関する拡張情報の通知