Pythonに足を生やす

趣味や勉強のアウトプット等

Unityでリフティング!【ボールを跳ねさせる編】

youtu.be

やりたいこと

今回の最終的な目的はボールを自由自在に跳ねさせる(板で…)です。その第一回として、まず上の動画のようにUnityでボールを跳ねさせます。ボールを跳ねさせるだけならUnityの画面上で完結できちゃうので今回は短めです。

手順

ボールを落とす

板とボールを画面上に用意してもらったところから下の画像を参考に手順を説明していきます。まず、画像には写ってないのですがBall(Sphere)オブジェクトのインスペクタ画面の一番下のAdd ComponentからRigidbodyを追加してUse Gravityにチェックが入っていることを確認します。これだけでボールに重力が働いて画面を動かしてあげるとボールが落ちます。

ボールを跳ねさせる

このままだとボールを落としても跳ねてくれないので、画像の②からAssetsにPhysic Materialを追加します。ここで、③の部分でBouncinessをデフォルトの0から(1までの)好きな値に変えて④のようにマテリアルをボールにドラッグアンドドロップして貼り付けるとボールは跳ねるようになります(Bouncinessは反発係数と同義なので1に近いほどよく跳ねる)。

ボールをずっと跳ねさせる

今回はリフティングのためにボールを跳ねさせ続けたいのですが、たとえ反発係数を1に設定してもこれだけではだんだん跳ねる高さは低くなっていって最後には止まってしまいます。そこでボールを跳ねさせるために最後に変更するのが同じく③の部分のBounce Combineでこれは2つの物体が衝突したときにどのように反発係数を決定するかということを調整する項目でデフォルトはAverageとなっています。これをMaximumに設定すると2つの物体の中で反発係数の大きい方の反発係数が適用されるので、止まらずに跳ねるようになります。

f:id:will_optd:20180820200824p:plain

結果と次回やること

結果は一番上の動画の通りでポーンポーンとキレイに跳ねてくれるようになりました。次回は、板を動かしてボールを自由自在に操れるようにしてみたいと思います。