ここからは、前半で学んだパラメータの知識をフルに活かして、実践的なエフェクトを作っていきましょう! 今回作るのは、「オブジェクトが地面に着地した瞬間に、煙がパフッと輪っか状に広がるエフェクト」です。ゲームの着地モーションやドカンと何かが落ちてきた時の演出にそのまま使える必須テクニックです。
『3Dのメモ帳』もんじゃ様の解説動画を元に、実際に実演させていただきました!
いつも、勉強させてもらっています。ありがとうございます。
下が完成動画、Blenderのパーティクルアニメーションとなります。
1. 煙を放出する「受け皿(サークル)」を作る
まずは煙を外側に向けて綺麗に吹き出させるための発生源(エミッター)を作ります。
- [Shift + A] ➔ 「メッシュ」 ➔ 「円(Circle)」 を追加します。
- [Tabキー] で編集モードに入り、[Eキー](押し出し) ➔ [Zキー] で真上に少しだけ押し出します。
- そのまま [Sキー] を押して、上側の輪っかを少しキュッと縮めます(逆台形、植木鉢のような形にします)。
- 【ここがポイント!】 煙を「斜め上・外側」に向かって飛ばしたいので、あらかじめメッシュの面の向きを斜め外側に向けておくのがコツです。
🚨 面の向き(法線)の超重要チェック
下が説明動画となります、参考にしてください。
- 画面右上のオーバーレイ表示メニューから 「面の向き(Face Orientation)」 にチェックを入れます。
- 画面が青と赤に染まります。青が表、赤が裏 です。
- 今作ったメッシュを見ると、内側が青で外側が赤(裏返し)になっているはずです。これだと煙が内側に大暴走してしまいます。
- 編集モードで [Aキー] で全選択し、[Shift + N](法線の反転・外側に揃える)を押します。外側が綺麗な青色に変われば大成功です。チェックを外して元に戻します。
2. 物理演算(リジッドボディ)でモンキーを落下させる
着地の瞬間に合わせるために、まずはモンキーをリアルに落下させます。
- [Shift + A] ➔ 「メッシュ」 ➔ 「モンキー」 を追加し、上に持ち上げます。
- モンキーを選択した状態で、右側の物理演算プロパティから 「リジッドボディ(Rigid Body)」 を追加します(タイプは「アクティブ」のまま)。
- 最初からあった床のプレーン(平面)を選択し、同じく 「リジッドボディ」 を追加して、タイプを 「パッシブ(Passive)」 に変更します。
- これで [スペースキー] で再生すると、モンキーがリアルな重力で床にドンッと綺麗に着地します。
タイムラインのフレーム確認
下が説明動画となります、参考にしてください。
再生しながら、モンキーが床に衝突した「その瞬間」のフレーム数を確認します。だいたい 「20フレーム目」 あたりで着地するはずです。
3. 着地の瞬間に合わせてパーティクルを爆発させる
先ほど作った「サークル(植木鉢型のメッシュ)」を選択し、パーティクルを設定します。
- サークルを選択し、新規パーティクルシステムを追加します。
- 「放出(Emission)」 の設定を以下のように変更します。
- 発生開始(Start):
20.0(モンキーが着地した瞬間) - 発生終了(End):
30.0(一瞬でパフッと出したいので、10フレーム間だけで出し尽くします) - 寿命(Lifetime):
100.0(しばらくその場に残るように長めに設定)
- 発生開始(Start):
- 「速度(Velocity)」 項目を開き、「法線(Normal)」の数値を
3.0に引き上げます。これで外側へ勢いよく飛び出します。さらに 「ランダム化(Randomize)」 にも少し数値を入れ、飛び散る方向にムラを作ります。 - 「フィールドの重み」 で 「重力(Gravity)」を
0にします。これで着地した煙が下に沈まず、外へ広がっていきます。
4. フィールド(力場)を使って煙の動きをコントロールする
下が説明動画となります、参考にしてください。
このままだと勢いよく無限に広がって画面外へ飛んでいってしまうので、空気抵抗を加えて「その場にとどまってモコモコする」動きを作ります。
- [Shift + A] ➔ 「フォースフィールド」 ➔ 「フォース(Force)」 を追加します。
- 右側の物理演算設定で、強度(Strength)は
0にし、その下にある 「フロー(Flow)」 の数値を上げます。これが空気の粘り気(抵抗)になり、飛び出したパーティクルがブレーキをかけたようにその場にふわっと留まるようになります。 - さらに、煙の不規則なゆらぎを作るため、[Shift + A] ➔ 「フォースフィールド」 ➔ 「タービュランス(Turbulence)」 を追加し、強度(Strength)を
1.5程度に設定します。 - 再び再生してみると、着地の瞬間にブワッと広がった粒子が、意思を持ったようにウネウネとブレながらその場に留まる、リアルな煙の動きになります!
下が説明動画となります、参考にしてください。
5. 見た目を「ICO球」に差し替え、マテリアル(トゥーン調)を作り込む
下が説明動画となります、参考にしてください。
今のピンポン玉(ハロー)の状態から、立体的な煙のグラフィックに変えていきます。
- [Shift + A] ➔ 「メッシュ」 ➔ 「ICO球」 を適当な場所に追加し、右クリックから 「スムーズシェード」 をかけておきます。
- サークルを選択し、パーティクルの 「レンダー(Render)」 項目で「オブジェクト」に変更。インスタンスオブジェクトに今作った 「ICO球」 を指定します。
- 「スケール」を
0.3ほどに大きくし、「スケールのランダム度」を最大(1.0) に近づけます。これで大小の塊が混ざった見栄えになります。
シェーダー(マテリアル)の接続
下が説明動画となります、参考にしてください。
画面を分割してシェーダーエディター(マテリアル設定)を開き、ICO球に新規マテリアルを設定します。今回はちょっとおしゃれな「トゥーン(アニメ調)シェーダー」を組みます。
- 最初からある「プリンシプルBSDF」は [Xキー] で削除します。
- 以下のノードを追加して、順番に繋いでいきます。
- [ディフューズBSDF] のカラーを ➔ [シェーダーからRGBへ(Shader to RGB)] の入力へ。
- [シェーダーからRGBへ] のカラーを ➔ [カラーランプ(ColorRamp)] の係数(Fac)へ。
- さらに、煙の輪郭を白く光らせる(立体感を出す)ために [フレネル(Fresnel)] ノードを追加し、これをカラーランプに繋ぎます。
- カラーランプの色を調整し、内側を「グレー(煙の影)」、外側の輪郭を「白(光が当たっている部分)」になるように微調整します。
- 画面を 「レンダープレビュー(Zキー)」 に切り替え、ライト(Point等、パワーを1000W程度に設定)を配置すると、ボコボコとした立体感のある、最高にカッコいいアニメ風の煙エフェクトが完成します!
この記事のパーティクルの基本は【Blender】パーティクルの基本&撒き上がる煙の作り方で学べます。
