マガジン

レースゲームの「曲がる気持ちよさ」はどこにあるか

遊びを見つける

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

段ボールで作った簡素なカーブを、小さな赤いレーシングカーが曲がる試作風景
記事のテーマをもとに制作したAI生成イラスト。

コーナーが近づく場面を考えてみます。アクセルを離すのか、ブレーキを踏むのか。ステアリングをいつ切り始め、出口でいつアクセルに戻すのか。うまく曲がれた周と、ぎこちなかった周では、画面の車の動きだけでなく、指の動きも違っているはずです。この記事では、その違いを目に見える形にして確かめます。 題名の問いに先に答えの方向を示します。曲がる気持ちよさは、ステアリングを切る瞬間だけにあるのではなく、減速、旋回、加速という3つの局面の切り替えにあると考えてみます。切り替えのたびに入力と画面の反応が対応していれば、車は思った通りに動きます。対応がずれると、修正の操作が増えて流れが途切れます。この見方が自分の遊ぶゲームに当てはまるかどうかは、入力を記録して図にすれば確かめられます。 ここで示すのは、記録の取り方と図の読み方です。数値の結果は載せていません。遊ぶ人は自分の指で、作る人は自作のゲームで、同じ手順を行ってください。

この記事の目次
  1. 気持ちよさを3局面と2つの切り替えに分ける
  2. 操作を「入力の帯」の図に書き起こす
  3. 記録の取り方:何を、どの単位で、何回
  4. 結果の読み方:形が決まるか、毎回ばらつくか
  5. 起こりやすい誤りと、作る人への応用
  6. 次の行動

気持ちよさを3局面と2つの切り替えに分ける

1つのコーナーを、時間順に3つの局面に分けます。

  • 減速:コーナーの手前で速度を落とす局面です。ブレーキを踏む、アクセルを離すのどちらでも構いません。
  • 旋回:ステアリングを切って向きを変える局面です。
  • 加速:出口に向けてアクセルを戻し、速度を取り戻す局面です。

局面そのものより、局面と局面の境目に注目します。

  1. ターンイン:減速から旋回に移る点です。ブレーキを解く時刻と、ステアリングを切り始める時刻の関係が見どころです。
  2. 立ち上がり:旋回から加速に移る点です。アクセルを戻す時刻と、ステアリングを戻し終える時刻の関係が見どころです。

ブレーキを完全に解いてからステアリングを切るのか、ブレーキを残したまま切り込むのか。ステアリングが戻り切る前にアクセルを入れるのか、戻し切ってから入れるのか。この順序と重なりが、操作の「リズム」を決めます。ゲームによって車の挙動の設計は異なるので、気持ちよく感じるリズムも同じとは限りません。この違いを比べられるのが、分析の強みです。

操作を「入力の帯」の図に書き起こす

入力を3本の帯にします。行はアクセル、ブレーキ、ステアリング(左右はまとめます)の3本、横軸は時間です。押している間を■、離している間を□で書きます。次の図は書式を示す例で、実際に計測した結果ではありません。1マスを0.5秒とし、1コーナー分の6秒(12マス)を並べています。

図A(ステアリング終了後にアクセルを戻す例)
マス   0123456789AB
アクセル ■■■□□□□□■■■■
ブレーキ □□□■■□□□□□□□
ステア  □□□□■■■■□□□□

図B(ステアリングの途中でアクセルを戻す例)
マス   0123456789AB
アクセル ■■■□□□■■■■■■
ブレーキ □□□■■□□□□□□□
ステア  □□□□■■■■□□□□

マスの番号は、0〜9のあとにA(10番目)、B(11番目)と数えます。

図Aを読んでみます。ブレーキはマス3〜4、ステアリングはマス4〜7です。ブレーキとステアリングはマス4で重なっています。アクセルはマス3〜7が空白で、ステアリングが終わったマス8で戻ります。図Bは、アクセルがマス6で戻り、ステアリングの終わり(マス7)と2マス重なっています。

この2つのどちらが気持ちいいと決めることは、図からはできません。大事なのは、切り替えの形が図で言葉にできることです。「ブレーキを残して曲がり込み、ステアリングの終わりまでアクセルを入れない」といった言い方で操作を説明できれば、ゲーム同士や周同士の比較が可能になります。

記録の取り方:何を、どの単位で、何回

記録の単位

単位は「1コーナー × 1周」です。コース全体で記録すると形が混ざるので、まず特徴の違う2種類のコーナーを選びます。たとえば、ゆるやかなコーナーと急なコーナーです。同じコーナーを、5〜10周分記録してください。

記録の方法

方法は2つあります。

  • 画面録画のコマ送り:遊ぶ様子と、操作が分かる映像(手元の撮影や、画面に出る入力表示)を録画します。0.5秒刻みで、各入力が押されているかを手で書き取ります。60コマ/秒の録画なら1コマが約0.017秒なので、0.5秒刻みには十分な精度です。
  • 入力ログの自動記録:自作のゲームに、キーの押下と解放を時刻付きで残す処理を足します。次の最小構成が、そのまま図に描けます。
