マニュアル: はしごタイルとはしごにつかまる

このマニュアルについて

このマニュアルでは、ACTION GAME MAKER のはしご機能について解説を行います。タイル側の設定と、実行アクション「はしごにつかまる(GrabLadderTile)」、その他条件「はしごタイルに重なっている(ContactWithLadderTile)」の 3 つを組み合わせて作ります。

ACTION GAME MAKER でのはしごの概要

はしごは、次の 3 つを組み合わせて作ります。

要素 役割
はしごタイル(タイル設定) どのタイルがはしごなのかを決めます
はしごタイルに重なっている(ContactWithLadderTile) はしごの前にいるかどうかを判定する条件です
はしごにつかまる(GrabLadderTile) つかまっている間の動き(重力停止・上下移動)を作る実行アクションです

つかまる・離れる・ジャンプで抜ける、といった切り替えはビジュアルスクリプトの遷移条件で作ります。はしごの挙動そのものはアクションが受け持ち、いつつかまるかは作り手が決める、という分担です。

はしごタイルを作る

はしごにするタイルは、タイル設定で次のようにします。

  1. 下部パネルでタイルセットを開き、はしごにするタイルを選びます。
  2. 「タイル効果」を有効にします。
  3. 「衝突判定パターン」を「重なり」にします。
  4. 「はしご」にチェックを入れます。

「重なり」は通行を妨げない設定です。はしごは通り抜けられる必要があるため、壁として置くのではなく重なりで置きます。そのぶん接触判定は走らないため、はしごの検知は「重なっているか」で行います。「接触」に設定したタイルは、はしごとして検知されません。

「はしごタイルに重なっている(ContactWithLadderTile)」

その他条件です。設定項目はありません。オブジェクトの中心がはしごタイルに重なっているときに成立します。

はしごにつかまる入口の条件(上入力とこの条件の組み合わせなど)や、はしごから抜けたことの判定(この条件が成立しなくなったとき)に使います。

「はしごにつかまる(GrabLadderTile)」

実行アクションです。このアクションが動いている間、オブジェクトははしごにつかまった状態になります。

  • 登坂速度: はしごを登り降りする速さです(1 秒あたりのピクセル数)。

つかまっている間の動きは次のようになります。

  • 重力が止まります(縦の速度も打ち消されるので、はしごの途中で静止できます)。
  • 横方向には動きません。中心の X 座標が、つかまったはしごの列の中心へロックされます。はしごの端にぶら下がって登るような見え方を防ぐためです。
  • 上入力で登り、下入力で降ります。使われるのは、そのオブジェクトの移動に割り当てた上下の入力です。
  • ほかのステートへ遷移してこのアクションが外れると、はしご状態は自動的に解除されます。解除用のアクションを置く必要はありません。

ビジュアルスクリプトの組み方

最小構成は 3 つのステートです。

  1. 通常(立ち・歩き)のステート
  2. はしごのステート(「はしごにつかまる」を置く)
  3. ジャンプや落下のステート

遷移条件の例は次のとおりです。

  • 通常 → はしご: 「はしごタイルに重なっている」+ 上方向の入力
  • はしご → 通常: 「はしごタイルに重なっている」の反転(はしごから外れた)、または接地した
  • はしご → ジャンプ: ジャンプボタンの入力
  • はしご → 通常(降り切った): 接地の条件

はしご中は横に動かないため、「はしごから横へ離れる」を作りたい場合は、横入力を条件にして通常のステートへ遷移させてください。

実用例

上下に登り降りできるはしご

  • はしごにするタイルに「タイル効果」→「重なり」→「はしご」を設定します。
  • プレイヤーに「はしご」ステートを作り、「はしごにつかまる」を置いて登坂速度を 100 前後にします。
  • 通常ステートから「はしごタイルに重なっている + 上入力」で遷移し、接地したら通常ステートへ戻します。

はしごから飛び降りる

  • 「はしご」ステートに、ジャンプボタンの入力条件からジャンプのステートへの遷移を追加します。
  • はしご状態はステートを抜けた時点で解除されるため、ジャンプ側で速度を与えれば、そのまま飛び降りられます。

はしごの上端から地面へ乗り移る

  • はしごタイルを、乗り移りたい床の高さより 1 マス上まで敷いておきます。
  • 「はしご」ステートから「はしごタイルに重なっている」の反転で通常ステートへ戻すと、登り切った位置で通常の移動に切り替わります。

注意点

  • 「衝突判定パターン」が「接触」のタイルは、はしごとして検知されません。必ず「重なり」にしてください。
  • はしごの検知はオブジェクトの中心で行われます。1 マスだけのはしごや細いはしごでは、中心が重なる範囲が狭くなるため、つかまりにくくなることがあります。
  • ロックされる X 座標は、つかまった瞬間のはしご列の中心で決まります。つかまったまま別の列へ移ることはできません。列を変えたいときは、いったんはしごを離れてからつかまり直す形にしてください。
  • はしごにつかまっている間は横方向の移動が止まります。横入力で離れる動きが必要な場合は、遷移条件を作ってください。
  • はしごにつかまっている間は「足場」として記録されません。クイックリスタートの「最後に接地した足場へ戻る」では、はしごの位置には戻りません。
  • はしごタイルの情報が取れなかった場合は、タイルのグリッドに合わせた位置へ吸着します(タイルの原点が揃っている前提の代替動作です)。