1点から立ち昇る煙の表現をつくる【パーティクル作例】

今回はワールドで1点から立ち昇る煙を表現する方法の例を紹介します。UnityのParticle Systemを使ってシンプルな煙をつくってみましょう。

パラメータ設定

今回設定するパラメータの一覧を掲載します。
後ほどひとつひとつ解説していくので、まずは同じように設定してみてください!

  • Hierarchyを右クリック、または上部メニューのGameObjectから、Effect>Particle Systemを選択して新しいParticle Systemオブジェクトを作成します。
  • Particle SystemのInspectorで、パラメータを以下のように設定します。Shape, Size over Lifetime, Noise, Trails, Rendererの各モジュールにチェックがついて有効になっていることを確認してください。
    • Start Speed:0
    • Start Size:0.5
    • Gravity Modifier:-0.05
    • Shapeモジュール
      • Radius:0.0001(最小値)
    • Size over Lifetimeモジュール
      • Size:クリックしてCurve Editorを表示し、まっすぐ右上がりのグラフを選択
    • Noiseモジュール
      • Strength:0.05
      • Frequency:1
      • Scroll Speed:1
    • Trailsモジュール
      • Mode:Ribbon
      • Color over Trail:Gradientに変更し透明→白→透明(後述)
    • Rendererモジュール
      • Render Mode:None
      • Trail Material:Default-Line

TrailsモジュールのColor over Trailの設定で使うGradient Editorの操作について説明します。]

  • Color over Trailの欄にある▼ボタンを押し、Gradientを選択すると、Gradient Editorでグラデーションが設定できるようになります。
    • Gradient Editorでは色と透明度の変化を設定できます。カラーバーの上側に透明度のキー、下側にカラーのキーがあり、設定するとTrailの色が左から右に変化していきます。
    • 五角形のキーをクリックし、その下の「Color」または「Alpha」の項目でキーの値を設定できます。
    • また、キーをドラッグで移動したり、キーのない位置をクリックすることで新しいキーを追加したりといったこともできます。

設定できたら実行して見た目を確認してみましょう。

各パラメータの解説

ここから各パラメータについて解説していきます。
パラメータをいじると、どんな変化が起きるのかを実際に操作しながら試してみてください。

煙の勢いを変える──Start Speed

Particleが発射された時の速度を設定します。今回は0に設定し、Gravity Modifierで速度を調整します。
0より大きい値に変更することで勢いよく吹き出すようにもできます。

煙の幅を変える──Start Size

Particleの大きさを設定します。今回の例では、煙の幅を変えることができます。

煙の上がり方を変える──Gravity Modifier

Particleにかかる重力の影響の大きさを設定します。今回はマイナスの値を設定することで、落下ではなく上昇していくように設定しました。
変更すると煙の上がり方が変わります。プラスの値にすれば炭酸ガスのように下向きに広がる煙の表現にも使えるかもしれません。

煙の発生範囲を変える──Shapeモジュール>Radius

Particleの発生位置の半径を設定します。炎の上がる範囲を変えられます。
今回は一点から上がる煙なので、半径は最小値にします。

煙の幅の変化を設定する──Size over Lifetimeモジュール>Size

Particleが生成された時から消滅するまでの間、大きさがどのように変化するかを設定します。今回は右上がりのカーブを選択し、煙が徐々に広がっていくようにしています。
好みの変化をするカーブを選択しましょう。こだわる場合は自分でカーブを調整することもできます。

煙に揺らぎをつける──Noiseモジュール

Noiseモジュールを使うと、Particleの動きにランダムな揺らぎを与えることができます。

Strengthで影響力を変化させることができ、大きな値にすると動きの振れ幅が大きくなります

Frequencyは動きの細かさに影響し、大きくすると細かく波打つようになります。

Scroll Speedを変更すると、動きの時間変化の速さが変わります。小さくするとゆったりと変化し、大きくすると細かく動くようになります。

伸びる煙を描く──Trailsモジュール

今回は粒子ではなくひと繋ぎで伸びる煙をつくるので、Trailsを使って表現します。
ModeをParticlesからRibbonに変えることで、それぞれのParticleの軌跡ではなくParticle同士をつないだ線を描くことができます。

Color over Trailは軌跡の色を設定できます。
Gradientにすることで、軌跡の始まりから終わりにかけての色のグラデーションを表現することができます。こだわる人はキーを増やしたり色を変えたりして、理想的な現れ方・消え方などを探してみてください。

表示方法を設定する──Rendererモジュール

RendererモジュールではParticleの表示方法や、マテリアルを設定することができます。

今回はTrailだけを表示するため、Render ModeをNoneにしてParticleを表示しないようにします。
Trailsモジュールを有効にするとTrail Materialという項目が追加されるため、そこに軌跡のマテリアルを設定しておきます(今回はデフォルトで用意されているものを使います)。

【発展編】動く煙をつくってみよう

Particle Systemで煙が上がる様子を表現することができました。
この煙をつかって、例えばタバコの煙や蒸気機関車の煙突などもつくることができますが、動く物体から煙を出すときは一工夫必要です。

まずはこのまま、Particle Systemを手で持てるアイテムの子にして動かしてみましょう。
アイテムを動かすと、既に出た煙も一緒についてきてしまい、不自然です。

これを解消するためには、Simulation Spaceを変更してください。
Simalation Spaceを「Local」から「World」に変更することで、Particleの動作がワールド基準になり、Particle Systemを移動させたときにすでに出ているParticleがついてこなくなります。

こちらの記事でも細かく解説しています!


今回はParticle Systemを使ってシンプルな煙を作成する方法を紹介しました。
Particle Systemは大きさや速さだけでなく、TrailsやNoiseなども活用することで幅広い表現が可能です。色々試してみてください!

記事をシェアしてワールド制作を盛り上げよう!