ゲームを知る

デモ 035ラバーバンド

デモを読み込んでいます
上の段は補正なし、下の段は補正あり(既定では先頭との差に応じて後ろの走者を最大 10% 速くする)のレースです。どちらも同じ乱数で 4 人が走り、あなたの走者はプレイヤーのモデルが中盤に加速させます。段の中は先頭の周りだけを映し、数字は補正で速くした割合(赤は補正なしでは誰も出せない速さ)、菱形は中間の先頭です。グラフは 300 レースで 1 位がゴールしたときの先頭と最後尾の差です。下のボタンで自分でも試せます。ステージをクリックすると、キーボード(スペースで加速、N で次のレース)でも操作できます。

第五章 システムとバランスNo.035

ラバーバンド

Rubber Banding別名 ラバーバンド AI

概要

レースのように順位を競うゲームで、走者どうしの差に応じて後ろの走者を速くしたり先頭を遅くしたりして差を縮める補正。差が開いたまま決着が見えてしまうのを防ぎ、終盤まで順位が入れ替わる余地を残す。その代わり、途中で稼いだ差が結果に効きにくくなり、強い補正は相手が不自然に速くなったように見える。

使われる場面

コンピューターと走るレース
コンピューターの走者をプレイヤーとの差に応じて速くしたり遅くしたりする。プレイヤーが抜け出しても後ろに相手が見え、出遅れても前に追う相手が残る。
何人かで遊ぶレースや競争
遊ぶ人どうしの腕前の差で順位が早々に決まらないよう、後ろの人を速くする。慣れていない人も終盤まで勝負に加われる。
追いかける場面と逃げる場面
追ってくる敵や逃げる相手の速さを、プレイヤーとの距離に応じて変える。相手を見失うことも一気に差が詰まることもない距離を保つ。

判断基準

こういうときこうする
序盤で差がつくと順位が入れ替わらず、後半は消化試合になる後ろの走者を前の走者との差に応じて速くする。差が決まった距離に達したら補正を上限で止め、補正の強さは 5〜10% から試す。デモでは補正なしで 22 m ある差の平均が、5% で 13 m、10% で 8 m に縮む。
後ろの相手が不自然に速くなって、ずるいと感じる補正で速くした速さに上限を付け、補正なしでいちばん速い走者が出せる速さを超えないようにする。デモでは上限を付けても差の平均は 7.6 m のまま変わらない。
先頭を走っていたのに最後に抜かれることが多く、納得できない補正を弱める。デモで中間を先頭で通った走者が 1 位になる割合は補正なしで 72%、5% で 57%、10% で 43%、20% で 30% である。
先頭を走っていると急に遅くなり、うまく走った意味がない先頭を遅くする補正をやめ、後ろを速くするだけにする。デモで補正の強さ 10% のまま先頭も遅くすると、中間の先頭が 1 位になる割合は 43% から 31% に下がる。
加速のような切り札を最後まで取っておくと、ほとんど勝ててしまう切り札を中盤に使ったときと終盤に使ったときの勝ちやすさを比べ、開きが大きければ補正を弱める。デモでは開きが補正なしで 1 ポイント、5% で 29 ポイント、10% で 45 ポイントある。
コンピューターを引き離しても、すぐに追いつかれる補正を弱める。補正をコンピューターだけにかけているなら、プレイヤーより前にいるコンピューターを遅くする補正も入れて、プレイヤーが後ろにいるときにも働くようにする。

遊んでこう感じたら

  • 一度差がつくと、後半は消化試合になるテンポ
  • 先頭を走っていたのに、最後に抜かれて納得できない理不尽さ
  • 相手が不自然に速くなって、ずるいと感じる理不尽さ
  • 頑張って引き離しても、すぐに追いつかれるやりがい
  • わざと後ろにいたほうが勝ちやすいやりがい

指示の例

  • 序盤で 1 位に 20 m 以上離されると追いつけず、後半は消化試合になる。コンピューターの車にラバーバンドを入れて、先頭の車と 10 m 離れたら最大 10% 速くなるようにして

  • 最下位の車が直線で急に速くなって、ずるいと感じる。ラバーバンドで速くした後の速さに上限を付けて、補正なしでいちばん速い車の最高速を超えないようにして

  • 先頭を走っていると急に遅くなって、うまく走った意味がない。ラバーバンドで先頭を遅くするのをやめて、後ろを速くするだけにして

  • 加速を最後まで取っておけばほぼ勝てて、途中で使う意味がない。ラバーバンドの補正を 10% から 5% に弱めて、途中で使った加速の差が残るようにして

  • ラバーバンドの効き具合がわからない。補正ありとなしで 300 レースずつ走らせて、1 位がゴールしたときの先頭と最後尾の差の平均と、中間の先頭が 1 位になる割合を並べて出して

