流体シミュレーションを用いてタバコの煙を作ります
前記事で作ったタバコに煙を付けてみました、意外と見栄えが良くなりました。
1. はじめに
前回キャラクターに持たせる小物の1つとしてタバコの簡単な作り方を紹介しました。今回、その続きとしてタバコの煙の作り方を紹介します。
2. 作り方
2.1 流体シミュレーションでリアルな煙を作る方法
まず流体シミュレーションを用いてリアルな煙を作る方法を紹介します。Blenderの流体シミュレーションは格子ボルツマン法がベースのようなので(間違っていたらごめんなさい)、結構本格的な流体シミュレーションができるようです。流体シミュレーションとはその名の通り、ナビエストークスの式や連続の式などを用いて流体の移動を物理現象に基づいて解くシミュレーションであり、現実世界に近い動きを再現できます。
まず前回作ったタバコを用意します。次にShift+Aから立方体を作り、タバコを覆うように配置します。
次にタバコの先端の燃えてる付近に、円柱を配置します。
立方体を選択し、物理演算プロパティから、流体を選択、タイプをドメインにします。ドメインとは計算領域のことで、この立方体の中のみで物理演算が行われます。
解像度を150くらいにします。解像度を上げるほど煙が綺麗になりますが、演算にかかる時間が大きくなり、PCのスペックによっては固まるので120~150くらいが丁度良い気がしています。またタイムスケールを1から1.5くらいに上げます。タイムスケールを上げると煙の動きが早く、逆に下げると遅くなるので、シミュレーションの結果を見ながら変えてみて下さい。。
次に適応ドメインにチェックを入れます。煙の大きさによって計算領域を自動で変化させてくれるので、計算時間を大幅に短縮できます。
次に気体のヒートの値を上げます。ヒートを上げると煙が早く上に上がるようになります。
最後に消滅にチェックをいれ、値を100くらいにします。発生した煙が100ステップ後に消滅することで、上に挙がった煙がさーっと消えて良い感じになります。
次に煙を発生させる側の設定をします。タバコの先端に作って円柱を選択し、物理演算プロパティから流体を選択、タイプをフロー、フローの挙動を流入口にします。流入口にすると常に流体を吐き出し続けます。
表面からの発生距離を1から0.3程度に下げます。こうすることでオブジェクトの表面近くから煙が出るようになります。
最後に煙の流れを付けるために風を付けます。今回はタバコの煙が手から離れる方向に移動するように、Shift+Aのフォースフィールドから風を選び、先端の方向に矢印が向くように配置します。さーっと流したいので、強さは0.05くらいで非常に小さくしておきます
これで準備は完成です。後は下のタイムラインの矢印を押して再生してあげれば以下のように流体シミュレーションが始まります。
2.2 マテリアルの設定
次にマテリアルの設定をします。基本は入力のボリューム情報の密度を放射に繋げ、さらに出力のボリュームに繋げばOKですが、これだけだと煙の色が薄いの少し改良を加えます。
コンバーターから数式を選び乗算にして繋げます、乗算の下の値を1より小さくすると色が薄く、大きくすると煙がくっきりします。
またその先にカラーランプも繋げます。カラーランプの範囲を自由に設定して煙の能団を調節してください。
煙のわちゃわちゃ感を出したい場合は、例えばボロノイなどを乗算でつけても良さそうです。
3. おすすめ
以下の本はお勧めです。
4. 最後に
今回は煙の作り方を紹介しました。タバコに限らず食べ物の湯気や銃口の煙などにも応用できますのでぜひ試してみて下さい。