このモジュールはシーン内にある固形オブジェクトとパーティクルが衝突する方法を管理します。Planes には 3D 用と 2D 用のパーティクル衝突オプションがあります。
プロパティー: | 説明: |
---|---|
Planes popup | 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 | 衝突のモードを 3D か 2D か選択する。 |
Collides With | パーティクルは選択されたレイヤーのオブジェクトとのみ衝突します(World モードのみで有効)。 |
Enable Dynamic Colliders | パーティクルが動的オブジェクトとも衝突できるようにする。そうでない場合は、静的オブジェクトが使用される。 |
Max Collision Shapes | パーティクル衝突のための衝突シェイプの数。超過したシェイプは無視される。Terrain が優先。 |
Collision Quality | これは衝突の品質に影響します。値が小さければ、パーティクルは時々コライダーを通り抜けるかもしれません(World モードのみで有効)。 |
プロパティー: | 説明: |
---|---|
World popup | World モードを選択する。 |
Collision Mode | 3D か 2D を選択する。 |
Visualize Bounds | |
Dampen | 衝突の後、パーティクルを減速させるのに掛けられる少数の値。 |
Bounce | 衝突したとき、パーティクルの寿命を減らすために掛けられる寿命の値。 |
Lifetime Loss | 衝突したとき、パーティクルの寿命を減らすために掛けられる寿命の値。 |
Min Kill Speed | 衝突後、この値よりも遅い速度で移動しているパーティクルは削除されます。 |
Radius Scale | 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 ページを参照してください。