「もう一回」までの操作数を減らす:結果から再開までの最短
遊びをつくる執筆にClaudeを使用しています。

ミスが重なってゲームオーバーになった直後を考えてみます。結果画面が出て、プレイヤーはもう一度遊びたいと思っています。この瞬間から次のプレイが始まるまでに、何回ボタンを押す必要があるでしょうか。結果画面で「メニューへ」を押し、難易度を選び直し、「スタート」を押し、さらにカウントダウンを待つ設計なら、操作は3回以上になります。「もう一回」の気持ちは、その途中で冷めやすいものです。 この記事の問いは、結果から再開までを一手(1回の入力)にするには何を決めればよいか、そして一手にしたときに何が起きるか、です。短くするだけなら話は簡単です。ただ、再開を速くすると、結果を読む時間、記録の扱い、遊び続けすぎといった副作用が出ます。そこで、アソバースの公式作品の確認済みの機能から「設計から読み取れること」を整理し、自分のゲームで数えて確かめる手順までをまとめます。各作品の結果画面の細部は、作品を開いて確かめてください。
「操作数」を数える単位を決める
まず測る範囲を決めます。始点は「結果が表示された瞬間」、終点は「次のプレイで最初の入力が効く瞬間」です。この間に必要な入力の回数と、入力できない待ち時間の2つを分けて記録します。
- 入力の回数:クリック、タップ、キー入力を1回と数えます。スライダーや選択肢の変更も1回です。
- 待ち時間:演出、カウントダウン、読み込みなど、何も入力できない時間です。秒数で記録します。
- 引き継ぎ:前回と同じ条件(コース、難易度、配置など)で始まるかどうかです。引き継がれないと、選び直しの入力が増えます。
「もう一回」を理想の形にすると、入力回数は1、待ち時間は短く、条件は前回のままです。ただし、条件を前回のままにすることが常に正解とは限りません。難しすぎて終わった直後に同じ条件で再開するのが望ましいかは、ゲームによって変わります。この点は第4節で扱います。
一手にするための三つの設計
一手にするための設計は、次の三つに分けられます。
- 既定のボタンを再開にする。 結果画面で最初にフォーカスが当たるのが「もう一回」なら、Enterやスペースだけで再開できます。マウスの移動が要らなくなります。
- 前回の条件を持ち越す。 コースや難易度を記憶して、そのまま次のプレイに渡します。選び直したい人のために、変更は別の入口に置きます。
- 演出を飛ばせるようにする。 結果の演出が長いと、一手にしても待ち時間が残ります。アソバースの公式作品13本はすべて「動きを抑える」設定に対応しています。動きを減らす設定と、演出を短縮する設計は相性がよいと読み取れます。
一つ目と三つ目を、最小のコードで形にします。結果表示の直後に短い入力無効の時間を置き、その後に「もう一回」へフォーカスを移す例です。0.6秒は説明用の仮の値で、適切な長さはゲームごとに決めてください。
<!doctype html>
<meta charset="utf-8">
<button id="retry" disabled>もう一回</button>
<p id="msg"></p>
<script>
let runs = 0;
const btn = document.getElementById('retry');
const msg = document.getElementById('msg');
function showResult(score) {
msg.textContent = `結果: ${score}点 / 今回で${runs}回目`;
btn.disabled = true; // 連打による誤再開を防ぐ短い間
setTimeout(() => { btn.disabled = false; btn.focus(); }, 600);
}
function start() {
runs++;
msg.textContent = 'プレイ中…(1.5秒後に結果)';
btn.disabled = true;
setTimeout(() => showResult(Math.floor(Math.random() * 100)), 1500);
}
btn.addEventListener('click', start);
start();
</script>ボタンにフォーカスが当たっていれば、EnterキーやスペースキーもそのままクリックとしてJavaScriptに届きます。キー操作用の処理を別に書く必要はありません。0.6秒の無効時間は、プレイ中に連打していた入力が結果画面に漏れ込んで、結果を見ないまま再開してしまう事故への対策です。これは副作用への備えの例でもあります。
公式作品から読み取れる、再開の粒度
再開には大きさの違いがあります。「一手戻す」は最も小さく、「同じ配置の再挑戦」はその中間、「最初から別のコースを選ぶ」は大きな再開です。確認済みの機能から、各作品がどの大きさの再開を用意しているかを読み取ってみます。
- かたちのあいだ、確認済みの機能:一手戻す(手数は減らない)、同じ配置の再挑戦、時計の一時停止、設計から読み取れること:一手戻すと配置のやり直しが別の機能で、再開に2つの粒度がある。手数が減らない仕様は、戻しても失敗の記録が残る設計と読める
- プリズムの道、確認済みの機能:戻す、一歩だけのヒント、解放済みステージの選び直し、最少回転の記録、設計から読み取れること:失敗後に戻す手と、別のステージへ移る手が分かれている
- 小さな軌道、確認済みの機能:全軌道予測(点線)、前回の軌道(細い実線)、予測を消して挑む、一時停止から同じ位置で再開、設計から読み取れること:前回の結果を次の試行へ持ち込む設計。表示のタイミングは作品を開いて確かめる
- 時計じかけの台所、確認済みの機能:時間制限なしの見習いと、1皿28秒・配膳6秒・ミス3回までの本番、設計から読み取れること:失敗の重さを2段階に分け、練習と本番で再開の意味が変わる
- 紙ひこうき郵便、確認済みの機能:36秒・40秒・44秒の3ルート、3回ぶつかると終了、設計から読み取れること:1回が約40秒前後と短く、短い単位が「もう一回」を成り立たせやすい
ここで注目したいのは、「一手戻す」と「やり直し」が別の機能として並んでいる作品が多いことです。再開を一つのボタンにまとめず、失敗の大きさに応じて粒度を選べるようにしています。結果から再開までの最短は、粒度ごとに別々に考えると整理しやすくなります。
一方、各作品の結果画面に「もう一回」に当たる入口がどこにあり、何回の入力で始まるかは、確認済み事項に含まれていません。この数は、読者が各作品を開いて数える項目です。
一手にしたときの副作用
再開を速くすると、次のような副作用が出ます。いずれも断定ではなく、確かめるべき観点です。
失敗の連鎖と結果を読む時間
結果を読まずに再開できると、失敗の原因を確認しないまま同じ失敗を繰り返しやすくなります。こだまの森には、聴き直し(15点減)と間違い(30点減、3回で終了)があります。減点で失敗の重さを示す設計は、再開が速いほど意味を持ちます。再開前に原因を一行だけ見せる、結果画面の最初の入力だけは少し遅らせる、といった対策が考えられます。
記録の持ち方
公式作品13本のうち、保存があるのは余白の庭・WAVE / WAVE・かたちのあいだの3作品だけです。それ以外の10作品の記録や録音は、画面を開いている間だけ残ります。たとえば小さな軌道の最速記録や月夜の配達の最少区間数はプレイ中だけの記録です。「もう一回」を重ねて記録を更新していく遊びは、画面を開き直すと白紙に戻ります。自作ゲームで同様の設計にする場合は、記録が消えることを結果画面に添えるか、クラウドセーブに保存するかを決めておく必要があります。クラウドセーブは作品ごとにJSONで128KiBまでです。
プレイ回数に映らない可能性
アソバースのプレイ回数は、作品の起動を実測した回数です。同じ端末・作品の30分以内の再起動は重複を除きます。人数ではありません。ここから、作品内で完結する「もう一回」は起動として数えられない可能性が読み取れます。つまり、再開の速い作品で何度も遊ばれても、プレイ回数にはその分が現れないかもしれません。ランキングにプレイ回数の切り替えがあるため、数字の読み方には注意が要ります。作品内の再開が起動に数えられるかどうかは、現在の案内で確認してください。
条件の持ち越しと誤操作
前回の条件を持ち越すと、難しすぎた設定のまま繰り返し挑むことになる場合があります。難易度を下げる入口を結果画面に残すと、持ち越しの副作用を和らげられます。時計じかけの台所のように、練習の場(見習い)が別にある作品は、この問題への一つの答えと読めます。
自分のゲームで数える手順
次の手順で、自作のゲームの「もう一回」を測れます。
- 結果画面を出す条件(ゲームオーバー、クリア、時間切れ)を種類ごとに書き出します。
- 種類ごとに、結果表示から次のプレイの最初の入力が効くまでを3回ずつ数えます。入力回数と待ち時間を別の列に書きます。
- 前回の条件が引き継がれるかを、コース、難易度、配置などの項目ごとに確認します。
- 連打でわざと結果画面へ入力を流し込み、結果を見ないまま再開してしまわないかを確かめます。
- 画面を開き直して、記録がどこまで残るかを確かめます。
結果の読み方は次のとおりです。入力回数が2以上なら、まず既定のボタンと引き継ぎを見直します。入力回数が1なのに待ち時間が長いなら、演出の短縮が先です。連打で結果を飛ばしてしまうなら、短い入力無効の時間を入れます。数え終わったら、どの粒度の再開(一手戻す、同じ条件、別の条件)を用意するかを決めます。
次の行動
自作のゲームでも公式作品でも、結果画面を出して入力回数と待ち時間を数えてみてください。数え終えたら、いちばん入力の多い場面を一つ選び、既定のボタンか条件の持ち越しのどちらかだけを直してみます。直したあとに連打で誤再開が起きないかを確かめれば、一周です。

