第05回 炎・煙
前回: 第04回 火花・ヒット / 次回: 第06回 爆発
今回の授業内容
- ループする炎か煙を作り、寿命・速度・透明度を調整する
- Noiseによる移動の変化と、Flipbookによる画像の変化を区別する
- 条件を一つ変え、密度と見やすさの関係を説明する
炎と煙のエフェクト例
炎は短く速い動きと明るい色、煙はゆっくり広がって薄くなる動きで作り分けます。最初は煙を一つ作り、Noiseによる揺らぎを確認します。炎への変更とTexture Sheet Animationは、その基本ができた後の選択課題です。
開始状態
URPプロジェクトにLesson05.unityを作り、第01回と同じカメラを置きます。前回のワンショットを流用する場合は、終了補助のない新しい親へ粒子を複製します。この回の基本はループなので、自動削除の補助処理を付けません。
煙用Materialは、第03回のParticleAlphaを複製してSmokeMaterialとします。Blending ModeはAlpha、Color ModeはMultiply、Base Mapの色は白、Alphaは1にします。
基本の揺らぎ比較は、画像を指定しない四角い粒でも行えます。煙らしい輪郭を整える段階では、Alpha付きの煙画像を使います。画像をProjectへ取り込み、SmokeMaterialのBase Mapへ割り当ててください。素材の出典と利用条件を保存します。
ループする煙の作成
- 空の親
FireSmokeを原点に作り、子にParticle Systemを作成してSmokeと名付けます。 - 子のLocal Positionを0、Local Rotationを
(-90, 0, 0)、Scaleを1にします。Coneの発生方向を上へ向けます。 - 下表の値を設定し、RendererにSmokeMaterialを割り当てます。
| 場所 | 項目 | 開始値 |
|---|---|---|
| Main | Duration / Looping | 5秒 / On |
| Main | Start Lifetime / Start Speed | 3秒 / 0.5 |
| Main | Start Size / Start Color | 0.5 / 灰色、Alpha 0.3 |
| Main | Gravity Modifier / Stop Action | 0 / None |
| Emission | Rate over Time / Bursts | 10 / 空 |
| Shape | ConeのAngle / Radius | 10度 / 0.15 |
Play Modeで4秒以上待ち、粒子が上へ出続けることを確認します。横へ出る場合は、値を増やす前に子のRotationとSceneビューのShapeの向きを確認してください。
薄く広がって消える変化
Color over Lifetimeで、色は白のまま、Alphaを時刻0で0、0.2で1、1で0にします。Start ColorのAlpha0.3へこの係数が掛かるので、最大でも控えめな濃さになります。
Size over Lifetimeは時刻0で1、1で2とします。Start Sizeが0.5なので、寿命の終わりにはサイズが1になります。初期サイズとカーブの倍率を区別してください。
再生して、粒子が急に現れず、上へ移動しながら大きく薄くなるか確かめます。最後のAlphaだけを一時的に1へ変え、寿命で突然消える違いを確認したら0へ戻します。
Noiseによる揺らぎ
Particle SystemのNoiseモジュール
Noiseは、規則的な軌道へ不規則な変化を加えます。画像の模様を書き換える機能ではありません。まずSmokeを複製してSmokeBaselineと名付け、無効にして基準を残します。
| Noiseの項目 | 開始値 | 調整する内容 |
|---|---|---|
| Strength | 0.2 | 軌道を揺らす強さ |
| Frequency | 0.5 | 空間の揺らぎの細かさ |
| Scroll Speed | 0.1 | 揺らぎの変化速度 |
Noiseを有効にして値を設定し、無効時と比べます。次にStrengthだけを0.2から0.6へ変え、煙がまとまって上がるか、散らばりすぎるか予想して確認します。比較後は0.2へ戻し、採用する値を決めます。
粒子数やサイズは固定したまま比較してください。密度を変える場合はNoiseの設定を固定し、Rate over Timeだけを10から20へ変えて確かめ、10へ戻します。同じ見た目の濃さでも、Alpha・粒子数・サイズは別の原因です。
選択課題:炎への変更
煙を複製してFireにし、Smokeを無効にして単独で確認します。Materialは専用に複製してBlending ModeをAdditiveにし、Start Lifetimeを0.7秒、Start Speedを2、Start Sizeを0.3、Rate over Timeを30から試します。
Color over Lifetimeの色を白→黄色→オレンジ、Alphaを発生時1→寿命の終わり0にします。Size over Lifetimeは1→0にして先で細く消します。SmokeとFireを両方作った場合は、単独で成立してから同時に再生し、炎の動きと煙の余韻が区別できるか確認します。
選択課題:Texture Sheet Animation
Flipbookは、一枚に並んだ複数のコマを順に表示する素材です。Noiseは移動、Flipbookは粒子に描く形を変えます。両方を同時に導入せず、まずNoiseを一時的に無効にして画像の切り替えだけを確認します。

出典:Unity TechnologiesのVFX画像シーケンスとFlipbook。素材の利用条件はリンク先で確認します。
この5×5の画像をブラウザーで開いて保存し、Projectへ取り込むと、コマの仕組みを試せます。爆発の画像なので、煙や炎の完成素材とは区別して使います。
- 比較用にParticle SystemとMaterialを複製します。MaterialのBase MapにFlipbookを割り当てます。
- Texture Sheet Animationを有効にし、ModeをGrid、TilesをX=5、Y=5、AnimationをWhole Sheetにします。
- Time ModeをLifetime、Start Frameを0、Cyclesを1にし、Frame over Timeのカーブを時刻0で0、1で1にします。
- Start Lifetimeを2秒にし、寿命に沿って25コマが進むことを確認します。
- 寿命だけを4秒へ変え、再生速度を比較します。確認後は2秒へ戻します。
一粒に全25コマが見える場合はTilesとRendererのMaterial、途中で不自然に戻る場合はCyclesとFrame over Timeを確認します。終えたら基準の煙を再び有効にし、Noiseを採用した値へ戻します。比較用のFlipbookは無効にして保存します。
授業内課題と完成条件
- 炎か煙がループ再生される
- Color over LifetimeとSize over Lifetimeで、出現から消失までを調整している
- NoiseまたはTexture Sheet Animationの効果を、無効時との比較で説明できる
- 密度の調整で何を変え、何を固定したか説明できる
画像または短い動画と調整理由を提出します。Play Modeを終了して採用値を保存し、SceneをLesson05.unity、使用する親をPrefabとして残します。次回はこの煙や炎を、一度の爆発の余韻へ作り替えます。