見出し画像

ゲームの遅延についてまとめる

最近では昔のゲーム機やアーケード筐体の移植版などがいろいろと発売され、レトロゲームブームが続いていると思います!ですが同時に「遅延が気になる」などの声があがることが増えてきている実感があります。

また、e-sports や RTA などに注目が集まり、ゲームにシビアさが要求される場面も増えてきました。その中でも「遅延を減らすにはどうするか?」といった議論が出てくるようになりました。

さらに、VR 機器では酔いの防止などの理由から、ゲームの設計段階で「低遅延」が求められています。

一方で、これだけ「遅延」を気にする要素が揃ってきているにも関わらず、「遅延」についての情報がまとめられることは少なく、敏感でない人にとっては「何のことか分からん」状態になっているのではないかと思います。

個人的には楽器演奏をしていたりすることもあってか昔からこの「遅延」に対して非常に敏感でした。ゲームをする際もモニターやコントローラの選定など出来る限りの対策をしていました。

そんな経緯からこの話題に関しては詳しいほうだと思いますので、このゲーム体験に大きな影響のある遅延という問題に対しての業界的理解が進むといいなと思い、本稿を書くことにしました。


1. 遅延とは

遅延は、ゲームのプレイヤーが物理的な入力操作を行ってから、その操作の結果のフィードバックとなるグラフィックス表示やオーディオ再生が行われ、プレイヤーに届くまでの時間を指します。

図に示したように、グラフィックスとオーディオではそれぞれ別々の遅延が起こります。本稿ではそれぞれ「グラフィックス遅延」、「オーディオ遅延」と呼ぶことにします。

また、ゲーム内で起こった現象に反応した操作をする際の判定遅れに関しても大体同じ時間になり、こちらを指す場合もあります。下図はグラフィックスに反応する場合の反応時間の扱いを示した図です。

遅延は常に一定というわけではなく、バラ付きが発生することがあります。本稿ではバラ付きの影響が少ない遅延分を「固定遅延」と呼び、大きくバラ付く遅延分を「変動遅延」と呼ぶことにします。

後でもう少し詳しく触れる事なのですが、最近のゲーム環境では昔のゲーム環境 (1990 年代前半辺り) と比較して、この遅延が大きくなりがちです。その理由や影響についても本稿を通じて雰囲気を掴んでもらえたらと思っています。

2. 遅延の影響

遅延のゲーム体験への影響について確認していきます。

前置きしておきたいのですが、こういう話をしていると「気にし過ぎ」というような指摘を見かけることがあります。「気にしないで楽しんでるんだから水を差さないで欲しい」というような意図だったりと指摘する側の気持ちも理解はできるところで、伝えることの難しさを感じます。

ですが、伝えたいことは非難の気持ちではなく「気が付く気が付かないに関わらず平等にゲーム体験に影響が出る」という事実の部分です。その影響の度合いがなるべく分かりやすいよう工夫してお伝えできればなぁと考えています!

2-1. 早押しゲー厶、反応時間への影響

画面に合図が現れたらボタンを押すなど操作をしてその早さを競うゲーム性の場合、遅延はゲームそのものに直接的に影響します。

反応できた時間やフレーム数を測る場合、実際には反応時間に遅延時間を足した時間が計測されることになります。つまり反応が問われる場合、遅延時間が長いとシンプルにその分だけ不利になります。

(例えばヘッダ画像にもある「刹那の見斬り(星のカービィ スーパーデラックス 内のミニゲーム)」をスーパーファミコン実機&ブラウン管環境でプレイすると割と 1 桁スコアが出るのですが、Switch で運任せでなく出せる人はいるでしょうか?)

また、早押しゲームそのものでなくても、「FPS で陰から一瞬だけ現れる敵を撃つ」「格闘ゲームで相手の行動に合わせた返し技」など、アクション性のあるゲームで早押しのような反応が問われる場面は多く、それらの状況でも直接的に遅延が影響してきます。

