[Unity] Physic Material 跳ね返り bounce の設定

物理エンジンを使った跳ね返りの設定です。オブジェクトのこういった挙動も簡単に設定でき、自分で自由落下の計算をしてプログラムする必要がありません。
 
bounce_2

Unity 2018.1

 




Bounciness

 
Physic Material(物理特性マテリアル)は衝突するオブジェクトの摩擦や跳ね返り効果が欲しいときに使います。跳ね返りはその中のBouncinessの設定で調整できます。
 

 

Rigidbodyを設定

 
GameObjectのSpheereからBall1を生成します。
またCubeからボールが跳ね返る床としてFloorを作ります(Planeでもできます)
下のようにBall1をFloorの上に配置するためのY軸を調整します。
 
bounce_0
 
Ball1を選択した状態から
「Component」->「Physics」->「Rigidbody」
を選択します。
 
bounce_1
 
ComponentのRigidbodyが追加され、
デフォルトでは「Use Gravity」にチェックが入っています。これで常に重力が働いて落下動作が加わります。
 
bounce_1b

 

Physic MaterialのBounciness設定

 
「Project」->「Create」->「Physic Material」
にてNew Physic Materialが生成されます。
 
bounce_2
 
Ball1にこのPhysic Materialを追加
 
bounce_3
 
Ball1のInspectorにPhysic Materialが反映しています
 
bounce_4
 
Physic Material の「Bounciness」を例えば「1」に設定します。
Bouncinessは0~1の間の値をとる反発係数
 
bounce_5
 
これでGameで見てみるとBall1がFloorにぶつかって跳ねるのがわかります
 
bounce_2

 

RigidbodyをFloorに設定

 
下の例は、Floorにも同じPhysic Materialを「1」の反発係数を追加したところ、Ball1の跳ね返りが継続するようになりました。ブロック崩しなどで壁とボールの関係です。
 
Ball2を生成して(左のボ-ル)このボールにはPhysic Materialを追加しないと、Floorだけの反発が起き、減衰して止まります。
 
bounce_3
 
References:
Rigidbody – Unity マニュアル
物理特性マテリアル – Unity マニュアル