【Godot】使い方(6)衝突領域の設定

Godot ゲーム制作

 作成したキャラクターに、衝突領域を設定します。これを設定することで、キャラクターが敵やアイテムに当たった(重なったか)かどうかの判断をすることができるようになり、キャラクターに様々な効果をもたらすことができるようになります。



 衝突領域と当たり判定
 キャラクターやオブジェクトに衝突領域を設定することで、キャラクター同士や壁などに当たったかどうかを判断(当たり判定)できるようになる。各キャラクター・オブジェクトの衝突領域が重なっているかどうか、どのくらいの距離にあるかどうかを判定することで、この二つの物体が衝突したかどうかを判断できるようになっている。




衝突領域ノードの作成

 プレイヤーが他のキャラクターや壁などのオブジェクトにぶつかったかどうかを判断するために、まずは衝突領域を管理するノードを作成します。ここでは、使い方(4)で作成したプレイヤーキャラクターを例に進めていきます。

①「player」シーンタブを選択。
②シーンドックから「Player」シーンを選択。
③シーンドックの子ノード追加ボタン「」をクリック。
④表示された「Nodeを新規作成」ウィンドウから「CollisionShape2D」を選択し作成。


衝突領域の形状とサイズを設定

 次に、作成されたCollisionShape2Dのインスペクターから、衝突領域の形状とサイズを設定します。シーンドックから、先ほど作成された子ノード「CollisionShape2D」を選択し、インスペクタードックから、以下の操作をします。

①インスペクターのCollisionShape2DのShapeのコンボボックスをクリック。
②出てきたリストの中から、楕円の図が付いた新規CapsuleShape2Dを選択。

 リストの左についている青い画像は、衝突領域の形状や機能を表しています。選択する形状は、衝突領域を設定したいキャラクターの形状に合わせると扱いやすいと思います。


 選択が完了すると、キャラクターの上に青い範囲と赤い点で、衝突領域が現れます。赤い点を移動することで、その位置と範囲を変更することができます。操作は以下のようになります。

大きさの変更:
 2つの赤い点のどちらかをクリックしたままマウスを移動すると範囲が変わる。この場合、右の点が左右の大きさ、下の点が上下の大きさが変えられる。

位置の変更:
 中央の十字になっている赤い点をoptionキーを押した状態でマウスをドラッグ移動すると、位置を変えられる。

衝突領域の回転:
 commandキーを押した状態で青い領域をマウスでドラッグ移動すると、衝突領域が回転する。

 これらの操作で衝突領域の範囲を調整してください。キャラクターの画像全てに衝突領域が入る必要はないと思います。この衝突はもう少し緩い方がいいなとか、もう少しシビアな方が操作感が上がるななど、使いやすさを見ながら調整していけば良いと思います。

今回は、以下のような範囲にしています。


野菜のキャラクターも同様に設定しました。Shapeの形状はCircleShape2D(円形)にしています。