詳細

差が開いたまま終わるレース

速さの違う走者が同じコースを走ると、速さの差は時間とともに距離の差として積み上がる。デモの 4 人の基本の速さは 1 秒に 19.2〜20.4 m で、いちばん速い COM A といちばん遅い COM C の差は 1 秒に 1.2 m ある。1 位がゴールするまでの 15 秒ほどで、この差だけで 18 m 開く。実際の速さは 0.5 秒ごとに引き直す調子(基本の速さの 0.9〜1.1 倍)と、ときどき起きるつまずき(0.6 倍)で揺れる。

デモの上の段は補正なしのレースである。同じモデルで 300 レース走らせると、1 位がゴールしたときの先頭と最後尾の差は平均 21.9 m で、99% のレースで 10 m 以上開いている。先頭が入れ替わるのは 1 レースに平均 2.8 回しかない。中間を先頭で通った走者は 72% のレースで 1 位になり、残り 1 割(270 m)の地点の先頭は 92% のレースで 1 位になる。後ろの走者にとって後半は順位のほぼ決まった道のりを走るだけになる。

差に応じて速さを変える補正

そこで、離された走者を速くして差を縮める。このように走者どうしの差に応じて後ろの走者を速くしたり前の走者を遅くしたりして差を縮める補正をラバーバンドと呼ぶ。ラバーバンドは輪ゴムのことで、離れるほど強く引き戻される様子から来ている。コンピューターの走者にかけるものはラバーバンド AI とも呼ぶ。

デモの下の段では、どの走者も自分以外でいちばん前の走者との差を見る。後ろにいれば差に比例して速くなり、差が 10 m に達したらそれ以上は強くしない。以下では、このときの倍率から 1 を引いた値を補正の強さと呼ぶ。既定の補正の強さは 10% で、10 m 以上離された走者は 1.1 倍の速さで走る。

// 走者の補正の倍率。gap は比べる相手(自分以外でいちばん前の走者)との差
function correction(gap: number): number {
  const amount = STRENGTH * Math.min(Math.abs(gap) / FULL_GAP, 1);
  if (gap > 0) return 1 + amount; // 後ろにいれば速くする
  if (gap < 0 && SLOW_LEADER) return 1 - amount; // 前にいれば遅くする(操作パネルの「前を遅くする」)
  return 1;
}

補正の強さ 10% では、1 位がゴールしたときの差の平均は 7.6 m に縮み、10 m 以上開くレースは 16% になる。先頭の入れ替わりは平均 3.8 回に増える。中間の先頭が 1 位になるのは 43% に、270 m の地点の先頭が 1 位になるのは 74% に下がり、順位は終盤まで決まらない。補正の強さを 5% にすると差の平均は 13.2 m、20% では 4.0 m になる。

補正で効かなくなる差

補正は差そのものを縮めるので、差がどうやってできたかを区別しない。デモのあなたの走者ではプレイヤーのモデルが中盤(スタートから 5 秒)に加速ボタンを押す。加速は速さを 1.25 倍にし、1 レースで 1.5 秒分だけ使える。1 秒に 20 m で走っているなら、20 × 0.25 × 1.5 = 7.5 m 前に出る。あなたの基本の速さは COM A より 1 秒に 0.4 m 遅く、15 秒で 6 m 離される。加速で稼ぐ 7.5 m がこれを上回るので、補正なしではあなたが 64% のレースで 1 位になる。

補正の強さ 10% では、あなたが 1 位になるのは 42% に下がり、COM A が 55% のレースで勝つ。あなたが加速で前に出ると、その差に応じて COM A が速くなり、稼いだ 7.5 m を取り戻すからである。操作パネルの「モデルの加速」を「なし」にすると、補正があってもなくても COM A が 77% のレースで勝つ。補正が縮めたのは、加速という操作で一度だけ稼いだ差である。基本の速さの違いは走っているあいだずっと差を生み続けるので、補正をかけても残る。

うまく操作して稼いだ差ほど結果に効きにくくなる。自動再生の 1 レース目では、上の段であなたが中間を先頭で通ってそのまま 1 位になる。下の段では同じ乱数で走っても COM A が追いつき、残り 20 m ほどであなたを抜いて 1.1 m 差で勝つ。2 レース目は反対に、上の段では COM A に 8.0 m 離されて負けるあなたが、下の段ではゴールの 6 m 手前で COM A を抜いて勝つ。後ろにいる人が追いつけるのも、先頭にいた人が抜かれるのも、同じ補正の働きである。

終盤まで力を取っておくほうが得になる

補正が差を縮めるには、差ができてからゴールまでに時間が要る。終盤に稼いだ差は縮める時間が残っていないので、そのまま結果に効く。

