火花が散る表現をつくる【パーティクル作例】

今回はParticle Systemを使って、火花が散る表現をつくってみます。
パーティクルを使ったギミックの作例も紹介するので、参考にしてみてください。

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

  • Hierarchyを右クリック、または上部メニューのGameObjectから、Effect>Particle Systemを選択して新しいParticle Systemオブジェクトを作成します。
    • 作成したら、まずはオブジェクトの位置を調整しましょう。TransformのPositionを置きたい場所に移動してください。
  • Particle SystemのInspectorで、パラメータを以下のように設定します。
    • Emission, Shape, Trails, Rendererの各モジュールにチェックがついて有効になっていることを確認してください。
      • Start Lifetime:0.2
      • Start Speed:2
      • Start Size:0.01
      • Start Color:オレンジ色
      • Simulation Space:World(アイテムにつけるなど、火花の発生位置を動かす場合)
      • Emissionモジュール
        • Rate over Time:100
      • Shapeモジュール
        • Shape:Sphere
        • Radius:0.0001(最小値)
      • Trailsモジュール
        • Lifetime:0.2
      • Rendererモジュール
        • Render Mode:None
        • Trail Material:Default-Line

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

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

火花が消えるまでの時間を変える —Start Lifetime

Particleが発射されてから消えるまでの時間を設定します。一瞬で消える火花を表現するため、小さい値にしておきます。

火花が飛び出す速度を変える —Start Speed

Particleが発射された時の速度を設定します。
中心から「Start Speed×Start Lifetime」の距離まで飛んでいくので、火花が広がる範囲を変えたい場合はStart Speedを変えてみましょう。

火花の大きさを変える —Start Size

Particleの大きさを変えます。今回は細かい火花なので、小さい値にしておきます。

火花の色を変える —Start Color

Particleの色を変えます。

火花の量を変える —Emissionモジュール

Rate over Lifetimeで1秒あたりに発生するParticleの数を設定できます。大きくするほど激しく火花が散るようになります。

火花の発生範囲を変える —Shapeモジュール

Particleの発生範囲や飛び出す方向を変えることができます。
Sphereを選択すると球状の範囲から外側に向かって均等に飛び出すようになります。Radius(半径)を最小にして1点から放出されるようにします。

火花の軌跡を描画する —Trailsモジュール

Particleの軌跡を描画します。LifetimeはParticle本体のStart Lifetimeに対する比率です。1にするとParticleが消えるまで軌跡が残りますが、小さい値にすると軌跡が短くなります。

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

RendererモジュールではParticleの表示方法や、マテリアルを設定することができます。
今回は軌跡だけを描画するため、表示方法を決める「Mode」を「None」に設定します。
Trail Materialで軌跡のマテリアルを変更できます。こちらの記事なども参考に、発光させるなど工夫してみてください。

火花パーティクルを使って演出する作例を紹介します。
武器が当たったときに火花が散るようにしてみましょう。

  • 空のGameObjectにGrabbable Itemを設定し、3Dモデルやコライダー、上でつくった火花のParticle Systemなどを子オブジェクトにします。
    • コライダーはIs Triggerにチェックを入れてください。
  • Animationを新規作成して名前を「Spark_On」とし、Particle System、またはその親オブジェクトに設定します。
    • Animationウインドウで編集し、Particle SystemのEmission>Rate over Timeを「100」にする1フレームのアニメーションをつくります。
  • 同様に「Spark_Off」というAnimationを作成・設定し、こちらはRate over Timeを「0」にするようにしてください。
    • ※アイテム自身やParticle System自身に設定するとInspectorの項目が増えて見づらくなってしまうので、「アイテム>空のGameObject>Particle System」という親子関係をつくるのがオススメです。
  • Animationをオブジェクトに設定した際に自動作成されたAnimatorファイルを選択・編集します。
    • Bool型のParameterを追加し、そのParameterがTrueのときに「Spark_On」、Falseのときに「Spark_Off」のAnimationに遷移するようにします。
    • それぞれHas Exit Timeはチェックを外しておいてください。

続いて、アイテムにギミックを設定していきます。

  • アイテムにOn Collide Item Triggerをふたつ設定し、それぞれCollision Event TypeをEnterとExitにして、Bool型のKeyをTrueとFalseに切り替えます。
    • ※Enterの場合は「当たっていない状態から当たった瞬間」、Exitの場合は「当たっている状態から離れた瞬間」にそれぞれトリガーを発行します。
  • 最後にAnimatorコンポーネントと同じオブジェクトにSet Animator Value Gimmickを設定して、On Collide Item Triggerに設定したKeyとAnimatorのParameterが連動するようにします。

以上の設定で、gifのように「武器が当たったときに火花が散る」表現ができます。

今回はParticle Systemを使って火花を散らす表現をつくってみました。
作例のように武器がぶつかり合う場面や、乗り物でブレーキをかけたとき、あるいはBurstsを設定して火打ち石やライターなどにも使うことができます。
Particle Systemはこうした自然現象などの表現に使うと便利な場合があります。パラメーターを変更したりして、工夫してみてください!

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