Pages

Sunday, October 16, 2022

ストリートファイターVのトレモステージは本当に入力遅延が小さいのか?NVIDIA Reflex Analyzerで検証してみた - PC Watch

tosokpopo.blogspot.com
ストリートファイターVのトレーニングモードステージ「The Grid」

 ここのところ、新Ryzen(Zen 4)、新Coreプロセッサ(Raptor Lake)、新GeForce(Ada Lovelace)などの発表ラッシュがあったため、本連載の取りかかりが少し遅れてしまった。さて、本連載の第1~2回は、NVIDIAの「NVIDIA Reflex Analyzer」について取り扱ってきた。

 第1回では、NVIDIAの「PCゲームにおける入力遅延低減技術」への取り組みについて紹介するとともに、この「入力遅延」を計測する「NVIDIA Reflex Analyzer」の基本概念について解説した。

 第2回では、元々は「PCゲームにおけるマウスの左クリック入力」しか対応していない「NVIDIA Reflex Analyzer」を、家庭用ゲーム機のゲームコントローラに対応させて、PC以外の家庭用ゲーム機のゲームでも入力遅延の計測を行なえるように改造する手順を紹介した。

 第2回で紹介したこの改造で、同一のゲームタイトルのPC版と家庭用ゲーム機版の入力遅延を相互に比較できるようになったので、これを活用してもう少し「入力遅延の深淵」を覗いて見ることにしたい。

 今回も、筆者の好きな格闘ゲーム「ストリートファイターV」をメインのお題として「ゲームと遅延」について考えてみようと思う。

読者の疑問についての回答

 本題に行く前に、連載2回分公開後の1カ月間に読者から寄せられたいくつかの疑問に答えてみたい。

 まずはシンプルに用語の問題。

 本連載では、NVIDIAの「Reflex Analyzer」を扱ってきたが、これの正式名称は「Reflex Latency Analyzer」ではないか、という疑問だ。

 実はこれ、NVIDIAではよくある「ネーミングのブレブレ現象」の1つである。NVIDIAは、新技術をリリースすると"さりげなく"名前を変えてくることがたまにある。ときどき、GPUの型番すらリネームすることもある(笑)。

 近年では、GeForce RTXシリーズが登場以降、PCゲーミングファンの間に認知が進んだ「DLSS」(Deep Learning Super Sampling)だが、この技術は発表当初、アンチエイリアス処理にフォーカスした「DLAA」(Deep Learning Anti-Aliasing)と呼ばれていた。

 その後、DLAAに超解像技術が統合されて、広義なネーミングを想起させるDLSSをメインネームへ改めた。DLAAという概念自体は存続しているものの、現在はDLAAはDLSSの一部…ということになっている(DLSSの説明)。

 「Reflex Analyzer」も、2020年の発表当初は「Reflex Latency Analyzer」と呼ばれていたが、名前が長すぎるということなのか、近年ではNVIDIA自身が「Reflex Analyzer」と呼ぶようになった。本稿は、近年の呼び方に従った格好だ。

 もう1つは“遅延”に関する疑問だ。

 本稿で……というか、NVIDIA Reflex Analyzerが取り扱っている「入力遅延」(Input Latency)とは、「ゲームのプレイ操作が画面に現われるまでの総所要時間」を指している。

 下図は、NVIDIAが公開している、ゲームの処理系を簡易的なフロー図で表したものだが、NVIDIA Reflex Analyzerが計測するのは、この図で言うところの「End-to-End System Latency」に該当する。この遅延時間は「Input Lag」などと呼ばれることも多い。

 寄せられた疑問は、2つの質問が融合されたような感じだったので、2つに分解して答えてみたい。1つ目はこんな感じだ。