仮に元の反応時間を 200ms 程度とすると、遅延が 40ms 程度の環境では 240ms (200 + 40) の反応時間として扱われますが、遅延が 60ms 程度の環境では 260ms (200 + 60) の反応時間として扱われることになります。

これをゲーム的な表現をしてみると 「反応時間 8.3% 増のデバフ(260/240≒1.083)」を受けていることになります。これを気にするのは果たして「気にし過ぎ」でしょうか?

2-2. リズムゲームへの影響

リズムゲームは遅延の影響を非常に受けやすく、様々な面で遅延を気にする必要が出てきます。

まず、オーディオ遅延の演奏感への影響です。楽曲の一部をコントローラー操作によって演奏するタイプのリズムゲームでは、楽器演奏と同じように低遅延が強く求められてきます。

「楽器演奏並みの低遅延」というのも 10ms ~ 50ms くらいの幅で諸説ありますが(笑)、気持ちよく演奏感を得るためには結構な低遅延が必要になるというのがポイントです。

(演奏タイプのリズムゲームは最近めっきり減りましたが、多分それも遅延と無関係ではないでしょう……。)

次にオーディオ遅延の判定への影響です。こちらはある程度遅延が発生していてもその量が分かれば遅延分を考慮した判定が行えるので、比較的解決しやすい影響ではあります。(過去作の移植などでは難しいですが……)

スマートフォンなどのリズムゲームで見かける、判定タイミングを調整できる機能などがこれの解決方法の一つに当たります。

とはいえ、遅延分を考慮した判定で解決できるのは「固定遅延」部分だけなので、「変動遅延」が大きい場合には問題になってきます。

どの程度で変動遅延が問題になってくるかですが、例えば 180bpm の 16 分音符を判定することを考えると、1音符辺り約 83ms なので、40ms 程度の変動遅延が発生する場合には正しい判定がかなり難しくなることが分かると思います。

最後に、リズムゲームは譜面を目で見てタイミングを取ることも考えられるため、グラフィックス遅延も判定へと影響します。判定タイミング調整機能ではそこまでカバーしていない場合が殆どで、グラフィックス遅延とオーディオ遅延の差が大きい環境ではどちらかのタイミングしか合わせることができません。

大きな遅延が発生する環境ではゲーム側で判定を緩くするなどの対策でなんとか遊べる状態に持っていっている事が多いですが、判定が安定しないなどゲームの楽しさの部分にも影響が出てしまいます。

2-3. その他、操作感への影響

2-1、2-2 に該当しない場合でも、遅延は操作のモタつきなど操作感を悪化させる原因になっていて、気になる人は気になるところでしょう。

どれくらいの遅延から気が付くか?どれくらいの遅延から許容ができなくなるか?などは個人差が出てくるところですので、そういった判断を行うときは気をつけたいところです。

3. 遅延の量

実際の数値としての遅延量がどんなものか、あまり知識や実感がない人が多いかと思います。細かく要因について見ていく前に、ざっくりと今昔の遅延量を確認していきたいと思います。

プレイするゲームソフトや使用する機器などの環境によって差が出てくるものなので、目安程度の紹介になります!

3-1. レトロゲームの遅延量

レトロゲームと言っても思い浮かべるものに大きな差が出る時代になりましたが(笑)、ここではスーパーファミコン以前くらいの 2D スプライトで内蔵のチップ音源なゲーム機を直接ブラウン管テレビに繋いで遊ぶ場合を考えます。

この時の遅延量は一例として下記くらいと思います。

グラフィックス遅延 : 固定 30ms + 変動 17ms
オーディオ遅延 : 固定 20ms + 変動 17ms 

  • コントローラーは有線の専用規格で低遅延

  • 入力のフレーム待ち分が変動遅延

  • ゲーム処理は 1 フレームかける想定

  • 描画とモニター表示はほぼ同時に 1 フレーム弱かけて行われる (正確には画面上の位置によって遅延量が異なる)

  • 音源はバッファなどを介さず発音されるため低遅延

また、この頃は環境による遅延量の差があまり生じず、多くの人が公平な条件で遊べていました。

