マガジン

小さな軌道の軌道予測はどこまで正確に描いているか

遊びを見つける

執筆にClaudeを使用しています。

月夜の街を結ぶ配達経路と、手前に置かれた自転車と三つの小包。
記事のテーマをもとに制作したAI生成イラスト。

「小さな軌道」では、発射角度と初速を決めると、引力で曲がる軌道が点線で表示されます。この点線を信じて撃ったのに、実際の軌道が少し違う場所を通った。そう感じる場面を考えてみます。原因は自分の操作かもしれませんし、予測線の描き方かもしれません。 この記事の問いは、「点線はどこまで実際の軌道と重なり、どこから重ならなくなるのか」です。作品がどんな計算で点線を描いているのか、どこかをあえて省いているのかは、現在の案内では確認できません。そのため、仕組みを断定する代わりに、確認できている事実、予測線が一般にずれる理由、読者が自分の画面で答えを出す手順の順に進めます。

この記事の目次
  1. 確認できていること、まだ分からないこと
  2. 予測線が実際の軌道からずれる一般的な理由
  3. 設計から読み取れること:点線と細い実線がそろっている意味
  4. 自分で確かめる手順
  5. 結果の読み方と起こりやすい誤り
  6. 次の行動

確認できていること、まだ分からないこと

まず、根拠にできる範囲を整理します。「小さな軌道」について確認済みなのは次の点です。

  • 発射角度と初速を決め、引力で曲がる軌道でゲートを目指す
  • 星系は3つある
  • 全軌道予測が点線で表示され、前回の軌道が細い実線で残る
  • 予測を消して挑むこともできる
  • 一時停止から同じ位置で再開できる
  • 最速記録はプレイ中だけ残る

一方、次の点は確認済み事項に含まれていません。

  • 予測の計算方法(刻み幅、数値積分の種類など)、現在の扱い:不明。作品を開いて確かめる
  • 予測が実際の軌道と完全に一致するか、現在の扱い:不明。自分で重ねて確かめる
  • 予測が意図的に簡略化されている部分があるか、現在の扱い:不明。確認する手順を後述する
  • 点線がどこまで先を描くか、現在の扱い:「全軌道予測」という名称以外は不明

「わざと外した部分」があるかどうかは、この表では「不明」です。記事の後半では、あるかもしれない前提で、それを見つける方法を示します。

予測線が実際の軌道からずれる一般的な理由

引力で曲がる軌道を画面に描くとき、多くのゲームは時間を細かく区切って位置を少しずつ更新します。これを数値積分と呼びます。区切りの幅(刻み幅)が大きいほど計算は軽くなりますが、曲がり角では本来の曲線から外れやすくなります。

以下は、この作品の実装ではありません。一般的な考え方を確かめるための最小例です。ブラウザの開発者ツールのコンソールに貼り付けると、同じ発射条件でも刻み幅だけで終点が変わるかどうかを見られます。

html
<script>
function simulate(dt, tMax) {
  let x = -3, y = 0;      // 発射位置
  let vx = 0, vy = 1.2;   // 初速
  const gm = 1;           // 中心の星の引力の強さ
  for (let t = 0; t < tMax; t += dt) {
    const r2 = x * x + y * y;
    const r = Math.sqrt(r2);
    const a = -gm / r2;
    vx += a * (x / r) * dt;
    vy += a * (y / r) * dt;
    x += vx * dt;
    y += vy * dt;
  }
  return { x: x.toFixed(3), y: y.toFixed(3) };
}
console.log("粗い刻み 0.1  :", simulate(0.1, 20));
console.log("細かい刻み 0.001:", simulate(0.001, 20));
</script>

読み方は単純です。二つの終点が近ければ、この条件では刻み幅の影響が小さいと言えます。離れていれば、予測を粗く計算した線は後半ほど実際から外れやすいと言えます。値を変えて、星に近づく軌道ほど差が広がるかどうかも試せます。

予測線がずれる理由は、刻み幅のほかにもあります。

  • 予測は先の一定区間までで打ち切られている
  • 予測では描かない要素が、実際の動きにだけ働いている
  • 画面の拡大や縮小で、線の太さや点の間隔が実際より大きく見えている