【質問1】計測で用いていたバルログの小キックは3フレーム技のはずなのに、記事で公開された入力遅延の計測結果(以下のグラフ)は、どれも60fpsの1フレーム時間の16.66msの3フレーム分である約50msを大きく超えていたのはなぜですか?

 格闘ゲームにおける「3フレーム技」は、確かに定義上、約50ms(≒16.66×3フレーム)の発生遅延時間がある。ただ、これは、ゲーム進行を司る衝突判定メカニクス側の「攻撃判定が発生するまでの時間」である。

 第2回で、NVIDIA Reflex Analyzerで測定した入力遅延値とは、ゲームコントローラのボタンを押してから、バルログが膝を腰の高さまで突き上げて、その膝が計測ポイントに到達するまでの時間なので「攻撃発生するまでの時間」と完全に一致するとは限らないのだ。

 というのも、もしかするとゲームメカニクス処理側では、膝が計測ポイントに到達する前……それこそ、バルログの膝がある程度上がった時点から攻撃判定が発生しているかもしれないからだ。

 なにしろ、ストリートファイターVは、グラフィックスは3DCGベースだが、攻撃判定自体は画面座標系の2Dベースで行なっており、ゲーム処理系としてグラフィックスと攻撃判定は別レイヤーでの制御になっている。

 いずれにせよ、NVIDIA Reflex Analyzerが計測しているのは、ゲームコントローラのボタンを押してから、設定した計測ポイントのグラフィックス状況が変化したと検知されるまでの所要時間なので、ゲームメカニクス側で管理している時間進行とはズレがある場合がある。

 なので、NVIDIA Reflex Analyzerによる計測結果の比較は、あくまで相対比較を行なってこそ意味を成す……ということだ。

 つまり、第2回でやったような「同一ゲームタイトルの同一シーンにて、画面上の同一の測定ポイントで計測する」ことを行なう必要があるということだ。

 では「何を計測すると興味深い結果が得られるのか」というと、1つは「モニターの表示リフレッシュレート」を変えての計測だ。上で再掲した計測結果を見てもらうと分かるように、ストリートファイターVでは、PC版において、リフレッシュレートを上げれば上げるほど入力遅延が低減することが分かる。

 2つめは「PCのスペック」を変えての計測だ。上の測定結果はRyzen 9 5950XとGeForce RTX 3090というかなりのハイエンドプロセッサ同士の組み合わせでの測定結果だが、筆者の経験では、ゲームの要求PCスペックに対して、ゲームを動かすPCスペックが十分に高くないと、リフレッシュレート120Hz設定くらいまではそこそこに入力遅延の低減効果があっても、それ以上ではほとんど計測結果が変わらないことがあった。

 なので、現状の自分のPCでお気に入りのゲームをプレイしたときに、どのくらい入力遅延があるのか、またリフレッシュレートをどのくらい上げた時まで遅延低減効果があるのか……などを調べることにはこの測定は向いている。

 また、この測定を、PCのCPUやGPUのアップグレード換装の前後に行なって、どれだけ入力遅延が減ったかを確認するのもおもしろいかもしれない。

 3つ目は、2つ目の例の延長線上のテストとも言えるが、同じゲームタイトルで、家庭用ゲーム機版とPC版の両方が出ている場合に、同条件で計測して「どちらがどのくらい入力遅延が大きいのか、小さいのか」を測定するのもおもしろい。上で示した前回の測定結果は、まさにこの事例だった。

 最新のeSportシーンでは、同じゲームでも家庭用ゲーム機版よりもPC版の方が入力遅延が少ないことが多く、プロゲーマーの間ではPC版を好む傾向が高まってきている。それを確認するのも楽しいだろう。

 ちなみに、第2回で筆者が提案した、この「NVIDIA Reflex Analyzer」改造手法による、同一ゲームタイトルの家庭用ゲーム機版とPC版における入力遅延の測定は、そうしたマルチプラットフォーム展開を前提としたゲーム開発の現場でも役立っているという報告をいただいている。

 具体的には、同じゲームエンジンを使用して開発しているゲームにおいて、何らかの入力遅延対策をしたときに、すべてのプラットフォームでその効果が出ているかどうかの確認の計測に使っているそうだ。その意味では、「NVIDIA Reflex Analyzer」(と本連載の改造版)は、ゲーム開発にも役立つようである。