操作パネルの「モデルの加速」を「終盤」(スタートから 12 秒)にすると、補正なしであなたが 1 位になる割合は 63% で、中盤に加速したときの 64% とほとんど変わらない。補正の強さ 10% では 87% に上がり、中盤に加速したときの 42% との開きは 45 ポイントになる。このとき中間を先頭で通った走者が 1 位になるのは 29% しかない。補正があると、途中は後ろにいて補正で引っ張ってもらい、終盤に手持ちの力を使うのがいちばん勝ちやすい。わざと後ろにいたほうが得になる。

補正を弱めるとこの開きは小さくなる。補正の強さ 5% では中盤に加速して 53%、終盤に加速して 82% で、開きは 29 ポイントである。差をつける手段(加速、近道、道具など)を用意するゲームでは、その手段を中盤に使ったときと終盤に使ったときの勝ちやすさを比べて補正の強さを決める。開きが大きいなら補正を弱める。

補正が目に見えるとき

補正で速くなった走者が、補正なしではどの走者も出せない速さで走ることがある。デモでいちばん速い COM A が最も調子のよいときの速さは 20.4 × 1.1 = 22.44 m/秒である。補正の強さ 10% では、レースの時間の 9% でこの速さを超えて走る走者がいる(段の中の赤い数字)。300 レースのうち 93% のレースで一度はこの速さを超える。遊ぶ人から見ると、後ろにいた相手が誰にも出せないはずの速さで追いついてくる。

補正で速くした速さには上限を付け、補正なしでいちばん速い走者が出せる速さを超えないようにする。操作パネルの「補正後の速さに上限」をオンにすると、赤い数字は出なくなる。それでも差の平均は 7.6 m のままで、中間の先頭が 1 位になる割合も 43% から 45% に変わるだけである。上限に当たるのは調子のよいときに大きく補正された走者だけで、その時間はレースの 1 割に満たないからである。

先頭を遅くするか

差を縮めるには、後ろを速くするほかに前を遅くする手もある。操作パネルの「前を遅くする」をオンにすると、先頭の走者が 2 番手との差に応じて遅くなる。補正の強さ 10% のまま先頭も遅くすると、差の平均は 6.4 m に縮み、先頭の入れ替わりは平均 4.9 回に増える。中間の先頭が 1 位になるのは 31% に下がる。後ろを速くするだけのまま補正の強さを 15% に上げたときは、差の平均が 5.1 m とさらに縮むのに、中間の先頭が 1 位になるのは 35% である。先頭を遅くすると、差の縮み方のわりに先頭が報われにくくなる。

プレイヤーが先頭にいるときは、遅くされるのはプレイヤーが操る走者そのものになる。自分の操作とは関係なく、先頭にいるというだけで遅くなる。後ろを速くするほうを先に使い、先頭を遅くするのは後ろを速くするだけでは差が縮まらないときに限る。

補正をコンピューターだけにかけるとき

コンピューターの走者だけに補正をかけ、プレイヤーとの差で速さを変える作りもある。操作パネルの「補正をかける相手」を「COM だけ」にすると、COM はあなたより後ろにいるとき、あなたとの差に応じて速くなる。この補正はあなたが前にいるときにしか働かず、あなたが後ろにいるときは何も助けない。補正の強さ 10% では、あなたが 1 位になる割合は全員にかけたときの 42% より低い 35% になり、20% では 16% まで下がる。

「前を遅くする」もオンにすると、あなたより前にいる COM が遅くなるので、あなたが後ろにいるときにも補正が働く。このときあなたが 1 位になる割合は 41% で、全員にかけたときとほぼ同じになる。遅くなるのは COM だけなので、プレイヤーが操る走者が遅くされることはない。コンピューターだけに補正をかけるなら、後ろの COM を速くするだけでなく、プレイヤーより前の COM を遅くする補正も入れる。

差を縮めるほかの手段

順位が低い人を助ける仕組みは速さの補正のほかにもある。順位が低いほど良い道具が出る仕組みでは、道具を拾って使うのはプレイヤー自身である。追い上げは道具を使うという操作の結果として起きる。速さの補正はプレイヤーが何もしなくても働くので、追い上げが誰の操作の結果なのかが見えない。こうした追い上げの仕組みをまとめてキャッチアップと呼ぶこともある。

動的難易度調整との関係

「動的難易度調整」は遊んでいる様子に合わせて難しさを変える。ラバーバンドもプレイヤーとの差という遊んでいる様子に合わせて相手の速さを変えるので、動的難易度調整の一種と見られる。失敗が続いたら次の挑戦を易しくする形の動的難易度調整は、挑戦をまたいで難しさを変える。ラバーバンドは 1 回のレースの中で差を見ながら刻々と速さを変える。

関連項目