どれが当てはまるかは、作品側の情報なしには決められません。次の節では、確認済みの機能から読み取れることだけを述べます。

設計から読み取れること:点線と細い実線がそろっている意味

確認済みの仕様で注目したいのは、予測の点線と前回の軌道の細い実線が、同じ画面で並んで見られる点です。この二つは役割が違います。点線は「これから撃つとこうなる」という予告で、細い実線は「前に撃ったらこうなった」という実績です。

この組み合わせから読み取れることは二つあります。

一つ目は、読者が予測と結果を見比べやすい構成になっていることです。発射を重ねるたびに、予測の点線と、直前の実際の軌道の実線を見比べられます。予測が当たるかどうかを、プレイしながら自然に検証できる形です。

二つ目は、予測を消して挑む遊び方が用意されていることです。予測を消すと、頼れるのは前回の軌道の記憶と引力の感覚になる可能性があります。予測を消した状態で前回の実線がどう表示されるかは、確認済み事項にありません。作品を開いて確かめてください。

予測が「簡略化されている」と断言できる根拠はありません。ただ、予測を消せるという設計は、予測を信頼できる補助として置いていることを示唆します。完全な答えを示すものというより、考える材料として置かれているのかもしれません。この読みはあくまで設計からの推測です。

自分で確かめる手順

次の手順で、点線がどこまで当たるかを記録できます。

  1. 星系を一つ選びます。3つの星系それぞれで調べると、星の配置による違いも見られます。
  2. 発射角度と初速を決め、点線の形を見ます。数値が表示されるなら控え、表示されないなら点線の曲がり方をメモします。
  3. そのまま発射し、実際の軌道が細い実線として残るのを確認します。
  4. 同じ角度と初速でもう一度設定します。今度は、前回の細い実線の上に新しい点線が重なって見えます。
  5. 重なり具合を、次の3点で記録します。
  • 発射直後の区間で、点線と実線が重なっているか
  • 星に近づく曲がり角で、ずれが出始めるか
  • 点線が途中で終わっているか、実線の終点まで届いているか
  1. 各星系で3回ずつ繰り返します。1回だけでは操作のぶれと区別できません。

記録は、「星系名・設定・重なった区間・ずれ始めた場所」の4項目を1行にまとめると、後で比べやすくなります。

手順を補う使い方

発射前に一時停止できる場面があれば、拡大した画面で点線を見直してください。一時停止から同じ位置で再開できるので、観察のために止めても進行は崩れません。

結果の読み方と起こりやすい誤り

記録がそろったら、次のように読みます。

  • すべての区間で点線と実線が重なるなら、少なくとも試した条件では、予測は実際の軌道をよく再現していると言えます。
  • 星に近い曲がり角から外れるなら、前節のコードのように、計算の粗さや、強い曲がりでの誤差が出ている可能性があります。ただし作品側の理由は特定できません。
  • 点線が実線の途中までしか届かないなら、予測に長さの上限があるのかもしれません。点線の長さが条件で変わるかも合わせて見てください。
  • 同じ設定なのに実線が毎回違うなら、予測の問題ではなく、発射の設定が見た目ほど同じではない可能性があります。

起こりやすい誤りは三つあります。

一つ目は、操作の誤差を予測の誤差と取り違えることです。角度や初速の入力が少しずれると、星に近い軌道ほど結果が大きく変わります。同じ設定を再現できているか、先に確かめてください。

二つ目は、画面の拡大率を変えたまま比べることです。拡大するとずれが大きく見えます。比べるときは表示条件をそろえてください。

三つ目は、1回の結果で結論を出すことです。「わざと外している」と思えても、3回見て同じ場所で同じようにずれるか確かめてから判断してください。

最速記録はプレイ中だけ残る仕様です。観察のためにゲームを閉じると記録は消えるので、記録を残したいときは、遊び終えるまで画面を開いたままにしてください。

次の行動

星系を一つ選び、同じ設定で2回撃って、点線と細い実線を重ねて見てください。ずれ始める場所が分かったら、その場所の星との距離も一緒に記録してみてください。予測を消して同じ軌道を撃ち直すと、予測がなくても狙えるかどうかも比べられます。