【質問2】液晶モニター/液晶TV、そして有機EL TVなどがブラウン管よりも遅延が大きいのは、映像信号を1フレーム分バッファリングして表示しているために、必ず1フレーム遅延するからでしょうか? ブラウン管のように映像信号を画面の上から逐次、上から下に向かって表示する映像機器では、そうした1フレーム分の遅延はなくなるのでしょうか?

 この質問には大前提として大きな誤解が含まれているので、1つ1つ答えていきたい。

 結論から言うと、ゲームモード(低遅延モード)を搭載した液晶TVや有機EL TV、ゲーミングモニターでは、映像信号を1フレーム分バッファリングするようなことはしていない。

 確かに、映像信号を何フレーム分かバッファリングして高画質化処理を行なう映像エンジンを搭載するTVでは、確かにそうした動作をする機種も存在するが、ゲームモード(低遅延モード)では逐次表示を行なっている。

 なお、有機EL TVは、焼き付き抑止メカニズムの動作に関連した制御により、1フレーム分溜め込む機種が最近まで存在したが、LGモニター製の有機ELパネル採用機で言えば、LG製の有機EL TVは2021年モデルから、日本メーカー勢の有機EL TVでも2022年モデルからはこのメカニズムはゲームモード時にはキャンセルされている。

 そうそう、今年2022年からSamsung Displayが開発した量子ドット技術採用の大型有機ELパネル(QD-OLEDパネル)採用の有機EL TVが市場に投入されたが、こちらも筆者の測定によれば1フレームのため込みは行なっていないことが分かっている(ただし映像エンジンに起因した4ms程度の遅延あり)。

 「表示メカニズムに起因した遅延」と言えば、60fps映像を120fps表示に変換してくれる「倍速駆動機能対応」のTV製品にまつわる話が有名だ。

 「倍速駆動機能対応」のTV製品では、たとえその倍速駆動機能をオフにしたとしても、60Hz(fps)映像を表示させると理論上、0.5フレーム遅延してしまうという現象だ。

 語感からして速そうな響きのある「倍速駆動」だが、実は遅延が大きいのだ。この理屈について知りたい人は、筆者の過去記事で詳しく解説しているのでそちらを参照してほしい。

 それと、液晶パネルや有機ELパネルは溜め込んだ映像を、画面全体に同時一括瞬間表示している…と誤解している人がいるが、少なくとも最近の液晶TV/モニターでそうした機種はない。

 それこそブラウン管と同様に、HDMI等で入力された映像信号を、1走査線ごとに上から下に向かっての逐次表示を行なっている。

 その証拠を見せよう。

 下は、液晶パネルと有機ELパネルとで同じテキストコンテンツをスクロールさせて表示させた画面を、スーパースローカメラで40倍スローで撮影した映像になる。

60Hzのスクロール映像を液晶パネルと有機ELパネルとで表示した画面を40倍スロー撮影した動画

 液晶と有機ELで、同じ60Hz(60fps)の表示映像を撮影しているが、上から下に向かって映像が更新されている様が見て取れるだろう。液晶画素は応答速度が遅い分、特に上から下に向かって描き変わっていく様がよく分かる。垂直同期オンだろうが、オフだろうが、上から下に向かって映像を書き換えていく動作は変わらない。全画面同時表示になってはいないのだ。

 画素応答速度の話が出てきたついでに、NVIDIA Reflex Analyzerの測定結果に画素応答速度が関係してくるかについても触れておこう。NVIDIA Reflex Analyzerでは、入力遅延測定時における「グラフィックス状態が変位したかどうか」の判断のタイミングは「映像信号が映像パネルに書き込まれる瞬間(というか直前)」となっており、「映像パネルへの表示が完了した瞬間」ではない。

 つまり、NVIDIA Reflex Analyzerの測定結果には、そのモニター機器の画素応答速度分の時間は含まれていないということになる。

ストリートファイターVの「入力遅延」にまつわる都市伝説

 前置きがだいぶ長くなってしまったが、ここからが本題である。今回は、格闘ゲームにまつわる、ある「都市伝説的な噂」について、NVIDIA Reflex Analyzerを使って検証して見ることにしたい。

 それは「方眼紙のようなテクスチャが貼られた無機質なトレーニングステージ以外は入力遅延が大きくなるから避けるべき……」という噂だ。

 ゲームファンの間で言われているこの「遅延」問題に対し、いくつかの「遅延対策」が、技術的視点から見ると「その対策は意味がないのではないか」と思えるものがある。

 まずはそうした「その対策は意味がないのではないか」と思える対策から見ていきたい。

