Skip to content

第05回 炎・煙

前回: 第04回 火花・ヒット / 次回: 第06回 爆発

今回の授業内容

  • 炎と煙の動き、色、寿命の違いを理解する
  • ループする炎と煙をParticle Systemで制作する
  • Noiseで粒子の軌道へ不規則さを加える
  • Texture Sheet Animationで粒子の形を変化させる
  • 密度と描画負荷のバランスを調整する

炎と煙のエフェクト例

炎と煙の違い:調整の違いだけで別物に

炎は光と熱の勢いを見せる表現です 上方向へ伸びながら、明るさと形が細かく揺らぎます

煙は燃焼後に残る粒子や空気の濁りを見せる表現です ゆっくり広がり、薄くなりながら消えていきます

どちらも半透明の粒子を重ねて作りますが 色、速度、寿命、発生量の調整方針は大きく異なります

ループエフェクトとして考える:出続ける表現を安定させる

煙や炎は一瞬だけ出て消えるのではなく 一定時間出続ける表現として扱うことが多いです

ループエフェクトでは 発生量、寿命、速度のバランスが重要です

発生量が多すぎると重くなり、寿命が長すぎると画面に残りすぎます また、単にパーティクルの数が多ければ良い結果が得られるわけではありません

処理負荷を考慮しながら、密度と情報量を調整しましょう

炎の特徴:上へ伸び、明るく揺らぐ

炎は下側が明るく 上へ行くほど暗く、透明になっていきます

粒子は上方向へ移動しながら サイズや形が揺らぎます

色は白、黄色、オレンジ、赤の順で 温度差を感じさせる構成にしやすいです

煙よりも短い寿命で 速く動かすと炎らしくなります

炎の基本設定:最初の目安

項目目安目的
LoopingOn燃え続ける
Start Lifetime0.4 - 1.2速く消す
Start Speed1.0 - 3.0上へ伸ばす
Start Size0.2 - 0.8密度を作る
Rate over Time20 - 60連続感を出す
ShapeCone上方向へ集める

炎の色変化:明るい中心から赤く消す

開始時は白や黄色に近い明るい色にします

中盤でオレンジに寄せます

後半で赤や暗い色に寄せつつ アルファを下げて消します

発光感を出す場合は マテリアルの設定も合わせて調整します

煙の特徴:ゆっくり広がりながら薄くなる

煙は発生直後は比較的濃く 時間が経つほど薄くなります

粒子は上方向へゆっくり移動し 横方向へも少し広がります

サイズは寿命とともに大きくすると 空気中に拡散していく印象になります

色は白、灰色、黒に近い低彩度を使います

煙の基本設定:最初の目安

項目目安目的
LoopingOn出続ける
Start Lifetime1.5 - 4.0ゆっくり消える
Start Speed0.3 - 1.5低速で上昇する
Start Size0.4 - 1.2大きめに見せる
Rate over Time5 - 20密度を作る
Gravity Modifier0付近落下させない

煙の色と透明度:濃く出て薄く消す

Color over Lifetime で 後半のアルファを 0 にします

開始直後から完全に濃いと 粒の発生位置が目立つ場合があります

前半で少し濃くなり 後半で薄く消えるカーブにすると自然に見えます

煙は画面を隠しやすいため アルファは控えめに調整します

煙のサイズ変化:拡散する印象を作る

Size over Lifetime で 寿命とともにサイズを大きくします

後半で大きくしすぎると 画面を覆って見づらくなります

サイズのランダム幅を持たせると 同じ粒が並んだ印象を減らせます

炎と煙を重ねる:1つの現象を複数要素で作る

炎だけだと軽く見え 煙だけだと燃えている印象が弱くなります

下側に炎、上側に煙を重ねると 燃焼している雰囲気を作りやすくなります

炎は短く強く、煙は長く薄く設定します

役割を分けておくと 後から調整しやすくなります

ノイズの役割:不規則さを加える

画像

煙や炎のような現象は規則的に動いているわけ ではなく、常に揺らいでいます

ノイズは粒子の動きや形に 不規則な変化を加えるために使います

Particle System の Noise モジュールを使うと 粒子の軌道を揺らすことができます

シェーダー基礎のノイズ回でも 同じ考え方をより詳しく扱います

Noise モジュール:粒子の軌道を揺らす

画像

