床や壁、ボールなどのオブジェクトにバウンドさせたり、摩擦で減速させたりするには、フィジックマテリアルを使います。
フォルダ上で右クリック -> Create -> Phyisic Material で新規作成します。
これを、設定したいオブジェクトのコライダーのMaterialにドラッグアンドドロップします。
バウンドや摩擦の度合いはフィジックマテリアルのインスペクタ上でいつでもコントロールできます。
「Bounciness」で跳ね返りの度合いを、2つの「Friction」で摩擦力を設定できます。どちらも0~1の値を入れます。
バウンドさせる
Bouncinessの値を0より大きくすると簡単にバウンドします。
では、衝突した2つの物体の両方にPhysic Materialが設定されている場合どうなるでしょうか。
例えば、床にPhysic Materialを付けます。
Bouncinessを最大の1に設定します。
先に作ったPhysic MaterialのBouncinessを0にしてCubeに取り付けます。
「Bounce Combine」が「Average」に設定してあります。
Cubeには、落下させるためにRigidbodyを付けて、Use Gravityにチェックを入れた状態にします。
すると、CubeのBouncinessは0なのに少し跳ねます。
Bounce Combineを「Minimum」に設定してみます。
今度は全く跳ねなくなりました。
Bounce Combineでは衝突する2つのPhysic MaterialのBouncinessの値をどう扱うかを設定できます。
「Minimum」では、Cubeに設定した0の値が採用されたので弾まず、「Average」では、Cubeと床のBouncinessの平均の値になったの少しバウンドしました。
では、CubeのBounce Combineを「Maxmum」に設定します。
最大に弾みます。
摩擦をコントロール
「Dynamic Friction」は摩擦を起こしながら動いている物体を減速させるための摩擦です。
「Static Friction」は、止まっている物体を動き出しにくくするための摩擦です。
Dynamic Frictionを0にすると滑っていきます。
(床に摩擦を設定しているのである程度行くと止まります。)
Dynamic Frictionを1にするとすぐに止まります。
Dynamic Frictionを変えずに、Static Frictionを変えれば動き出しの摩擦だけが変わります。
Static Frictionが0.5だと、Dynamic Frictionが0でも動き出しません。
この斜めのPlaneは摩擦をすべて0にしています。Cubeの「Friction Combine」をMaximumに設定しているので、摩擦はそのまま0.5です。
Static Frictionを0.01下げると滑り出しました。ここに、斜面で静止できるか出来ないかの境目があるようです。
Static Frictionを0にすると当然滑り出しますが、滑り出してからの動きが0.49と0でほとんど変わりません。
これは、Dynamic Frictionがともに0だからですね。動いている物体を減速させるための摩擦が同じです。
Static Frictionを0のまま、Dynamic Frictionを少し上げると、滑り出しますが、滑り方がゆっくりになります。
値を上げるほど減速するための摩擦が大きくなります。