【噂1】ネット対戦では見映えが派手なステージは通信量が多くなって遅延が増えるからトレーニングステージがよい……は本当か?

 これは「完全な誤解」だ。

 「ストリートファイターV」を初めとした多くのネット対戦対応の格闘ゲームは、1Pと2Pのプレイヤー間でグラフィックスの同期を一切取っていない。

 なので、背景なし群集なしの無機質な方眼紙トレーニングステージでも、群集がワイワイ騒いでいる賑やかな背景のステージも、ネットの通信量は同じだ。なにしろそもそも背景グラフィックスの同期は取られていないのだから。

 格闘ゲームのネット対戦において、2プレイヤー間で送受されるのは「ゲーム内時間」(60分の1秒刻みのタイマー的な数値)と、これに付随させた「プレイヤーそれぞれのコマンド入力」(レバーの状態とボタンの状態)の情報だけだ。

 ゲーム開始前に「どのステージを使うか」くらいの情報はやり取りされるが、ゲーム進行中に背景グラフィックスにまつわるデータは一切送受されていない。もちろん、プレイヤーキャラクターのグラフィック関連データも一切送受されていない。

 そもそも、格闘ゲームはゲーム進行に関わる情報が、2人のプレイヤーキャラクターの操作情報だけで事足りるので、グラフィックスデータの同期を取る必要はないのだ。

 プレイヤーキャラクターが転倒した際に背景が壊れたりするが、こうした処理は、それぞれのプレイヤーで動かしているゲームクライアント(ゲームプログラム/ゲームランタイム)側で「背景物の近くでプレイヤーキャラクタが倒れたら背景物が壊れる」という仕込みに反応して、それぞれのプレイヤーのゲーム機/PC上で実践されているだけであり、わざわざ通信でこれをやり取りする必要はないのである。

 2人のプレイヤー間でやり取りされる「それぞれの操作情報」は、レバー操作やボタン操作を0か1の二値表現されたビットデータ列となるため、対戦のリプレイデータはとてもコンパクトなものになる。

 しかも、ゲームの性質上、レバー操作やボタン操作は時間方向に反復パターンが頻発するので、データ圧縮がかなり効くデータ構造となる。

 1プレイが最大で5分近くなる対戦リプレイデータが、あっという間にダウンロードして再生できたり、かなり過去にまで遡って世界中のプレイヤーのリプレイデータを参照できるのは、対戦リプレイデータがMPEG形式のような動画ファイルではなく、そうしたコンパクトなバイナリデータに収まっているからだ。

 レバー操作やボタン操作がタイムラインに沿って記録される対戦格闘ゲームのリプレイデータは、「楽譜に近い」ものと考えるとさらに理解が進むことだろう。

 たとえば、プレイヤー1が「上段(ト音記号)パートの五線譜」、プレイヤー2が「下段(ヘ音記号)の五線譜」とし、2人のプレイヤーがそれぞれの五線譜でレバー操作とボタン操作の音符を紡いでいく。そんなイメージだ。

 そして、それぞれのプレイヤーのゲーム機/PC上で動くゲームプログラムは、その音符群を、一拍が60分の1秒のテンポに従って演奏する楽器演奏者のイメージになる。そして、もはや言うまでもないだろう、対戦リプレイデータのダウンロードや再生は、その楽譜をダウンロードして再生するイメージというわけである。

 ネット対戦時(リプレイ再生時もだが)、その「五線譜上の音符」のようなゲームプレイを再生すれば攻撃が発生したりもするわけだが「その攻撃が当たった」「ガードが成功した」という処理系は、それぞれのプレイヤーのゲーム機/PC上のゲームプログラム側が処理するわけだが、その際、2人のプレイヤー間に発生している通信遅延に起因した不整合も起こりうる。

 「攻撃がヒットしたはずなのに、次の瞬間なかったことになっている!」というあの珍現象がそれだ。しばしば「AIの予測が外れたから!?」という声も聞かれるが、AIは関係ない。このあたりの珍現象は、通信対戦格闘ゲームの処理実装方式である「ロールバック式」に起因したものである。このあたりについての解説は次回以降に行なうこととしたい。