html
<canvas id="c" width="600" height="120"></canvas>
<script>
const row = {ArrowDown:0, ArrowLeft:1, ArrowRight:1, ArrowUp:2};
const color = ['#d33', '#36c', '#2a2'];
let t0 = null, logs = [], open = {};
const g = document.getElementById('c').getContext('2d');
addEventListener('keydown', e => {
  if (e.key === 'Enter') { t0 = null; logs = []; open = {}; return; }
  if (!(e.key in row) || e.repeat) return;
  e.preventDefault();
  const now = performance.now();
  if (t0 === null) t0 = now;
  open[e.key] = now - t0;
});
addEventListener('keyup', e => {
  if (!(e.key in open)) return;
  logs.push({k: e.key, s: open[e.key], e: performance.now() - t0});
  delete open[e.key];
});
function draw() {
  g.clearRect(0, 0, 600, 120);
  const now = t0 === null ? 0 : performance.now() - t0;
  const bars = logs.concat(Object.keys(open).map(k => ({k, s: open[k], e: now})));
  for (const b of bars) {
    g.fillStyle = color[row[b.k]];
    g.fillRect(b.s * 0.06, row[b.k] * 40 + 8, Math.max(2, (b.e - b.s) * 0.06), 24);
  }
  requestAnimationFrame(draw);
}
draw();
</script>

上段が下矢印(ブレーキ)、中段が左右(ステアリング)、下段が上矢印(アクセル)で、最初のキー入力から10秒分を描きます。Enterで記録をリセットします。このページ単体で動かすと、自分の指の癖を確かめる練習になります。実際のレースゲームの入力を外から取る仕組みではありません。ゲームの画面にキー入力が渡っている間は別のタブでは記録できないので、実ゲームの分析には、自作ゲームにこの処理を組み込むか、画面録画を使ってください。ゲームのキー設定がWASDなら、rowのキー名を小文字のwなどに替えます。

数えるもの

各周の帯から、次の項目を数えて表にします。単位はすべて「マス」(0.5秒)か「回」です。

  • ブレーキとステアの重なり、数え方:両方が■のマス数
  • アクセルの空白、数え方:アクセルが□のマス数
  • ステア終了からアクセル再開まで、数え方:負の値なら、ステア途中でアクセルを戻している
  • ステアの切り返し、数え方:旋回中に向きを変えた回数

数値は集計して初めて意味を持ちます。5〜10周分の値を並べたとき、ばらつきも見てください。

結果の読み方:形が決まるか、毎回ばらつくか

数えた値を、次のように読みます。

  • 周ごとの帯の形がそろっている:自分の操作が安定していて、車の反応が読みやすいゲームだと考えられます。切り替えのタイミングが体で覚えられている状態です。
  • ステアの切り返しが多い、または形が毎周違う:入力に対する画面の反応が読みにくい可能性があります。あるいは、まだそのコースに慣れていないだけかもしれません。どちらかは、周を重ねて切り返しが減るかで見分けます。
  • アクセルの空白が長い:旋回中に加速を待つ設計のゲームか、車の挙動が怖くてアクセルを戻せない状態かのどちらかです。ゲームの説明や、車が滑り出す様子と合わせて判断してください。
  • ブレーキとステアの重なりが長い:減速しながら曲がる操作が成立するゲームです。重なりがほとんど出ないなら、アクセルを離すだけで曲がれる設計かもしれません。

入力の種類も影響します。キーボードはオンかオフかの入力なので、帯が角張ります。アナログのスティックやハンドルでは、入力の強さを連続的に記録できるので、帯が滑らかに変わります。両者の帯は直接比べず、同じ入力方法の中で比べてください。

異なるゲームを比べるときは、コーナーの形が揃えられません。数値の大小ではなく、帯の形の違い(ブレーキ主導か、アクセル操作主導か、など)に注目すると、ゲームの設計の違いを言葉にできます。

起こりやすい誤りと、作る人への応用

誤りが起こりやすい点を挙げます。

  • 条件のずれ:車種、天候、コースを変えて比べると、操作の違いが設計の違いかどうか分からなくなります。
  • 学習効果:後半の周は慣れで形が整います。周の順番を記録し、前半と後半を分けて見てください。
  • 速度表示への依存:速度の数字だけで気持ちよさを判断すると、操作の流れが見えません。速度は参考にとどめてください。
  • 録画のずれ:手元の動きと画面の反応を同じ録画に収めるときは、開始の合図(たとえば最初のキー押下)を基準に揃えます。

作る人は、図に見えた切り替えの問題を、設計の数値に戻して調整できます。たとえば、次のような対応を考えられます。

  • ステアの切り返しが多いなら、ステアリングへの追従の速さを見直す。
  • 減速から旋回への移行がぎこちないなら、ブレーキの効きと旋回開始時の速度低下を見直す。
  • 立ち上がりでアクセルを戻すのをためらうなら、出口での加速の立ち上がり方を見直す。

調整は1項目ずつ行い、そのつど同じコーナーで帯を取り直してください。

次の行動

まず、いつも遊んでいるレースゲームのコーナーを1つ選び、5周分を録画して、帯の図に書き起こしてください。アソバースにはログイン不要で遊べる作品が並んでいます。作品を選ぶときは、作品ページの操作説明を確かめてください。自作ゲームがあるなら、上のコードで入力ログを取り、帯が毎周そろっているかを見るところから始めてください。