3-2. 最近のゲームの遅延量

一方、最近のゲームではかなり事情が違ってきます。色々な環境を想定すると目安も出しにくいので、一旦 60fps の環境で特別遅延の大きい周辺機器などを使用していないケースに限った話とします。

その場合、遅延量は下記くらいになります。ある程度条件を限定しても幅があり、レトロゲームより遅延は大きめです。

グラフィックス遅延 : 固定 40〜80ms + 変動 20〜40ms
オーディオ遅延 : 固定 30〜60ms + 変動 30〜50ms

  • コントローラーに無線や汎用規格などが使用されていて変動成分の多い入力遅延が発生しがち

  • 入力のフレーム待ち分の変動遅延は同じ

  • バッファリングなど描画システムなどの都合上、描画に数フレームかかるケースが多い

  • 普通の液晶モニターは表示に若干遅延が発生

  • オーディオ出力が殆どの場合 PCM でバッファを使用してオーディオフレームで処理を行う。オーディオフレーム待ちの変動遅延を含むバッファ分の遅延が発生

また、今回の数値には反映されてない変動要素が下記のように多く存在します。

  • フレームレートの違い (低フレームレートほど高遅延)

  • 大きく遅延の発生するコントローラー

  • 大きく遅延の発生するモニター

  • (PC、スマートフォンゲームの場合) OS の機能やグラフィックデバイスの機能の違い

  • 大きく遅延の発生する無線オーディオデバイス

環境によって大きな遅延量の差が生まれてしまい。公平なゲームプレイが難しくなってしまっているとも言えます。

4. 遅延の要因

遅延の発生に関して、モニターやコントローラーの遅延などいくつかの要因に対して言及されているのは見かける事が多くなってきたとは思うのですが、実際のところ遅延の原因はもっと多岐に渡ります。

また、「遅延は足し算」ということに気を付ける必要があります。例えばネットワーク通信で遅延が大きかったとしても、モニターやコントローラの遅延が消え失せるわけでは無く、全てを足して更に大きくなった遅延がゲー厶体験へと影響しています。

この項では、分解した遅延の原因それぞれを解説していきます。分解といっても説明の便宜上で分類しているだけで、それぞれの接続部はしっかりと分けられるものでは無かったり環境によって分解箇所が異なったりします。

4-1. 入力操作の遅延

入力操作の遅延は、コントローラーのボタンなどが物理的に操作されてから、ゲーム処理側からその操作を取得するまでの時間を指します。

入力操作の遅延は細かく分けると下記のような要素に分かれます

  • 入力機器のポーリング期間 (変動遅延)

    • 入力機器の種類やドライバの設定などに依存

  • 入力機器とゲーム機の通信時間

    • 入力機器の種類やドライバの設定などに依存

  • 入力のフレーム待ち (変動遅延)

    • 主にフレームレートに依存

4-2. ゲーム処理による遅延

ゲーム処理による遅延は、入力操作を取得してから、それを反映したゲームの状態が決定するまでの時間です。

ゲーム処理は処理の特性によって色々変わってはきますが、ネットワーク通信を行う場合を除いて概ね 1 フレーム以内に収まるように設計されることが多いです。 

(ネットワーク通信が絡んでくるとまたいろいろややこしいですが、その辺りに関しては別の機会に……)

4-3. 描画処理による遅延

描画処理による遅延はゲームの状態が決定してからモニターに対して映像信号が送られるまでの時間です。

描画の処理はゲームソフトの描画エンジンの仕様やグラフィックデバイスの仕様などによっていろいろと変わって来ますが、1 ~ 数フレームをかけて行われることが多いです。

細かくは下記のような要素が影響しますが、どう影響するかは複雑です。

  • フレームレート (基本的には高フレームレートほど低遅延)

  • ゲームソフトの描画エンジンの仕様

  • ゲームハードやグラフィックデバイスの描画機能の仕様

  • (PC ゲームの場合) ウィンドウモードかどうかなど描画の設定

4-4. モニターによる遅延

