このマニュアルでは
- 物理挙動としての坂
- ヴィジュアルスクリプトでの坂の検知
の2つの項目について説明します。
1. 物理挙動としての坂
ゲームオブジェクトの動作の指定
ACTION GAME MAKERのオブジェクトはGodotのCharacterBody2Dを継承しているため、斜面での動作を指定することができます。
GameObjectノードのインスペクターを確認してください。CharacterBody2D>floorが該当箇所です。
floorの各オプションについて解説します。
- Stop on Slope: オンの場合、坂の動作を有効にします。オフにすると、坂は壁として扱われます。
- constant_speed: オンにすると坂でも一定の速度で走れるようになります。オフの場合、物理挙動に沿って上りは遅くなり、下りでは早くなります。
- Block on Wall: オンにすると壁で止まります。オフの場合は壁にあたっても滑って移動できます、どちらかというとオフはトップビュー用の設定です。
- Max Angle: 立ち止まれる坂の最大角度です。この角度を超えると滑ってしまいます。
- Snap Length: 坂から飛び出すのを防ぐ設定です。物理挙動上、下り坂ではキャラクターは空に飛び出してしまいますが、ここで指定したピクセル以内のキャラクターは地面に吸い付き、坂の上を走って下れるようになります。
ヴィジュアルスクリプトでの坂の検知
坂タイルの作成
TileSetで任意のタイルを選択し、Physicsで坂の形状のコリジョンを作成するだけで坂として動作します。しかし、ヴィジュアルスクリプトで検知するためにはもう1つ設定が必要です。
タイルへの坂属性の付与
同じくTileSetで任意のタイルを選択した状態で、WallCollisionメニューのIs Slopeをオンにしてください。
ヴィジュアルスクリプトでは、この属性がオンのもののみを坂として認識します。