Skip to content

第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へ割り当ててください。素材の出典と利用条件を保存します。

ループする煙の作成 ​

  1. 空の親FireSmokeを原点に作り、子にParticle Systemを作成してSmokeと名付けます。
  2. 子のLocal Positionを0、Local Rotationを(-90, 0, 0)、Scaleを1にします。Coneの発生方向を上へ向けます。
  3. 下表の値を設定し、RendererにSmokeMaterialを割り当てます。
場所項目開始値
MainDuration / Looping5秒 / On
MainStart Lifetime / Start Speed3秒 / 0.5
MainStart Size / Start Color0.5 / 灰色、Alpha 0.3
MainGravity Modifier / Stop Action0 / None
EmissionRate over Time / Bursts10 / 空
ShapeConeのAngle / Radius10度 / 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モジュールParticle SystemのNoiseモジュール

Noiseは、規則的な軌道へ不規則な変化を加えます。画像の模様を書き換える機能ではありません。まずSmokeを複製してSmokeBaselineと名付け、無効にして基準を残します。

Noiseの項目開始値調整する内容
Strength0.2軌道を揺らす強さ
Frequency0.5空間の揺らぎの細かさ
Scroll Speed0.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を一時的に無効にして画像の切り替えだけを確認します。

5×5に並んだ爆発のFlipbook素材
出典:Unity TechnologiesのVFX画像シーケンスとFlipbook。素材の利用条件はリンク先で確認します。

この5×5の画像をブラウザーで開いて保存し、Projectへ取り込むと、コマの仕組みを試せます。爆発の画像なので、煙や炎の完成素材とは区別して使います。

  1. 比較用にParticle SystemとMaterialを複製します。MaterialのBase MapにFlipbookを割り当てます。
  2. Texture Sheet Animationを有効にし、ModeをGrid、TilesをX=5、Y=5、AnimationをWhole Sheetにします。
  3. Time ModeをLifetime、Start Frameを0、Cyclesを1にし、Frame over Timeのカーブを時刻0で0、1で1にします。
  4. Start Lifetimeを2秒にし、寿命に沿って25コマが進むことを確認します。
  5. 寿命だけを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として残します。次回はこの煙や炎を、一度の爆発の余韻へ作り替えます。