【噂2】ネット対戦では見映えが派手な衣装(コスチューム)はグラフィックス描画負荷が高くなり、入力遅延が大きくなるため避けた方がよい…は本当か?

 筆者は、ゲーム開発技術を取材対象の1つの専門分野としているが、かつて「ストリートファイターV」のグラフィックス技術について開発陣に数度、取材をしたことがある。

 いくつかの記事は競合他誌なので気を使って本稿に直リンクは貼らないが(笑)、筆者も執筆陣として参加した、カプコン監修でボーンデジタルより出版されたストリートファイターVのメイキング本「ストリートファイター キャラクターメイキング」の方は紹介しても問題ないだろう。いずれにせよ、一連の記事の取材で、この話題について開発陣に質問したことがある。

 それによると、意外なことに「すべてのキャラではないが、基本的にデフォルトの衣装がもっとも負荷が高い」とのことであった。これは、デフォルト衣装状態のキャラクターは“揺れモノ”と呼ばれるアクセサリ類を多く身に付けていたり、あるいは着ている衣装全体が伸び縮みする布表現を多く活用していたりして、物理シミュレーションが介入することが多いため、とのことである。なお、ストVの物理シミュレーションはCPUベースで実行されている。

実は標準衣装にはこうした物理シミュレーションが介入するものが多い

 具体的には、キャラクター一体あたりの描画負荷(厳密に言えばミリ秒で管理される描画時間)の予算が決められており、どの衣装状態でも、基本的にはこの予算内に収まっているとのこと。デフォルト衣装は、その負荷評価の意味も込めてその「負荷予算の上限」近くで作られているとのことであった。

 一見すると「派手で負荷の高そうに見える追加衣装群」も、よく見ると描画されたときの面積こそ大きいものの、前述したような負荷の高そうな表現要素は極力削られていることに気がつく。

 半透明の亡霊のような残像が付く特異な追加衣装も、よく見ると描画負荷の高い半透明表現ではなく、チェッカーボードパターンでドットを抜いて描画負荷を低減する「疑似半透明」表現になっていることにも気が付く。

エドの通常コスチューム(左)と分身付きのコスチューム(右)。分身は半透明表現ではなく、チェッカーボード的に歯抜けにした描画となっている。また分身のアニメーションは、エド本体のコピペ的な流用のため、追加の頂点シェーダ負荷はなし

 まあ、以上の理由から、基本的には、描画負荷を気にして衣装を選ぶ理由はないのではないか、と筆者は考えている。

【噂3】ネット対戦では見映えが派手な背景ステージはグラフィックス描画負荷が高くなり、入力遅延が大きくなるため避けた方がよいは本当か?

 これも「衣装」と同じ理由で、描画負荷予算内で設計されているので、特定のステージで入力遅延が大きくなる…というのはちょっと考えにくい。

 ちなみに、「ストリートファイターV」では、闘い合う二体のプレイヤーキャラクターに関連する描画は60fpsで行なわれているが、背景グラフィックスの方は30fpsで描画されている。

 言い換えると、毎秒60回の描画タイミングがやってくるストリートファイターVにおいて、ゲームの主役は毎回、動きを更新しているが、背景物は2回に1回しか更新を行なっていないということだ。背景で元気よく跳んだり跳ねたり、腕を上げ下げして応援している群集の動きが、やや粗く見えるのはそのためだ。

 ただ、筆者も「ストリートファイターV」のPS4版でプレイしていた際に、大きめな入力遅延を感じることがあった。筆者のストVプレイの腕前はUltra Diamondクラスはあるので、ゲーム進行に遅延が発生するとそれを感じ取れる程度の感覚はある。

 確かに、方眼紙トレーニングステージ(The Grid)は、何も3Dオブジェクトが設置されていないので、ほかの賑やかなステージよりも描画負荷が低いの間違いない。

 ただ、プレイに支障が出るほど、ほかのステージが描画負荷が高いのだろうか。ということで、今回はこの検証を、改造版のNVIDIA Reflex Analyzerでやってみることにしたい。

