このモジュールはシーン内にある固形オブジェクトとパーティクルが衝突する方法を管理します。Planes には 3D 用と 2D 用のパーティクル衝突オプションがあります。
プロパティー | 機能 |
---|---|
Planes ドロップダウン | Planes モードを選択する。 |
Planes | 衝突面を定義する可変長の Transform のリスト(Planes モードのみで有効です)。 |
Visualization | 衝突面にある Gizmo がシーンビューでワイヤーフレーム、グリッド、固形の平面のどれで表示されるかを選択する(Planes モードのみで有効)。 |
Scale Plane | Visualization で使用する平面の大きさ(Planes モードのみで有効)。 |
Visualize Bounds | シーンビューで、ワイヤーフレームの形で各パーティクルの衝突範囲をレンダリングする。 |
Dampen | 衝突の後、パーティクルを減速させるのに掛けられる少数の値。 |
Bounce | 衝突後に、表面から跳ね返るパーティクルに加わる力。 |
Lifetime Loss | 衝突後に失われるパーティクルの生存期間。 |
Min Kill Speed | 衝突後に、この値よりも遅い速度で移動しているパーティクルは削除されます。 |
Radius Scale | パーティクル衝突球の半径を調整することを可能にする。これにより、パーティクルグラフィックのビジュアルエッジにより近くフィットさせることができる。 |
Send Collision Messages | この値を有効にすると、OnParticleCollision 関数を使用してスクリプトからパーティクルの衝突を検知することができます。 |
Collision Mode | Pick between 3D or 2D world collisions. |
Collides With | Particles will only collide with objects on the selected layers (World mode only). |
Enable Dynamic Colliders | Allows the particles to also collide with dynamic objects. Otherwise only static objects are used. |
Max Collision Shapes | How many collision shapes can be considered for particle collisions. Excess shapes are ignored. Terrains take priority. |
Collision Quality | This affects how “watertight” the collisions are - at lower quality levels, particles may sometimes pass through colliders (World mode only). |
プロパティー | 機能 |
---|---|
World ドロップダウン | World モードを選択する。 |
Collision Mode | 3D か 2D を選択する。 |
Visualize Bounds | |
Dampen | 衝突の後、パーティクルを減速させるのに掛けられる少数の値。 |
Bounce | 衝突後に、表面から跳ね返るパーティクルに加わる力。 |
Lifetime Loss | 衝突後に失われるパーティクルの生存期間。 |
Min Kill Speed | 衝突後に、この値よりも遅い速度で移動しているパーティクルは削除されます。 |
Radius Scale | 3D か 2D を選択します。 |
Collides With | パーティクルは選択されたレイヤーのオブジェクトとのみ衝突します(World モードのみで有効)。 |
Enable Dynamic Colliders | |
Max Collision Shapes | |
Collision Quality | これは衝突の品質に影響します。値が小さければ、パーティクルは時々コライダーを通り抜けるかもしれません(World モードのみで有効)。 |
Send Collision Messages | この値を有効にすると、OnParticleCollision 関数を使用してスクリプトからパーティクルの衝突を検知することができます。 |
パーティクルの周辺にオブジェクトが存在していて、それらのオブジェクトと相互作用する場合は、エフェクトにより説得力が必要になります。例えば、水や破片などは壁を簡単に通り抜けてしまうのではなく、進行を妨げられるべきです。Collision を有効にすれば、パーティクルはシーン内の他のオブジェクトに衝突することができます。
パーティクルシステムはポップアップメニューから World モードを選択することで、発生したパーティクルがシーン内のどのコライダーとも衝突するように設定することができます。(また、コライダーは Collides With プロパティーで選択したレイヤーにしたがって無効化することができます。)また、ポップアップには Planes モードというオプションがあり、それによってコライダーを持つ必要がない平面オブジェクトのセットをシーンに加えることができます。このオプションはシンプルな床、壁、そしてオブジェクトに便利で、World モードよりも演算のオーバーヘッドが小さくなります。Planes モードが有効なときトランスフォーム(一般的には空のゲームオブジェクト)のリストを Planes プロパティーを通して加えることができます。Planes プロパティーはオブジェクトのローカル X,Z 座標と、平面オブジェクトの法線ベクトルが指している Y 軸の正の方向とを無限に拡張します。開発を補助するために、平面オブジェクトは、可視のメッシュを持っているかに関係無く Gizmos としてシーンに表示されます。Gizmos はワイヤーフレームグリッドか、固体の平面オブジェクトとして表示することができ、大きさを変更することもできます。しかし、大きさの変更は見た目にしか適用されません。つまり、衝突する平面自体はシーンを通して無限に広がっているのです。
衝突が有効なときパーティクルの大きさは時に問題になります。表面と接触する際にグラフィックを切り取られる可能性があるからです。これによって、停止するか跳ねる前にパーティクルは表面の半ばまで「沈んでいる」ように表示される結果となりえるのです。Particle Radius プロパティーはパーティクルのためにおおよその円状の半径を定義することでこの問題を解決に導きます。この大きさ情報は切り取り、沈み込み効果を防止するのに使われます。
Dampen と Bounce プロパティーはパーティクルが固形オブジェクトを表示するときに便利です。例えば、砂利を投げたとき固い表面では跳ね返るものですが、雪玉のパーティクルは衝突の間速度を失っていくかもしれません。Lifetime Loss と Min Kill Speed は衝突の後に続く残りのパーティクルのエフェクトを削減する手助けができます。例えば、火の玉は空中を飛んでいる間、数秒間は存在しているかもしれませんが、衝突の後は独立した火のパーティクルは早めに散っていくべきです。
Send Collision Messages が有効になっている場合もスクリプトからのパーティクルコリジョンを検知することができます。スクリプトは Particle System、コライダー、またはその両方が付いているオブジェクトにアタッチすることができます。コリジョンを検知することで、弾丸、魔法、パワーアップアイテムなどのゲームプレイにおいて有効なオブジェクトとしてパーティクルを使用することができます。より詳細な情報や例についてはスクリプトリファレンスの MonoBehaviour.OnParticleCollision ページを参照してください。