項目調整する内容
Strength揺らぎの強さ
Frequency揺らぎの細かさ
Scroll Speedノイズの変化速度

煙では弱くゆっくり、炎ではやや速く細かくすると扱いやすくなります

テクスチャーシートアニメーション:コマ送りで表示を切り替える

画像
出典:Unity Technologies 「無料のVFX画像シーケンスとフリップブック」
https://unity.com/ja/blog/engine-platform/free-vfx-image-sequences-flipbooks

テクスチャーシートアニメーションは 1枚のテクスチャーを複数のコマに分割して 寿命に合わせ切り替え表示するアプローチです

粒子の寿命に合わせてコマを切り替えることで 煙や炎の形が変化しているように見せられます

フリップブックとも呼ばれる表現方法で 連続的な変化を作るのに便利です

Texture Sheet Animation の設定:Particle System 側の設定

  1. Texture Sheet Animation を有効にする
  2. グリッド上にコマが並んでいるテクスチャーを用意する
  3. Tiles の X と Y に分割数を設定する
  4. 全コマを再生する場合は Whole Sheet、行単位で切り替える場合は Single Row を選ぶ

テクスチャーアニメの調達:高度な素材であり、調達は難しいかも

テクスチャーアニメは、1枚のテクスチャーに複数のコマが描かれた素材です

炎や煙の動きを丁寧に描くか物理シミュレーションが必要なため、 作成には専門的なスキルやツールが必要になります

Unity Technologies が Houdini で作成したVFX用のテクスチャーアニメを CC0で提供しています 利用を検討してみてください

無料のVFX画像シーケンスとフリップブックも参照してください

シェーダー基礎との接続:半透明と UV の知識を活用する

炎と煙は半透明の重なりで表現します

マスクや Alpha の調整で 粒子の輪郭をやわらかくできます

UV スクロールを使うと 炎や煙の流れをマテリアル側で作れます

今回は Particle System 側の機能を中心に扱い 後の回でシェーダーとの連携を強めます

実習:炎と煙を作る

手順1:炎のParticle Systemを作る

  1. 空の GameObject を作成する
  2. 子にParticle Systemを追加する
  3. Looping をオンにする
  4. Start Lifetime を短めにする
  5. Start Speed を高めにする
  6. ShapeCone にして上方向へ集める
  7. Rate over Time で密度を調整する

手順2:炎の色と揺らぎを調整する

  1. Color over Lifetime で 白、黄色、オレンジ、赤の流れを作る
  2. 後半でアルファを下げる
  3. Size over Lifetime で上に行くほど細く見せる
  4. Noise を加えて揺らぎを作る
  5. あとで煙と重ねて全体のバランスを調整する

手順3:ループする煙を作る

  1. 新しいParticle Systemを作成する
  2. Looping をオンにする
  3. Start Lifetime を長めにする
  4. Start Speed を低めにする
  5. Shape を調整して上方向へ発生させる

手順4:煙の色、透明度、サイズを調整する

  1. 灰色系のマテリアルを割り当てる
  2. Color over Lifetime で後半を透明にする
  3. Size over Lifetime で少しずつ大きくする
  4. Noise を弱めに加える
  5. 画面を隠しすぎない密度に調整する

手順5:Texture Sheet Animationを試す

  1. 複数コマの煙または炎テクスチャーを用意する
  2. Texture Sheet Animation を有効にする
  3. Tiles の X と Y を設定する
  4. 寿命に合わせてコマが切り替わるか確認する
  5. 再生速度と発生量のバランスを調整する

授業内課題:炎と煙のどちらか、または 両方を使ったエフェクトを 提出してください

完成条件

  • ループ再生される
  • Color over Lifetime で透明度が変化する
  • Size over Lifetime で大きさが変化する
  • Noise または Texture Sheet Animation を使っている
  • スクリーンショットまたは動画で結果が確認できる

提出時の説明:調整意図を添えてください

  • 炎、煙、または両方のどれを作ったか
  • どのパラメーターで動きの印象を作ったか
  • どのパラメーターで見た目の密度を調整したか
  • 改善したい点

今回のまとめ:炎と煙は連続的な変化で作る

  • 炎は短い寿命で上へ伸び、明るく揺らぐ表現です
  • 煙はゆっくり広がり、薄く消える表現です
  • Color over LifetimeSize over LifetimeNoise を使うと 連続的な変化を作れます

参考資料