トレーシングステージ「The Grid」は本当に最速なのか

 計測機材は第2回と同じだ。

 NVIDIA Reflex Analyzer対応のゲーミングモニター製品は360Hzリフレッシュレート対応のASUS製「ROG Swift 360Hz PG259QNR」だ。

 使用ゲーム機は前回と同じ、PS4、PS4 Pro(ブーストモード)、PS5の3種類。PS4版は、リフレッシュレートが60Hz固定だが、標準版PS4で動作させたとき、PS4 Proのブーストモードで動作させたとき、PS5で動作させたときのパターンで計測した。

 使用PCは、CPUにRyzen 9 5950X、GPUにGeForce RTX 3090を組み合わせたそこそこのハイスペックマシンだ。そう、我が愛機は、CPUもGPUも新モデルが出てしまったので、もはや最強クラスのPCではなくなってしまった。

 PC版は、グラフィックスクオリティを「最高」、解像度は1,920×1,080ピクセルとし、モニターのリフレッシュレートを60Hzと360Hzで計測。今回は120Hzと240Hzでの計測は省略した。

 計測手法は、基本的には第2回と同じ。上記のハードウェアで「ストリートファイターV」を動作させ、ボタンを押してから白装束のバルログの小キックが、あらかじめ設定しておいたNVIDIA Reflex Analyzerの監視領域に到達するまでの所要時間を計測した。

 第2回と違うのは、測定ステージを、方眼紙トレーニングステージ(The Grid)を含めた全7ステージに対して行なったところ。

 計測ステージは以下の通りだ。

  • The Grid
  • Union Graveyard
  • Metro City Bay Area
  • Kanzuki Estate
  • Hillside Plaza
  • Underground Arena
  • Flamenco Tavern

 The Grid以外の6つの各ステージは、「賑やかなステージであること」と「NVIDIA Reflex Analyzerで計測しやすい条件であること」という2つの条件を満足していたものから適当に選んだ。実際には、ほぼすべてのステージを予行練習的に予備計測して、測定値に再現性があるものを選択している。

 ちなみに、計測中に、NVIDIA Reflex Analyzerの監視領域に、エフェクトや動く群集がカットインしてくるようなステージや、背景がスクロールするようなステージは、計測にランダム要素が紛れ込むと判断して除外している。

 すべての計測は条件を統一して行なうため、ゲーム開始直後の初期位置で行なった。各ステージの計測回数は30回。その平均値を結果としまとめた。

 計測結果を表/グラフにまとめたものが下になる。また、この結果を踏まえ、「一番遅延が大きかったステージとThe Gridの差分」「The Gridを除いた平均値とThe Gridの差分」をまとめた表も合わせて示す。

「一番遅延が大きかったステージとThe Gridの差分」
一番遅延が大きかったステージとThe Gridの差分(単位[ms])
PS4/60Hz PS4pro/60Hz PS5/60Hz PC/60Hz PC/360Hz
7.5 5.9 0.0 9.9 9.2
一番遅延が大きかったステージとThe Gridの差分(単位[フレーム時間])
PS4/60Hz PS4pro/60Hz PS5/60Hz PC/60Hz PC/360Hz
0.5 0.4 0.0 0.6 0.6
The Gridを除いた平均値とThe Gridの差分(単位[ms])
PS4/60Hz PS4pro/60Hz PS5/60Hz PC/60Hz PC/360Hz
6.5 2.0 -10.2 0.5 0.7
The Gridを除いた平均値とThe Gridの差分(単位[フレーム時間])
PS4/60Hz PS4pro/60Hz PS5/60Hz PC/60Hz PC/360Hz
0.4 0.1 -0.6 0.0 0.0

 結果を見ていこう。

 標準PS4では確かにThe Gridが一番入力遅延が少ない結果となった。ほかのステージ(の平均値)と比べて0.4~0.5フレーム時間ほど入力遅延が少ない。

 まあ、これを大きいと見るか、小さいとみるかは、それぞれのプレイヤーの技量に依存しそうだが、The Grid以外を避ける……というモチベーションにはなりそうである。

 PS4 Proでも、The Gridが一番入力遅延が少ない結果となったものの、ほかのステージ(の平均値)と比べると0.1フレーム時間しか差がなく、The Gridと入力遅延がほぼ変わらないステージ(Kanzuki Estate、Hillside Plaza)もあるので、標準PS4の時とは違い、The Gridが特段「プレイしやすい」という理由にはならなそうである。

 PS5とPCでは、とても興味深い結果が出てきた。なんと、The Gridよりも入力遅延の小さいステージが複数存在することが認められたのだ。また、PS5ではThe Grid自体が一番、入力遅延が大きい結果という衝撃の結果となった。さすがに、この結果には目を疑ったので、再度計測してみたのだが、この傾向は変わらず。

 つまり、PS5とPCでは、特に「The Gridが入力遅延が小さい」というわけではないので、好きなステージでプレイすればいい、ということでよさそうだ。

