ぶつかった時にさまざまな表現をつくる──パーティクルを使いこなす【Collision編】

Particle Systemを使うと様々な演出表現ができますが、設定項目が多く覚えるのが大変です。

今回はその中から「Collision」という機能にフォーカスして使い方を紹介していきます。
Collisionを使うとパーティクルが地面などにぶつかったときにさまざまな効果を与えることができます。

たとえば、こちらの記事ではCollisionを使って雨が地面に落ちた時の飛沫の表現をつくっています。

Particle Systemを用意する

まずは基本的なParticle Systemからつくっていきましょう。

  • Hierarchyを右クリック、または上部メニューのGameObjectからEffect>Particle Systemを新規作成します。
  • 今回は地面に当たったときの動作をつくっていくので、パーティクルが重力で落ちるようにしましょう。
    • Particle SystemのInspectorで「Gravity Modifier」という項目に「1」を入力してください。これは重力の強さを設定するパラメータです。
  • Particle Systemを選択していると、Sceneビューでパーティクルの動作をプレビューできます。
  • 動かない場合は「Particles」パネルで「Play」をクリックしてみてください。

このParticle Systemをもとに、地面に当たったときの動作を追加していきます。

地面にぶつかると跳ねるようにする

次はパーティクルが地面などにぶつかると跳ねるようにしていきます。

  • 地面などにぶつかったときに効果を与えるにはParticle SystemのCollisionモジュールを使います。
  • InspectorでCollisionモジュールを有効にしてください。
    • Collisionモジュールのパネルを開くと「Type」という項目があります。ここでは「Planes」と「World」のいずれかが選択でき、「Planes」にすると特定の平面とだけ、「World」だと全てのコライダーと当たり判定を行います。
      • 大量のパーティクルを扱うときは、処理の軽量化のためできるだけPlanesにしておくのがオススメです。
    • 今回は「Planes」で地面との当たり判定のみおこなうようにします。
      • Planesを選択後、下のリストの+ボタンで項目を追加して地面のコライダーがあるオブジェクトを選択しましょう。

これでパーティクルが地面で跳ねるようになりました。

跳ね方を変える

跳ねるときの反発係数を変えたり、地面にぶつかるとそこで消えてしまうといったこともできます。

  • Collisionモジュールの「Bounce」の値を、初期値の「1」から「0.7」に変えてみましょう。
    • この項目は反発係数です。値を小さくすると跳ねる高さが低くなり、次第に転がっていくようになります。
  • また、「Lifetime Loss」の項目を「1」に変更してみます。
    • これはぶつかったときにパーティクルの残り寿命をどれだけ減らすかという項目で、1にしてあると残り寿命を全て減らし、その場で消滅します。

跳ねたときにエフェクトが出るようにする

最後にパーティクルが地面などに触れた時に別のパーティクルが触れた部分から出るようにしていきます。

  • Sub Emittersモジュールを使うと、地面にぶつかったときにさらにそこからパーティクルを出すことができます。
  • まず、ぶつかった場所から出すためのパーティクルを設定します。Particle Systemを右クリックして、子オブジェクトとしてもうひとつParticle Systemをつくります。
    • 子のParticle Systemは次のように設定しましょう(初期値から変更する部分のみ挙げています)。
      • Start Lifetime = 1
      • Start Speed = 1
      • Start Size = 0.1
      • Emission
        • Rate over Time = 0
        • Burstsに項目を追加してCount = 10
      • Shape
        • Shape = Sphere
        • Radius = 0.1
  • 親のParticle Systemに戻って、Sub Emitterモジュールを有効化します。
    • 初期値で「Birth」となっている箇所を「Collision」に変更し、その隣の欄に子のParticle Systemを指定します。

こうすると、地面で跳ねたときにその場所から小さなパーティクルがはじけるようになります。

Particle Systemは設定項目も多く覚えるのが大変ですが、その分高い表現力を持っています。

機能をひとつずつ理解して、自在に使いこなせるようになっていきましょう!

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