今回は、【Blender・アニメーション炎シリーズ⑤】頂点ペイント使い方①の続きとなります。
平面オブジェクトとシェーダー(ノード)だけを使って、リアルで軽快に動く「火炎」と「煙」のアニメーションを高速で作る方法を解説します。
3Dにゃん様、いつもクオリティの高いBlenderチュートリアルをありがとうございます!
動画で解説されている「軽量な火炎・煙の作り方」を参考にいたしました。
背景を炎や煙を作るとき、標準の「クイックエフェクト(流体シミュレーション)」を使うと、設定が面倒だったりベイクの時間が長かったり、動作が重くてストレスを感じたことはありませんか?
今回ご紹介する方法は、シミュレーションのような物理演算を一切使いません。そのため、ノートPCや低スペックな環境でもめちゃくちゃサクサク動き、すぐにクオリティの高いエフェクトが完成します!
表現の幅がグッと広がるのとアイデア次第で、軽くて映画並みの迫力も表現できます。
今回下の完成動画は、私のオリジナルキャラとダンスを組み合わせ背景を今回の説明通り作成したものです。
事前準備:Node Wranglerの有効化
下の説明動画を参考にしてください。
作業に入る前に、ノード操作を爆速にする必須アドオンを有効にしておきます。
- 画面上のメニューから 「編集」➔「プリファレンス」 を開きます。
- 左側の 「アドオン」 タブを選び、右上の検索欄に「
node」と入力します。 - 表示された 「Node Wrangler」 にチェックを入れ、プリファレンスを保存して閉じます。
前半:メラメラと燃え上がる「火炎」の構築
まずはベースとなる「火炎」のエフェクトから作っていきます。
1. メッシュの配置と細分化
まずはエフェクトを描くための「板」を用意します。
Aキーで画面内の初期オブジェクトをすべて選択して削除(Xキー)します。Shift + A➔ 「メッシュ」➔ 「平面」 を追加します。R➔X➔90と入力し、平面を正面に向けて垂直に立たせます。S➔Xで、横長(炎の横幅になるサイズ)に少し縮小・変形させます。- 【重要】
Ctrl + Aを押し、「回転とスケール」を適用しておきます。(これを忘れると後でノイズの比率が狂います) Tabキーで編集モードに入り、右クリック ➔ 「細分化」 を選択。左下のメニューから 分割数を「10」 に設定します。- オブジェクトモードに戻り、モディファイアプロパティから 「サブディビジョンサーフェス(細分化)」 を追加。ビューポートとレンダーの数値をどちらも 「3」 に引き上げます。
2. 頂点ペイントで「境界線」を自然に消す
下の説明動画を参考にしてください。
このままではただの四角い板なので、端っこが自然に透けて消えるように「ウエイト(色)」を塗ります。
- 画面左上のモード切り替えから 「頂点ペイント(Vertex Paint)」 モードに切り替えます。画面が真っ白になります。
- ブラシの色を「黒」に設定し、平面の「四隅の外枠(エッジ)」をぐるりとドラッグして黒く塗り潰します。 * ※中央部分は白く残しておきます。大体で大丈夫です(後からでも調整できます)。
- 塗り終わったら、右側の「オブジェクトデータプロパティ(緑の逆三角形)」を開き、「カラー属性(Color Attributes)」 の中に
Attribute(またはColor)というデータが作られているのを確認してください。
3. シェーダーノードで炎の質感をコントロールする
下の説明動画を参考にしてください。
画面を 「Shading」 ワークスペースに切り替え、新規マテリアルを作成します。名前は Fire としておきましょう。画面下のシェーダーエディターに「プリンシプルBSDF」と「マテリアル出力」が表示されます。
① 縦長ノイズのベースを作る
Shift + Aから 「ノイズテクスチャ」 を追加します。- ノイズテクスチャを選択した状態で
Ctrl + Tを押すと、Node Wranglerの機能で「マッピング」と「テクスチャ座標」が自動接続されます。 - テクスチャ座標の出力を 「UV」 からマッピングの「ベクトル」に繋ぎ直します。
- マッピングノードの 「スケール X」の数値を大きく(5〜10など) します。すると、画面上のモヤモヤしたノイズが縦に細長く引き伸ばされ、炎の「激しいスジ」に変化します。
② カラーランプで炎の色をつける
Shift + Aから 「カラーランプ」 を追加し、ノイズテクスチャとプリンシプルBSDFの間に挟みます。- カラーランプの「+」ボタンでグラデーションのピンを増やし、左から「黒 ➔ 赤 ➔ オレンジ ➔ 黄色(または白)」のように、炎の温度変化をイメージしたグラデーションを作ります。
③ 頂点ペイントを読み込んで周囲を透明化する
Shift + A➔ 入力 ➔ 「カラー属性」 ノードを追加します。- ノード内の空欄をクリックし、先ほど確認した頂点ペイントのデータ名(
Attribute)を選択します。 - カラー属性の 「カラー」 から、プリンシプルBSDFの 「アルファ(Alpha)」 に線を繋ぎます。
- 画面右側のマテリアルプロパティを開き、「設定」項目にある 「ブレンドモード」を「不透明」から「アルファブレンド」に変更 します。
- 結果: これで、先ほど黒く塗った四隅が完全に透明になり、中央の炎のノイズだけがパキッと浮かび上がります!
④ 自発光(放射)の設定
炎は自ら光を放つため、ライトがなくても眩しく輝くように設定します。
- カラーランプの「カラー」出力を、プリンシプルBSDFの 「放射カラー(Emission Color)」 にも接続します。
- 「放射強度(Emission Strength)」 の数値を
2.0や3.0など好みの明るさに引き上げます。 - さらにクオリティを上げるため、画面右側の「レンダープロパティ」の一番下にある「カラーマネジメント」を開き、ビュー変換を「標準」、ルックを「ミディアムハイコントラスト」 に変更。ワールドの環境光の強さを
0.2などの暗闇に設定すると、炎が鮮やかに引き立ちます。
4. マッピングを動かしてアニメーションさせる
下の説明動画を参考にしてください。
ノイズの位置を移動させて、炎が下から上へメラメラと湧き上がる動きを作ります。
- 画面下に「タイムライン」を開き、「1フレーム目」 に合わせます。
- マッピングノードの 「位置(Location)」 の項目(X, Y, ZのどこでもOK)にカーソルを乗せて、
Iキー を押してキーフレームを挿入します(数値が黄色に変わります)。 - タイムラインを最後の 「250フレーム目」 に移動させます。
- マッピングノードの 「位置」の数値をマイナス方向(-2など) にドラッグして変更します。
- 変更した数値の上で、再度
Iキー を押してキーフレームを確定させます。 - タイムライン上でキーフレームを全選択し、右クリック ➔ 「補間モード」を 「リニア(直線)」 に変更します。(これで一定のスピードで永久に燃え続けるようになります)
💡 実演のコツ: アニメーションを再生(スペースキー)した状態で「頂点ペイントモード」に戻ると、燃え盛る炎の形をリアルタイムに見ながら、ブラシで形を削ったり広げたりして微調整できます!
後半:火炎をベースにした「煙」の量産と絵作り
下の説明動画を参考にしてください。
火炎が完成したら、同じ仕組みを使って「煙」を重ねることで、一気にハリウッド映画のような大迫力の画面を作ることができます。
1. マテリアルを複製して「煙」にカスタマイズ
下の説明動画を参考にしてください。
- オブジェクトモードで、完成した火炎の平面を選択し、
Shift + D➔Yで手前にコピーします。 - 複製したメッシュのマテリアルプロパティを開き、名前の横にある「新規マテリアル(数字のアイコン)」を押して独立させ、名前を
Smokeに変更します。 - シェーダーエディターを開き、カラーランプの色を 「暗いグレー ➔ 白」 のような煙の色に変更します。
- 煙は自発光しないため、「放射強度」の数値を
0.2などの極めて低い値(またはゼロ)に落とします。 - ノイズテクスチャの「スケール」や「細かさ」の数値を少し動かして、火炎とは異なるモコモコ感に調整します。
- タイムラインの最後のキーフレーム数値を
-1などに弱め、炎よりも少し遅いスピードで上に昇るように調整 すると、圧倒的なリアリティが出ます。
2. カメラワークと配置でドラマチックな絵作りをする
完成した火炎と煙を、奥行きを意識して空間に散りばめていきましょう。
Shift + Aで 「カメラ」 を追加。- 自分が「ここから見たい!」と思うアングルに画面を合わせたら、
Ctrl + Alt + テンキーの0を押します(現在の視点にカメラがピタッと吸い付きます)。 - 火炎や煙のオブジェクトを
Shift + Dでいくつか増やし、「カメラのすぐ手前(前ボケ用)」、「キャラクターの後ろ(背景用)」 というように、前後で挟み込むようにレイアウトします。 - 地面に「平面」を敷き、マテリアルの「メタリック」を上げ、「粗さ」を下げることで、レンダーエンジンを 「Cycles」 に切り替えた際に、炎の眩しい照り返しが地面に美しく反射するようになり、一気にプロっぽい仕上がりになります!
まとめ:アイデア次第で無限のエフェクトに!
外部の画像ファイルを1枚も使わず、Blenderのノード機能と頂点ペイントだけで、ここまで美しく、しかも「激カル」な火炎と煙のエフェクトが作れました。
この「マッピングの数値を動かしてノイズを流す」というテクニックは、色のグラデーションを青や白に変えて上から下に流せば「滝や川」に、横に高速で走らせれば「格闘ゲームの衝撃波(ヒットエフェクト)」にと、アイデア次第でどんなエフェクトにも化けさせることができます。
ゲーム制作や軽量化が求められる背景美術には必須のテクニックですので、ぜひ様々な数値やカラーランプを試して、あなただけの理想のエフェクトを作ってみてください!
私個人の感想ですが、私が初心者からBlenderを始めた頃を振り返ると・・エフェクトの作り方の解説が色々と見に行きまして実演して覚えたつもりが「覚えていないにできない」でした。
何故?と虚しさです、つまり本質を理解しないで多くを試しただけなので繋がっていないのだなと気づきました。
仕組みと使い方や見せ方に応用が、全く理解していなのです。
ですので、今回の「炎シリーズ」を掲載しました。火だけのエフェクトの作り方を並べて見てもらえれば・・少しは初心者の方に理解と本質の見極めになればと思っています。
どちらにしてもBlenderの「シェーディング」が必然となり、その中の「放射」と「透過」の使い方が重要なので、そこら辺の解説も考えています。長い説明文の朗読お疲れさまでした。