性能で劣るPS4などで入力遅延を感じるのはなぜか?

 ところで、高性能なPCでプレイしている時のPC版のストVは、入力遅延をほとんど感じないが、それほど高性能でないPCでは普段はそれほどではなくても「ときどき感じる」ことがある。

 対して、標準PS4でプレイしている時は、PC版の時と比べると常時入力遅延を感じる。

 そして、標準PS4/PS4 Pro/PS5のすべてと、「それほど高性能でないPCでプレイしているとき」に、何らかのタイミングで、一時的に、入力遅延が水増しされるような感覚があったりする。

 あの現象は何なのだろうか。

 入力遅延を「常時、感じる」ことになるPS4では、確かに、常時描画している背景グラフィックスの負荷が影響している……と考えることで腑に落ちるが、「ときどき感じる」アレは、「背景グラフィックスの負荷」のほかに原因があるような気がする。

 では、その原因は何か。

 実は、思い当たる節がある。それは、プレイ中にゲーム展開に応じて結構な数、描画されるエフェクト群だ。

 十分に高性能なPCで動作させているPC版ではそうした突発的な入力遅延を感じることがない、というのがそう考えた大きな理由だ。

 標準PS4/PS4 Pro/PS5と「それほど高性能でないPC」でプレイしている時にときどき感じる、そうした“水増し遅延”は、ランダムで起きているのではなく、ゲーム展開に応じて発生しているのではないか。

 振り返ってみると、そうした「ときどき水増しされる入力遅延」は、Vトリガーを発動した(あるいは相手に発動された場合を含む)瞬間や、EX技を絡めた各種連続技を決めている瞬間だったり、逆にセットプレイなどで連続ガードとなった瞬間に感じることが多い。相手が飛んだり跳ねたり、派手な飛び道具を撃ち合ったりする時も同様だ。キャラを左右動かしているだけのときに「水増しの入力遅延」を感じたことはない。

Vトリガー発動時のエフェクトは、スローモーションで見る分かるが、画面全体に広がる半透明エフェクトだ
EX技はド派手で大きなエフェクトを発生させている

 グラフィックス処理において、半透明表現は、すでに描画済みの内容を読み出して、新しく描画する内容を合成して、再び描き戻すという超面倒な処理系となるので、平常時の上書き描画よりもGPU負荷は高くなる(ちなみに、携帯電話のSoCのGPUでは、この処理系が特に苦手である)。

 ストVにおいて、特殊能力覚醒に相当する「Vトリガー発動」のエフェクトなどは、一瞬で消えてしまうので気が付きにくいが、実は画面全体へ広がる半透明エフェクト描画が数回起きている。

 キャラクターが激しく動き回ったり、転倒したりすると、結構な数の埃のエフェクトも地面に舞っている。それと、実は飛び道具などはただの半透明表現に留まらず、それまで存在しなかった新規の光源を発生させているので、周囲のものを明るく照らす。当然、これには追加の照明計算が介入することになる。

基本的に飛び道具は半透明エフェクトの集合体で構成されており、さらには光源も新規設定される。リュウの波動拳がラシードを青白く照らしているが、ここには平常時にはない追加のライティングが発生している。この画面では見えないが背景も照らされる
飛び道具発射時は、実は飛び道具本体だけでなく、発射した本人の周囲にも大きな半透明エフェクトが複数描かれる
攻撃の種類によっては、広範囲に広がるヒットエフェクトに加え、背景全体を歪ませるエフェクトも挿入される。これも相応の追加負荷が掛かる

 おそらく、このあたりが原因なのではないかと思うのだが、はたして……。ということで今回はここまで。

 次回は、格闘ゲームプレイ中に起こる「ヒットした攻撃が次の瞬間にガードされたことになる」あの珍現象が起こる仕組みについて解説しようかと思う。

Adblock test (Why?)


からの記事と詳細 ( ストリートファイターVのトレモステージは本当に入力遅延が小さいのか?NVIDIA Reflex Analyzerで検証してみた - PC Watch )
https://ift.tt/WhiGe4d
科学&テクノロジー

No comments:

Post a Comment