徒然エンジニアブログ

徒然エンジニアブログ

理系東大生がプログラミングを中心に様々なことについて情報発信していきます!

【Unity】物体ごとに反発係数を変える方法

物体ごとに反発係数を変える方法が気になって調べていたけど、あまり記事がなかったので備忘録がてらまとめていきます。

物理特性マテリアルとは?

オブジェクトの摩擦や反発係数を変更することができるものです。PhysicMaterialという名前であります。
f:id:turedureengineer:20180913232938p:plain
上のような設定画面になっています。上の三つは上から順に動摩擦力、静止摩擦力、反発係数を表します。

下の二つはPhysicMaterialがアタッチされた二つの物体がぶつかったりした時の摩擦力、反発係数をどうするかというものです。Average、Muximum、Minimum、Multiplyの四つがあります。英語のそのままの意味なのでここでの説明は省きます。

ある物体のBounce Combineとそれと衝突する物体のBounce Combineが異なる場合どうなるのか?

ここからが本題で自分が悩んだところです。例えばボールをグラウンドの上ではねさせるとします。

ボールのBouncinessが0.6、Bounce CombineがAverageでグラウンドのBouncinessが0.4、Bounce CombineがMaximumの場合はどうなるのでしょう?
実はunityのHPに答えは載っていてAverage < Minimum < Multiply < Maximumという関係があります。
つまり今の例ではボールとグラウンドの間ではAverage < MaximumなのでMaximumが適用されて0.6となります。

二つの物体だけならBounce Combineを同じもので統一するだけでいいですが、物体の数が三つとかになるとややこしくなるので知っておくといいでしょう。