Unityでのコライダーとリジッドボディの使い方を理解しよう

この記事では、スプライト画像を表示するだけでなく、ゲームオブジェクトとして動かせるように、当たり判定と重力を与える方法について解説しています。Unityにスプライト画像を取り込む方法や透過処理については、以前の記事を参考にしていただければ幸いです。

ゲームオブジェクトに当たり判定を与えるにはコライダーを使用します

2Dや3Dオブジェクトに当たり判定を設定するのは、複雑な作業ではありません。
Unityにはゲームやアプリ開発に必要な機能が備わっています。
プレイヤーキャラクター、敵、アイテム、地形などの当たり判定(接触判定)は、コライダー(Collider)をオブジェクトに追加することで実装できます。

Unityでは2Dと3Dのコライダーを用途によって使い分けることが可能です。
四角形や立方体の「ボックスコライダー」、円形や球形の「サークルコライダー、スフィアコライダー」、カプセル形状の「カプセルコライダー」、そして平面やポリゴンに判定を持たせる「メッシュコライダー」などがあります。
コライダーの形状がシンプルであれば接触判定にかかる処理は軽く、複雑であれば処理は重くなります。

オブジェクトにコライダーを追加する

当たり判定を設けたい2Dや3Dオブジェクトを選択した状態で、インスペクター下側にある「コンポーネントを追加(AddComponent)」を選択します。
Physics(2D)からお好みのコライダーを選択してください。

今回はイチゴ型のPNG画像の形状を3Dカプセルコライダーを使っておおまかに再現しています。
カプセルコライダーを選択した場合、半径と高さを設定することができます。スプライトのシルエットに合わせてコライダーの形状を修正すれば、オブジェクトの当たり判定の設定は完了です。

オブジェクトに重力や質量を加えるにはリジッドボディを使用します

オブジェクトに重力や質量を加える方法も、コライダーと同じ方法で行います。
オブジェクトを選択した状態で、インスペクターから「コンポーネントを追加(AddComponent)」を選択します。

リジッドボディ(Rigidbody)2Dまたは3Dを選択すると、質量や重力を割り当てることができます。

数値はそのままでも問題ありませんが、2D画像をオブジェクトに使用した場合、Constraintsの▼をクリックし、X軸とY軸の回転を固定にチェックを入れておくことをおすすめします。これにより、画像やオブジェクトが予期せぬ方向に回転しないようにすることができます。

オブジェクトが落下し続けないように床を作成します

この段階でゲームを実行すると、オブジェクトが落下しますが、受け止める床がなければオブジェクトは落下し続けてしまいます。

ヒエラルキーから「+」ボタンを押し、3Dオブジェクト→「平面」を選択します(2Dでゲームを作成している場合は2Dを使用します)。

平面オブジェクトを選択し、落下させたいオブジェクトに対して位置やサイズを調整します。
オブジェクトの数を増やしたり、角度を調整することで落下のバリエーションを変化させることもできます。

オブジェクトをコピーする場合は、コピーしたいオブジェクトを選択してCtrl+Dを押します(Windowsの場合)。

オブジェクトの配置が終わったらUnityを実行します

オブジェクトの配置が終わったら、Unityエディターの上中央にある再生(Play)ボタンを押します。

オブジェクトが床を突き抜けてしまう場合は、平面の位置や接触判定(Mesh Collider)のチェックが外れていないか確認してください。

また、床に使用するオブジェクトは平面以外にも、複雑な形状の3Dオブジェクトや、透明なコライダーを使って表現することも可能です。

コメント

コメントする