モニターによる遅延は、モニターが映像信号を受け取ってから、プレイヤーがそれを視認できるまでの時間です。

コンポジット映像信号出力をブラウン管モニターで映す場合、描画処理とモニター表示処理がほぼ同時なので、モニターの遅延としてはほぼ無いものとみなせますが、液晶テレビなどでは映像信号を受け取ってから画面表示されるまでに若干遅延が発生します。

また、下記のような状況の差で、モニターの遅延が変わってきます。

  • 高解像度化やハイフレームレート化などモニターでの画像処理が行われる場合高遅延

  • コンポジット入力の液晶表示など、入力された映像信号をコンバートして表示する必要がある場合高遅延

  • 「ゲームモード」などがあるモニターで機能を使用する場合、遅延の発生する処理を省いて低遅延になっている場合が多い

4-5. オーディオ処理による遅延

オーディオ処理による遅延はゲームの状態が決定してからそれを反映したオーディオデバイスに対してのオーディオ信号が送られるまでの時間です。

下記のような要素の差で、オーディオ処理の遅延が変わってきます。

  • オーディオフレーム待ち (変動遅延)

    • ゲームではオーディオフレームは 5~20ms 間隔くらい?

  • バッファ処理分の遅延

  • 一部のオーディオ信号処理による遅延

  • (PC、スマートフォンゲームの場合) OS ミキサーの処理など

内蔵チップ音源のレトロゲームを移植する場合、チップ音源をデジタルシンセサイザーに置き換えたオーディオフレーム処理などが必要になるため、オーディオ処理の遅延がかなり大きくなってしまう場合があります。

4-6. オーディオデバイスによる遅延

オーディオデバイスによる遅延はオーディオデバイスが音声信号を受け取ってから、スピーカーやヘッドフォンなどから実際に音が再生されるまでの時間です。

細かくは下記のような要因でオーディオデバイスによる遅延が起こります。

  • 無線通信など信号伝送経路での遅延

    • 標準的な BlueTooth Audio はかなり高遅延なので、ゲームには不向きです

  • 音響補正などデバイス固有のオーディオ信号処理による遅延

4-7. 空気伝搬(距離)による遅延

最後の最後にド物理的な話なのですが、音というものは空気中をまぁまぁゆっくり伝わるので、プレイヤーがスピーカーから離れていると遅延が発生します。

人によっては「そんなん無視できんだろ?」という印象を持ってしまうかもしれませんが実際に音速 340m/s で計算してみると、1m で約 3ms と案外無視はできません、笑。

5. 遅延を減らす

ゲームを低遅延でプレイしたい場合、プレイヤー目線でできる対策としては下記などがあります。

  • 遅延の少ないモニターを選択する

  • 遅延の少ない入力機器を選択する

  • 遅延の少ないオーディオ機器を選択する

  • フレームレートを上げる

  • 遅延の少ないグラフィックス設定にする

ちなみに、360fps などの高フレームレートで周辺機器を適切に選択すればレトロゲームを超える低遅延の実現が可能といえます。対応したゲームは多くないですが、気になる方はやってみてください、笑。

(また、ゲームソフトの処理側に依存している遅延量も多いため、ゲーム制作者目線での遅延対策についても別の機会に触れられたらと思います……)

6. 参考資料など

NVIDIA Reflex の紹介ではありますが、ある程度網羅的に遅延について紹介されています。

おわりに

遅延について一通り網羅的にまとめてみました。(以前にディレイについて網羅的にまとめてみていた記事も書いているのでどんだけ遅延好きなんだよ?って感じですよね?笑)

もっとしっかり書きたかった感も強いのですが、いろいろ直していくとキリが無くていつまでも公開できそうになかったので、ここは思い切って公開してみよーー!!というスタンスです……。

一時期は本当に遅延の大きい環境が理解のないまま野放しになっていて……、最近ようやく少しずつ見直しの流れができつつあるとは思っています。こういった共有が、少しでもゲームの楽しさを強化することに繋がれば良いなと思います!


いいなと思ったら応援しよう!