軌道の最接近距離を縮める:10回の挑戦で記録はどう動くか
遊びを見つける執筆にClaudeを使用しています。

「小さな軌道」でゲートにあと少しで届かない発射を何度か重ねたあと、10回目でようやく端をかすめたとします。これは上達でしょうか。それとも、たまたま角度と初速の組み合わせが合っただけでしょうか。成功か失敗かの二択だけで振り返ると、この区別はつきません。 そこでこの記事では、ゲートの成否ではなく「軌道がゲートにどこまで近づいたか」という距離を、自分で読み取って記録する方法を扱います。10回の距離を並べると、急に縮まる型、階段状に縮まる型、行き来する型など、上達の形が数字として見えてきます。ここに載せるのは測り方と読み方の設計だけで、数値の結果は載せていません。結果を出すのは、記録をとるあなた自身です。
最接近距離という物差しを自分で作る
「小さな軌道」は、発射角度と初速を決め、引力で曲がる軌道でゲートを目指す作品です。3つの星系があり、全軌道予測(点線)と、前回の軌道(細い実線)が表示されます。予測を消して挑むこともできます。
ここで使う「最接近距離」は、作品が表示する値とは限りません。画面に距離の数値が出るかどうかは、作品を開いて確かめてください。出ない場合に備えて、次のように自分で定義します。
- 軌道上でゲートにいちばん近づいた点を探します。
- その点からゲートまでの隔たりを、ゲートの幅を1とした倍数で読みます。
- ゲートを通り抜けた発射は0と記録します。
ゲート幅を単位にする理由は、画面を拡大したり縮小したりしても比率は保たれるからです。ピクセルで測ると、画面サイズが変わった途端に前の記録と比べられなくなります。
読み取りは、発射のあとに前回の軌道として細い実線が残っているのを確認し、次の発射の前に行います。目測なので、0.5刻み(0、0.5、1、1.5……)に丸めるのがおすすめです。細かく読もうとするほど、読み取りの誤差が上達の変化より大きくなります。
記録シートと、10回の組み立て方
1回の発射ごとに、次の列を残します。紙でも表計算でもメモ帳でも構いません。
- 回、内容:1〜10の通し番号、注意点:セットごとに1から振り直します
- 星系、内容:3つのうちどれか、注意点:1セットの中では固定します
- 予測、内容:点線あり/なし、注意点:1セットの中では固定します
- 角度・初速、内容:画面に数値があれば記録します、注意点:数値がなければ「前回より大きめ」など言葉で残します
- 最接近距離、内容:ゲート幅の倍数(0.5刻み)、注意点:通過は0とします
- ひとこと、内容:何を変えたか、なぜ外れたと思うか、注意点:後で読み返す手がかりになります
組み立ては次のとおりです。
- 星系を1つ決めます。
- 予測を「あり」にして10回発射し、記録します(セットA)。
- 時間を空けてから、同じ星系・同じ条件で予測を「なし」にして10回発射し、記録します(セットB)。
- 時間を空けるのは、セットAで覚えた感覚をそのまま持ち込むためではなく、疲れや慣れの影響を読み分けるためです。同じ日に続けるなら、間に休憩を入れ、休憩を入れたことも記録しておきます。
セットAとBは、どちらを先にやるかで結果が変わりえます。順番も記録に残し、可能なら別の日に順番を入れ替えてもう一度行うと、順序の影響を見分けやすくなります。
調整のしかたも決めておきます。1回の発射で変えるのは角度か初速のどちらか一方だけにします。両方を同時に動かすと、距離が縮んだ原因が分からなくなります。
集計の単位と、小さな計算ツール
10個の数が並んだら、次の3つを見ます。
- 各回の値:その回の最接近距離そのものです。ばらつきを見る基本の数です。
- 累積最小:その回までの最良値です。必ず下がるか横ばいになるので、「記録の更新」は分かりますが、直近の調子は分かりません。
- 3回移動平均:連続する3回の平均です。偶然の一発の影響をならして、傾向を見ます。
累積最小だけを見ると、一度のまぐれでも上達したように見えます。各回の値と移動平均を一緒に見るのが基本です。
手計算でも十分ですが、次のHTMLを保存してブラウザで開くと、数字を貼るだけで3つの列を出せます。外部通信は行わず、入力した内容は保存されません。
<!doctype html>
<meta charset="utf-8">
<textarea id="in" rows="3" cols="40" placeholder="書式の例: 3 2.5 2.5 1.5 ..."></textarea>
<button id="go">集計</button>
<pre id="out"></pre>
<script>
const out = document.getElementById("out");
document.getElementById("go").onclick = () => {
const v = document.getElementById("in").value
.split(/[\s,、]+/).filter(s => s !== "").map(Number);
if (v.length === 0 || v.some(Number.isNaN)) {
out.textContent = "数字を空白かカンマで区切って入力してください";
return;
}
let best = Infinity;
const lines = ["回 値 累積最小 3回平均"];
v.forEach((x, i) => {
best = Math.min(best, x);
let avg = "-";
if (i >= 2) {
const w = v.slice(i - 2, i + 1);
avg = (w.reduce((a, b) => a + b, 0) / 3).toFixed(2);
}
lines.push((i + 1) + " " + x + " " + best + " " + avg);
});
out.textContent = lines.join("\n");
};
</script>テキストエリアの「書式の例」は入力の形を示すだけのもので、実際の記録ではありません。最初の2回は3回平均が出ないので「-」になります。
もう一つ、簡単な見方があります。前半5回の平均と後半5回の平均を出して、差を取ります。差が大きく後半が小さければ、全体として縮んでいます。差が小さければ、横ばいかばらつきが大きいかのどちらかで、各回の値を見て区別します。
曲線の形から上達を読む
10回分の値を折れ線にすると、おおまかに次のような形に分かれます。表は目安であり、どの形になるかは記録してみるまで分かりません。
- 急降下型、見え方:序盤で一気に下がり、あとは小さな値で続きます、考えられる読み方:角度と初速の見当が早い段階でつかめた可能性があります、次にやること:距離0(通過)が続くなら、条件を難しくします(予測を消すなど)
- 階段型、見え方:数回同じ値が続き、ある回でまとめて下がります、考えられる読み方:何かを変えた回に転機があった可能性があります、次にやること:その回の「ひとこと」を見返します
- 横ばい型、見え方:値があまり変わりません、考えられる読み方:調整の方向が合っていないか、1回の変更が大きすぎる可能性があります、次にやること:変更の幅を小さくします
- 行き来型、見え方:大きく上下を繰り返します、考えられる読み方:変える量が大きすぎるか、読み取りのばらつきが大きい可能性があります、次にやること:変更を片方だけにそろえ、幅を半分にします
行き来型のとき、手の問題なのか、測り方の問題なのかを見分けるには、同じ発射の軌道を2回読み直して同じ値になるかを確かめます。読み直しで値がずれるなら、まず測り方を直す必要があります。
セットAとBを比べるときは、次の点を見ます。
- 各セットの平均を比べます。Bのほうが大きければ、予測の助けが記録に効いていた可能性があります。
- ただし、1セットずつでは偶然の差かもしれません。順番を入れ替えた追加のセットでも同じ向きの差が出るかを見ます。
- 予測なしで近づけたときの「ひとこと」を見ると、点線がなくても使えるようになった感覚の手がかりが残っています。
起こりやすい誤り
- 星系や予測の設定を途中で変える:条件が混ざると、距離の違いがどこから来たのか分からなくなります。
- 通過した回を0として扱い続けて「頭打ち」にする:0になったら、それ以上は縮められません。0が出たあとは、距離ではなく「予測なし」や別の星系といった条件を変えて続きを見ます。
- 10回だけで結論を出す:10回は傾向の入り口です。同じ手順を別の日にもう1セット行って、形が似ているか見ると確かさが増します。
- 作品内の記録に頼る:この作品の最速記録はプレイ中だけの記録で、画面を閉じると残りません。距離の記録も含めて、自分のメモに写しておきます。
- 時間と距離を混ぜる:最速記録は所要時間の話で、最接近距離とは別の物差しです。両方を追うなら、列を分けて記録します。
- 丸めの基準がぶれる:0.5刻みで読むと決めたら、最後まで同じ基準で読みます。途中で刻みを変えると、前半と後半が比べられなくなります。
次の行動
星系を1つ選び、予測ありで10回、最接近距離をゲート幅の倍数で記録してみてください。数字がそろったら、上の小さなツールに貼って、各回の値・累積最小・3回平均の3列を見比べます。余裕があれば、予測なしの10回を別のセットとして足して、曲線の形がどう違うかを確かめてみてください。

