Physic Material コンポーネントは、衝突するオブジェクトの摩擦や跳ね返り効果を調整します。
物理マテリアルを作成するには、メニューバーから Assets > Create > Physic Material を選択します。次に、シーン内の Collider にプロジェクトビューから Physic Material をドラッグします。
プロパティ | 機能 |
---|---|
Dynamic Friction | 移動している物体に対する摩擦。通常は、0 から 1 の間の値を使用します。0 の場合、氷のような感じになります。1 の場合、強い力や重力がオブジェクトを押さない限り、すぐに止まります。 |
Static Friction | 面上で静止しているオブジェクトに使用される摩擦。通常は、0 から 1 の間の値を使用します。0 の場合、氷のような感じになります。1 の場合、強い力を加えないとオブジェクトは動きません。 |
Bounciness | 表面にどれだけ弾性があるか。0 の場合は弾性がありません。1 の場合はエネルギーが減ることなく跳ねます。シミュレーションには少量のエネルギーを加えるかもしれませんが、ある程度の近似が予想されます。 |
Friction Combine | 衝突するオブジェクト間の摩擦をどう処理するか。 |
- Average | 2 つの摩擦力が平均化されます。 |
- Minimum | 2 つの摩擦力のうち小さい方の値が使用されます。 |
- Maximum | 2 つの摩擦力のうち大きい方の値が使用されます。 |
- Multiply | 2 つの摩擦力が互いに乗算されます。 |
Bounce Combine | 衝突するオブジェクト間の跳ね返し度合いをどう処理するか。Friction Combineと同じです。 |
摩擦は、面が互いに滑るのを防止する力です。この値は、オブジェクトを重ねるときに重要です。摩擦には動摩擦力と静止摩擦力の 2 種類があります。Static friction は、オブジェクトが静止している際に使用されます。これは、オブジェクトが動き始めるのを防ぎます。強い力が加えられると、オブジェクトは動き始めます。動き始めると、Dynamic Friction が作用し始めます。オブジェクトが別のオブジェクトと接触中に、Dynamic Friction はオブジェクトを減速させようとします。
2 つの物体が接触しているとき、同じ bounciness と friction が、選択したモードによって両方に適用されます。接触している 2 つのコライダーに異なる combine モードが設定されているときは特別です。このような場合、最も高い優先度をもつ機能が使用されます。優先順位は以下の通りです。Average < Minimum < Multiply < Maximum。あるマテリアルが Average モードを持ち、他が Maximum モードを持つとき、 combine 機能は Maximum で使用されます。なぜならより優先度が高いからです。
Nvidia PhysX エンジンで使われている摩擦モデルは、パフォーマンスとシミュレーションの安定性を考えて設計されていて、必ずしも現実世界の物理を忠実に再現している訳ではない事に注意してください。特に、単一の接触点よりも大きな接触面 (2 つの箱が重なっているような場合) では、2つの接触点があるかのように計算されるため、摩擦力は現実世界と比べて2倍になります。このような場合は、よりリアルな結果を得るために、摩擦係数を 0.5 で乗算した方がよいかもしれません。
同様の論理が弾性モデルにも当てはまります。Nvidia PhysX エンジンは位置修正などのさまざまな細かいシミュレーションのため、完璧にエネルギーの維持をできるわけではありません。ですから、例えば、重力の影響を受けるオブジェクトの弾性値が 1 であり、弾性が 1 の地面に衝突する場合、オブジェクトは最初の位置よりも高い位置に達することが予想されます。