マニュアル: コース移動(コース移動設定とコース移動プラットフォーム)

マニュアル: コース移動(コース移動設定とコース移動プラットフォーム)

このマニュアルについて

このマニュアルでは、ACTION GAME MAKER のコース機能について解説を行います。コースに沿ってオブジェクトを動かす「コース移動設定(CourseFollow2D)」と、コースに沿って動く床になる「コース移動プラットフォーム(CoursePlatform2D)」の両方をまとめて扱います。

ACTION GAME MAKER でのコースの概要

コースは、マップ上に「道」を描いて、その道に沿ってものを動かす機能です。道そのものは「コース設定(Course2D)」が持ち、その道をどう使うかで 2 種類の使い方があります。

使い方 何が動くか 主な用途
コース(オブジェクト) コースの下に入れたゲームオブジェクト 決まった軌道を飛ぶ敵、回転する障害物、巡回するアイテム
コース(プラットフォーム) プラットフォーム自身(乗れる床) 上下するリフト、横に流れる足場、トロッコ

どちらもコースの描き方は同じです。違うのは「誰が動くか」と「乗れるかどうか」です。

置き方

  1. マップ制作ビューでマップを開きます。
  2. 「マップレイヤー」ドックの追加メニューから、「コース(オブジェクト)」または「コース(プラットフォーム)」を選びます。
  3. コース設定と、その子(コース移動設定またはコース移動プラットフォーム)が一緒に作られます。
  4. コースの形を作り、動かすものを設定します。

「コース(オブジェクト)」の場合は、作られた「コース移動設定」の下に動かしたいゲームオブジェクトを入れます。「コース(プラットフォーム)」の場合は、プラットフォーム自身に画像・判定・アニメーションの子ノードが自動で作られるので、画像を差し替えれば完成します。

コースの形を作る

コース設定を選ぶと、中央画面の上部に「ポイントツール」が出ます。

ツール 内容
ポイントを選択 点を選んで動かします。Ctrl + クリックで点を追加、右クリックで点を削除します
コントロールポイントを選ぶ 点から伸びるハンドルを操作して、曲線のふくらみを決めます
ポイントを削除 クリックした点を削除します
曲線を閉じる 始点と終点をつないで輪にします

線の上をクリックすると、その位置に点を挿し込めます(区間の分割)。輪にしたコースはループ移動と相性がよく、上下する床のような往復は「終点で折り返す」で作ります。

「コース移動設定(CourseFollow2D)」

コースの下に入れたゲームオブジェクトを、コースに沿って動かします。

  • 進捗 / 進行率: コース上の開始位置です。進捗はピクセル、進行率は割合(0 から 1)で、どちらを変えても連動します。同じコースに複数のオブジェクトを乗せて、開始位置だけずらすといった使い方ができます。
  • 水平オフセット / 垂直オフセット: コースの位置から、どれだけずらして配置するかです。
  • コース方向へ回転: オンにすると、コースの進行方向に合わせてオブジェクトが回転します。
  • ループ / ループ回数: 端まで進んだあと繰り返すかどうかと、その回数です。
  • 条件を反転させる: コースを逆向き(終点側)から進みます。
  • 終点で折り返す: 端まで進んだら向きを変えて戻ってきます。往復する動きに使います。
  • キュービック補間: 曲線の補間方法です。オンは滑らかな代わりに処理が増え、オフは処理が軽い代わりにメモリを使います。

移動の速さは、コースの点ごとに設定します(後述の「点ごとの設定」)。

「コース移動プラットフォーム(CoursePlatform2D)」

コースに沿って動く床です。物理演算と同期して動くため、上に乗ったキャラクターが安定して運ばれます。

コースの設定(進捗・オフセット・回転・ループ・逆走・折り返し・補間)は、コース移動設定と同じ項目が並びます。加えて次の設定があります。

  • 移動速度: コース上を進む速さです(1 秒あたりのピクセル数)。プラットフォームは自分の移動速度を使うため、コースの点ごとの移動速度は無視されます。
  • 速度カーブ: 移動速度に掛ける倍率のカーブです。横軸はコースの進行度(0 から 1)です。始点でゆっくり動き出して中間で速くする、といった緩急を付けられます。

起動(動き出すタイミング)

  • モード: 「常時」「成立後は継続」「成立中のみ」から選びます。「常時」は起動条件を見ずにいつでも動きます。「成立後は継続」は条件が一度成立したら動き続け、「成立中のみ」は条件が成立している間だけ動きます。
  • 条件: 動き出す条件を並べます(次の項目)。条件を 1 つも置かない場合はすぐ動き始めます。
  • アクティブ時のアニメーション / 非アクティブ時のアニメーション: 動いている状態と止まっている状態が切り替わったときに、子のアニメーションプレイヤーで再生するアニメーションです。アニメーションのトラックで画像を変える、表示を切り替える、パーティクルを出すといった演出ができます。

