Unityでビー玉の動きを出す方法を調査したので、備忘録としてまとめました。
目次
ビー玉を動きを出す方法を調べてみた
ググってみると幾つか方法があるようです。
- 玉転がし | Unity Learn
- Unity Learnで紹介されている玉転がしのチュートリアル
- Unity IDがあれば無料で見られる
- 英語の動画だけど、英語不得意ならコガネブログさんのブログを見ると良さそう
- 【Unity 入門】【チュートリアル】玉転がしゲームを作る | コガネブログ
- 「玉転がし | Unity Learn」を和訳して、詳しくまとめている。
- 玉は「Sphere Collider」、転がる動作は「Rigidbody」を使っているみたい。
- 壁や釘との衝突しても跳ね返りはないため、衝突時の動作はもう少し考える必要がありそう。
- 【Unity】ブロック崩し(3D)の制作手順を解説!反射角度・速度調整・クリア判定まで
- Physic Material(物理特性マテリアル)を使った跳ね返りや摩擦を表現できそう。
ビー玉の動きを試してみた
上のサイトで紹介されていた
- Rigidbodyによる玉転がし
- Physic Material(物理特性マテリアル)による玉の跳ね返り
の動作を試しに作ってみました。
Rigidbodyによる玉転がし
壁、玉、釘に「Rigidbody」を設定しており、重力や衝突の物理動作を行えるように設定しています。
上の動画のように、「Rigidbody」のみでは衝突時の跳ね返りが表現されず、玉の上に釘の上に乗ってしまったり、壁と衝突しても跳ね返らず壁に沿って転がってしまいます。
そのため、「Rigidbody」のみではビー玉と釘が衝突時の動作を表現をするのは厳しそうだということが分かりました。
ソースコードは以下で公開しているので、よろしければご覧ください。(MITライセンス)
https://github.com/shiguregaki/study_unity/tree/master/02_RollBall
シーン名:「RollBall-UnityLearn」
参考
Physic Materialによる玉の跳ね返り
「Rigidbody」のみではビー玉と釘が衝突時の跳ね返りが表現されないことが分かったので、「Physic Material」を使って、跳ね返りを表現できるようにしました。
壁、玉、釘のオブジェクトに「Physic Material」を設定しました。
上の動画のように、「Rigidbody」に「Physic Material」を追加することでオブジェクトの跳ね返りが表現できました。
ソースコードは以下で公開しているので、よろしければご覧ください。(MITライセンス)
https://github.com/shiguregaki/study_unity/tree/master/02_RollBall
シーン名:「RollBall-PhysicMaterial」
参考
まとめ
「Rigidbody」のみではビー玉と釘が衝突したときの跳ね返りが表現されず、思っていたビー玉の表現をさせることができませんでしたが、そこに、オブジェクト間の跳ね返りや摩擦を表現できる「Physic Material」を設定することで、思っていたビー玉の動きを表現できました。
「Physic Material」は非常に便利なので、その他のオブジェクトでも利用できそうです。
広告
Unityを初めて勉強するなら「Unityの教科書 Unity 2019完全対応版 2D&3Dスマートフォンゲーム入門講座」がオススメです!
全くUnityが分からなかった状態でも概要を理解することができました。
Unityの教科書 Unity 2019完全対応版 2D&3Dスマートフォンゲーム入門講座
Amazon 楽天
以上!
コメント