このマニュアルについて
このマニュアルでは、ACTION GAME MAKER のクイックリスタート機能と、その記録先になるオートセーブについて解説を行います。
ACTION GAME MAKER でのクイックリスタートの概要
クイックリスタートは、中間地点からのやり直しや落下死のリカバリを、待ち時間なしで行うための機能です。実行アクション「クイックリスタート(QuickRestart)」で実行します。
仕組みは「オートセーブという保存先を使い、そこへ高速に戻る」というものです。記録は通常のセーブと同じ「ゲームデータの保存(SaveGameData)」で行い、保存先に「オートセーブ」を選ぶだけです。覚えることが増えるのはオートセーブという保存先 1 つだけで、セーブの考え方は変わりません。
| 保存先=通常スロット | 保存先=オートセーブ | |
|---|---|---|
| ゲームデータの保存 | ファイルへ書き込みます | すぐにメモリへ記録し、ファイル書き込みはあとで行います |
| ゲームデータの読込 | 従来どおりです | 同じように読めます(起動し直したあとの「つづきから」に使えます) |
| クイックリスタート | 使えません | シーン遷移なし・BGM 継続で最速に戻れます |
オートセーブへ記録する
「ゲームデータの保存(SaveGameData)」の「スロット指定タイプ」で「オートセーブを指定」を選びます。スロット番号は使いません。中間地点に触れたときや、ボス部屋へ入ったときなどに実行してください。
- 保存される内容は通常のセーブと同じです。オブジェクトの位置や状態、変数・スイッチが「セーブ可能」の設定に従って記録されます。
- 中身の形式も通常のセーブと同じなので、「ゲームデータの読込」でオートセーブを読み込めますし、「ゲームデータの存在チェック」で有無を判定できます(どちらもスロット指定タイプで「オートセーブを指定」を選びます)。
- 記録はまずメモリ上に行われ、ファイルへの書き出しはシーン切り替え時とゲーム終了時にまとめて行われます。これは記録のたびに書き込んで処理が止まるのを避けるためです。そのため、書き出す前に強制終了した場合は最後の書き出し以降の記録が失われます。
「クイックリスタート(QuickRestart)」
「その他アクション追加」の「ファイル」カテゴリにあります。リスタートキーを押したとき、落下して死亡したとき、体力が 0 になったときなどに置きます。
戻し方
| 戻し方 | 戻るもの | シーンの状態 | 向いている用途 |
|---|---|---|---|
| オートセーブ地点へシーンごと戻す | 記録時点のすべて(全オブジェクトの状態・カメラ・レイヤー・プロジェクト変数・共有ボード) | 記録時点まで巻き戻ります | 本来の中間地点リスタート |
| オートセーブ地点へ自分だけ戻る | 自分の位置だけ | そのまま維持されます | 倒した敵は倒したまま、自分だけ戻したいとき |
| 最後に接地した足場へ戻る | 最後に立っていた足場の位置 | そのまま維持されます | 落下死のリカバリ |
「自分だけ戻る」と「足場へ戻る」では、戻ったあとにオブジェクトの「復活時の実行ステート」が実行されます。復活の演出や無敵時間はそこで作ってください。
「シーンごと戻す」は、記録したシーンと今いるシーンが同じ場合はシーン遷移をしないため一瞬で戻ります。別のシーンにいる場合はシーンの読み込みが避けられないため、通常の読み込みと同じ動作になります(BGM も最初からになります)。
BGMの扱い
「シーンごと戻す」のときだけ使う設定です。
- 同じBGMなら継続する: 記録時と同じ BGM が鳴っていればそのまま流し続け、違っていれば記録時の BGM を頭から鳴らします。中間地点を通ったあとにボス BGM へ変わった場合でも、リスタート後にボス BGM が鳴り続ける事故を防げます。
- 記録時のBGMを鳴らし直す: 常に記録時の BGM を頭から鳴らします。
「自分だけ戻る」「足場へ戻る」では、今鳴っている BGM がそのまま続きます。
クリア対象
リスタートするときに何を片付けるかを選べます。いずれもシーン全体(このアクションを実行したオブジェクトだけではありません)が対象です。
- 弾幕を消す: 飛んでいる弾幕の弾をすべて消します。
- エフェクトとパーティクルを消す: 画面に残っている演出を消します。
- オートセーブ後に増えたオブジェクトを消す: 記録時点に存在しなかったオブジェクトを消します。コントローラーで操作するオブジェクトは消えません。「シーンごと戻す」では復元処理そのものが消すため使われません。
- オブジェクトの復活を無効化: 復活を待っているオブジェクトの一覧を破棄して、戻ってこないようにします。これはゲーム全体が対象です。
足場へ戻るときの動き
「最後に接地した足場へ戻る」は、オートセーブを一度も実行していなくても動きます。落下死のやり直しだけを入れたい場合は、この戻し方だけで完結します。
- 記録されるのは、空中から接地した瞬間の「足場と、その足場から見た自分の位置」です。移動する床の上に立っていた場合でも、床が動いた先の正しい位置へ戻ります。
- 履歴は最新 3 件まで残ります。壊れる床のように足場が消えていた場合は、1 つ前の履歴へ戻ります。
- 履歴がすべて使えない場合はオートセーブ地点へ、それも無い場合は何も起きません。
- 同じ足場の上でも、記録した位置から離れると別の履歴として記録されます。この「別とみなす距離」はプロジェクト設定の「クイックリスタートの足場距離(タイル数)」で決まります(既定は 3 タイル分)。
- 足場を記録するのはゲームオブジェクトだけです。軽量オブジェクト(Area2DGameObject)は接地の概念を持たないため、この戻し方は使えません。
実用例
中間地点からのリスタート
- 中間地点のオブジェクトに接触したら「ゲームデータの保存」を実行し、スロット指定タイプを「オートセーブを指定」にします。
- プレイヤーの死亡アクションに「クイックリスタート」を置き、戻し方を「オートセーブ地点へシーンごと戻す」にします。
- BGMの扱いを「同じBGMなら継続する」にしておくと、同じ場所でのやり直しがスムーズになります。
落下死のやり直しだけを入れる
- オートセーブは使いません。
- 落下判定(画面外に出た、トゲに触れた など)から「クイックリスタート」を実行し、戻し方を「最後に接地した足場へ戻る」にします。
- プレイヤーの「復活時の実行ステート」に、点滅と短い無敵時間のアクションを作っておきます。
倒した敵は倒したまま自分だけ戻す
- 戻し方を「オートセーブ地点へ自分だけ戻る」にします。
- クリア対象で「弾幕を消す」と「エフェクトとパーティクルを消す」をオンにしておくと、戻った直後に残った弾で即死することを防げます。
- 「オブジェクトの復活を無効化」をオンにすると、倒した敵が復活しなくなります。
起動し直したあとの「つづきから」
- タイトル画面で「ゲームデータの存在チェック」(オートセーブを指定)を使い、記録があるときだけ「つづきから」を選べるようにします。
- 選ばれたら「ゲームデータの読込」(オートセーブを指定)を実行します。オートセーブは通常のセーブと同じ形式なので、そのまま続きから遊べます。
注意点
- クイックリスタートを実行すると、戻る前に速度が打ち消され、カメラも戻った先へすぐに追いつきます。これは落下速度を持ったまま戻って落ち続けたり、「画面外に出たら」の条件が戻った直後に成立して延々とリスタートを繰り返すことを防ぐためです。
- 「自分だけ戻る」「足場へ戻る」では、戻るのは位置だけです。変数・スイッチや他のオブジェクトの状態は戻りません。全部を巻き戻したい場合は「シーンごと戻す」を使ってください。
- 「シーンごと戻す」を実行すると、足場の履歴は破棄されます。
- オートセーブの記録が無い状態で「シーンごと戻す」「自分だけ戻る」を実行しても何も起きません。ゲーム開始直後に押される可能性がある場合は、「ゲームデータの存在チェック」で条件を付けるか、「足場へ戻る」を併用してください。
- オートセーブはファイル書き出しを遅らせるため、強制終了では最後の書き出し以降の記録が失われます。区切りのよい場所では通常スロットへのセーブも用意してください。
- クイックリスタートは、このアクションを実行したオブジェクトが対象です。2 人プレイで両方を戻したい場合は、それぞれのオブジェクトで実行するか、「シーンごと戻す」を使ってください。