起動条件(CoursePlatformCondition)

条件は上から順に、それぞれの論理演算(AND / OR)で組み合わせて判定されます。

  • 条件タイプ: 「乗員グループ」「入力」「スイッチ」「変数」から選びます。
  • 乗員グループ: プラットフォームの上に、指定したオブジェクトグループのものが乗っているかを見ます。空にするとどのオブジェクトでも成立します。
  • 入力条件 / 入力元: 入力で動かす場合の条件です。入力元は「乗っているオブジェクト」「いずれかのコントローラー」「指定したコントローラー」から選べます。乗っている人の操作で動かすトロッコが作れます。
  • スイッチ名 / 対象のスイッチ: スイッチの値を見ます。
  • 変数名 / 変数の比較方法 / 対象の変数: 変数の値を比べます(等しい・等しくない・より大きい・以上・より小さい・以下)。
  • スイッチと変数の参照先は、プロジェクトのデータベース・指定したオブジェクト・共有ボードのオブジェクトから選べます。
  • 条件を反転 / 前の条件との論理演算: 条件の結果を反転したり、前の条件と AND / OR でつないだりします。

点ごとの設定

コースの点は、それぞれに設定を持てます。コース設定のインスペクターで「カーブ」を開き、点(point_0、point_1…)の中にある設定を編集します。

  • 移動速度: その点から次の点までを進む速さです(コース移動設定のみ。プラットフォームでは無視されます)。
  • 動作切り替えスイッチ: その点に到達したとき、このスイッチが成立していなければ止まって待ちます。スイッチが成立すると再開します。「途中でいったん止める」動きはここで作ります。
  • 変数の変更: その点に到達したときに、変数の値を変更します。

実用例

上下するリフト

  • 「コース(プラットフォーム)」を置き、コースを縦に 2 点で描きます。
  • 「終点で折り返す」をオンにし、ループもオンにします。
  • 移動速度を 60 前後にすると、ゆっくり上下する床になります。

乗ったときだけ動く床

  • 起動のモードを「成立中のみ」にします。
  • 起動条件に「乗員グループ」を追加し、プレイヤーのグループを指定します。
  • 乗っている間だけ進み、降りると止まる床になります。「成立後は継続」にすると、一度乗れば最後まで進みます。

スイッチで動き出す仕掛け

  • 起動のモードを「成立後は継続」にします。
  • 起動条件に「スイッチ」を追加し、レバーを引いたときに ON になるスイッチを指定します。
  • 非アクティブ時のアニメーションに停止中の絵、アクティブ時のアニメーションに動作中の絵を割り当てると、動き出しが分かりやすくなります。

決まった軌道を飛ぶ敵

  • 「コース(オブジェクト)」を置き、コースを曲線で描きます。
  • 「コース移動設定」の下に敵オブジェクトを入れます。
  • 「コース方向へ回転」をオンにすると、進行方向へ機体を傾けられます。
  • 同じコースに敵を複数入れて、進捗(または進行率)をずらすと、隊列を組んで飛んでくる動きになります。

途中で止まる足場

  • 点ごとの設定で、止めたい点の「動作切り替えスイッチ」にスイッチを指定します。
  • その点に来ると停止し、スイッチが ON になると動き出します。
  • 「変数の変更」を使って、通過した点を数えることもできます。

注意点

  • インスペクターに出る「条件を反転させる」は、コースの逆走(終点側から進む)の設定です。表記が条件用の訳と共通になっているためこう見えていますが、意味は逆走です。
  • 速度カーブの値が 0 の位置は、そこから動けなくなる点になります(速さは「今いる位置」で決まるためです)。実際には下限が入っているので完全には止まりませんが、0 に近い位置では極端に遅くなります。その場で止めたい場合は、点ごとの「動作切り替えスイッチ」を使ってください。
  • プラットフォームは点ごとの移動速度を使いません。速さはプラットフォーム自身の移動速度と速度カーブで決めます。
  • コース設定は、ゲームシーンのオブジェクトを置く階層(ObjectRoot 配下)に置いてください。
  • 同じ形のコースをいくつも並べたいときは、マップレイヤードックの複製(Ctrl+D)が使えます。
  • コースに乗せたオブジェクトの移動はコースが受け持ちます。オブジェクト側の移動テンプレートで動かそうとしても、コース側の移動が優先されます。