#12 PhysicsMaterial(2D)とは?調整して自然な挙動を目指す【Unity】

ジャンプが出来るようになってキャラコントロールが出来るようになりましたが、現在のままだと少しだけおかしな動きになる部分があります。PhysicsMaterial(2D)というものを利用して調整しましょう。

目次

壁との摩擦!?PhysicsMaterial2Dを調整しよう

現在の状態でキャラの挙動は問題ないでしょうか?実は少しだけ不自然な状態になっています。その部分を確認するには縦長ブロックを上に上げてみて壁に向かってキャラを押し付けてみるとすぐに分かります。

これは当たり判定ごとのPhysicsMaterial(2D)の影響によるものです。ここではこのサイドビューのアクションゲーム用のPhysicsMaterialを作ることで解消を狙いたいと思います。

PhysicsMaterial(2D)とは

そもそもPhysicsMaterialとは何でしょうか?

物理特性マテリアル は、衝突するオブジェクトの摩擦や跳ね返り効果を調整するのに使用されます。

https://docs.unity3d.com/ja/2019.4/Manual/class-PhysicMaterial.html

とあります。具体的に上げると

プロパティー機能
Dynamic Friction
動摩擦係数
動いているものに対して発生する摩擦。
0ほど滑りやすく、1ほど粘っこい
Static Friction
静摩擦係数
静止状態のオブジェクトに使用される摩擦係数。
滑り具合は動摩擦と同様。
止まっている箱にボールをぶつけたときにずれやすいかどうか
Bounciness
反発係数
高いところからボールを落としたときにどのぐらい跳ね上がるか
1だともとの高さまで戻ってきて、0だとストンと止まる(跳ねない)
FrictionCombine衝突するオブジェクト間の摩擦をどう処理するか
BounceCombine衝突するオブジェクト間の反発係数をどう処理するか

FrictionCombine/BounceCombineはそれぞれ以下の中から動作を選択します。またCombineは衝突するお互いに設定がされている場合優先度の高いものが選択されます。優先度は下の表の上ほど高く、下ほど低く設定されています。

Combineの種類優先度説明
Maximum1(最優先)2つの摩擦力のうち大きい方が使用されます
Multiply22つの摩擦力が互いに乗算される
Minimum32つの摩擦力のうち小さい方が使用されます
Average42つの摩擦力が平均化される

PhysicsMaterial(2D)の作り方

PhysicsMaterial(2D)の作り方は3Dと2Dで異なります(Unity2020の場合)

  • PhysicsMaterial : Create/PhysicsMaterial
  • PhysicsMaterial2D : Create/2D/PhysicsMateirl2D

なおこんこんと説明を下にも関わらず2D 版のPhysicsMaterialにはConbineの設定はありません。特に説明もなかったので検証してみないとなんとも言えないですが、少なくとも片方につけている場合そちらが優先されてました。

2Dサイドビューのプレイヤーの設定と確認

PhysicsMaterialの理解が深まったところで、今回のゲーム用のPhysicsMaterial2Dの設定を行いたいと思います。

PhysicsMaterial2Dの作成とパラメータ

プレイヤーにはCupcelCollider2Dがついております。これに対応したPhysicsMaterialは2D版です。ということでPhysicsMaterial2Dを作成します。名前は「PlayerPhyisics」としましょう。

作成できたらPlayerPhysicsを選択してインスペクターの設定を下図に合わせてください。

滑りなし、跳ね返りなしの設定で行きます。

プレイヤーのCapsuleCollider2Dに適応

PhysicsMaterial2Dが作れたらプレイヤーにセットしましょう。

いざ動作確認

PhysicsMaterial2Dのセットが出来たらゲームを動かしてみて壁に押し付けてみましょう。スルスルと下がっていくようになればOK!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次