Apex LegendsとR6SでGeForceの超低遅延モードを地獄の100本ノック検証

Apex LegendsとR6SでGeForceの超低遅延モードを地獄の100本ノック検証

  • ASCII.jp
  • 更新日:2019/11/10
No image

アクション性の高いゲームでは、様々な局面に適切な対応ができるプレイヤースキルが求められる。“読み”や知識に基づく動きでカバーできる部分もあるが、基本は“画面を見て”素早く“操作”することが肝心だ。

この画面を見てから操作する一連の作業は反射神経による部分が大きい。しかし、PCのチューニング次第で、操作を受け付けてからそれが実際に画面に表示されるまでのラグ、すなわち「インプットラグ(End to Endラグ)」を短くすることができる。

このインプットラグを減らそうという機能が2019年の夏頃からAMDやNVIDIAのGPUに実装された。AMDなら「Radeon Anti-Lag」、NVIDIAなら“NULL”こと「NVIDIA Ultra Low Latency」である。

本稿はGeForceのNULLが有効かどうかを検証した記事「SFVと鉄拳7でGeForceの超低遅延モードを地獄の100本ノック検証」の続編にあたる。SFVや鉄拳7のような家庭用ゲーム機でも人気の格闘ゲームでは、V-Sync(垂直同期)オフ時を基準にした場合、インプットラグが若干変動することもあるがその差は極めて小さい(平均0.2ミリ秒程度)。すなわち、格ゲーではインプットラグ低減はほぼ効果なしという結論が得られた。

そこで、今回はeスポーツ要素の高いFPSタイトル「Apex Legends」及びR6Sこと「Rainbow Six Siege」でNULLが効果を発揮するか検証してみたい。もちろん、格ゲー編と同様に、100発射撃した時のデータで統計的な比較検証を試みる。果たして、FPS系ゲームでは有益な効果が出るのだろうか?

GeForce GTX 1650と240Hz駆動ディスプレーの組み合わせで検証

今回の検証環境も前回の格ゲー編とまったく同じ環境を使用する。つまり、ビデオカードはハイエンドラインではなく、ミドルレンジのGeForce GTX 1650を搭載した「ZOTAC GAMING GeForce GTX 1650 Low Profile」(ZOTAC製)と、リフレッシュレート240Hzに対応したフルHDゲーミング液晶ディスプレー「AORUS KD25F」(GIGABYTE製)の組み合わせだ。

Apex LegendsやRainbow Six Siegeなら描画負荷がほどよく軽いため、GeForce GTX 1650でもフルHD&最高画質で60fps以上は出せる。インプットラグは75~90fpsあたりが最も観測しやすいので、GeForce GTX 1650は今回の検証に最適だ。

No image

ZOTAC製GeForce GTX 1650搭載ビデオカード「ZOTAC GAMING GeForce GTX 1650 Low Profile」を今回も使用する。2スロット厚だがロープロファイル対応かつ補助電源が不要なので、幅広いPCのアップグレードに最適だ

No image

インプットラグ計測をするならリフレッシュレートの高い液晶ディスプレーを使わないと正しく計測できない。その点、240Hzまで対応したGIGABYTE製「AORUS KD25F」はドンピシャなチョイスだ

No image

NULLの設定はNVIDIAコントロールパネルで行なう。「Low Latency Mode」“On”では従来の「レンダリング前最大フレーム数1」設定となるが、NULL本来の働きをさせたいなら“Ultra”を選択すべし

NULLやRadeon Anti-Lagのインプットラグ緩和機能は、CPUは暇だがGPUは目一杯働いている状況で発生しやすいため、CPUはRyzen 7 3800Xを使用した。ちなみに、その逆でもラグは出るが、CPUパワー不足によるラグを解消するにはCPUの強化しかない。

検証環境は以下の通りだが、GPUドライバーは検証時点での最新(GeForce 436.68)を使用している。GeForce GTX 1660 SUPERに対応した441.08では、436.68までに潜んでいたNULLとG-SYNCを併用するとNULLが効かないという不具合が解消されているが、今回の検証では関係ないのでそのままデータを利用する。

改造マウスとデジカメのハイスピード撮影で検証

計測方法については、前回の格ゲー編と基本同じだが、FPS系なのでマウス左ボタン押下から、実際に画面上で銃が発砲されるまでの時間を計測したい。そこで、ロジクール製ゲーミングマウス「G300s」を用い、左ボタンを押下した瞬間にLEDが点灯するように改造した。

この改造マウスをPCに接続し、Apex LegendsやRainbow Six Siegeでひたすら銃を撃ちまくる。その様子をオリンパスのデジタルカメラ「Tough TG-5」のハイスピード撮影モード(480fps)で録画し、その動画を解析する。動画上でLEDが点灯した瞬間(スイッチと並列なのでラグの入る余地はゼロ)から、画面に発砲が表示されるまで(処理時間+インプットラグが介在するのでわずかに遅れる)の時間を解析するのである。これを1条件につき100回ずつ繰り返しデータ化した。

注意:本稿では改造したマウスを使用していますが、これを真似して何らかのトラブルや損害が発生しても筆者やASCII編集部は責任を負いかねます。マウスの保証も切れますので、同様の検証をする場合はすべて自己責任の下で実施してください。

No image

検証風景。写真はRadeon Anti-Lag検証時のものだが、今回もこれに準じている。まずはひたすら銃を撃つシーンをデジカメでハイスピード撮影する

No image

マウスの左ボタンに並列になるようLEDを取り付けた。LED単体では点灯しないので、ボタン電池も組み込んである

No image

マウスのセンサー部分は黒いテープで覆い、マウスボタン押下時に銃口が動いてしまわないようにした

No image

撮影した動画はAdobeの動画編集ソフト「Premiere Pro CC」にインポートして、ひたすらLEDの光ったフレームと発砲の瞬間を捉えたフレームを確認する

No image

スマートに画像解析をすべきなのだろうが、今回はひたすら紙にin/out点をメモってExcelに打ち込むという超アナログ作業になった。これが地味にキツい作業なのだ……

Apex Legendsでの効果は絶大!

NULLの効果をチェックする前に、今回用意した検証用システムでApex Legendsがどの程度のパフォーマンスで動くのかを確認しておこう。解像度は液晶ディスプレーに合わせてフルHDのみ、画質は全項目を最も重くした。「CapFrameX」を利用し、トレーニング用ステージの一定のポイントにおけるフレームレートを比較する。

なお、前回の格ゲー編と同様、デフォルト時(V-Sync含めすべててオフ)、V-Sync有効、G-SYNC(Compatible)有効、NULL“On”、そしてNULL“Ultra”の5パターンを比較する。

No image

Apex Legendsのフレームレート

V-Syncオン時の平均フレームレートがやや低いように見えるが、微々たるものと言ってよい差。格ゲーの時はリフレッシュレート240Hzの高速ゲーミング液晶ディスプレーを使っても60fpsでキャップになってしまったが、PC由来のFPSゲームだとこのようにGPUパワーの許す限りフレームレートが上がってくれる。また、Apex Legendsではどの条件も平均70fps前後となったので、インプットラグの効果が観測しやすいフレームレート範囲になってくれたのも幸いだ。

インプットラグの測定は、前掲のフレームレート計測と同様にトレーニング用ステージの射撃演習場で、ひたすら銃を撃つ。ただし、連射するとわけがわからなくなるため、単射かつマズルフラッシュ(発砲炎)の見やすい「P2020」という銃を使用した。これを各条件で最低100発ずつ撃った時のインプットラグを比較する。

No image

LEDが点灯(左)してから、銃口に少しでもマズルフラッシュが見える(右)までの間をインプットラグとして計測する。ちなみに、銃の残弾を示すカウンターの減るタイミングでは、マズルフラッシュよりもラグにブレがあるため使えないと判断した

まずは各条件100発、都合500発撃った時のインプットラグを散布図化してみた。横軸は試行回数(左端=1発目とする)、縦軸はインプットラグで、下部に分布しているほど遅延が短く優秀ということになる。

No image

Apex Legendsのインプットラグの分布。明らかにNULL“Ultra”時は低い(低遅延な)ところに集中している

格ゲーではどの条件も均等にバラけてしまっていたが、Apex LegendsではNULL“Ultra”設定、すなわちCPUの処理タイミングを調整することでインプットラグを減らす機能が実にうまく動いていることがわかる。さらに言えば、V-Syncオン時はデフォルト時(V-Syncオフ)に比べて、インプットラグが上部(遅延が長い)に集中しているように見える。各条件ごとの最小/平均/最大値もまとめてみた。

No image

Apex Legendsのインプットラグをざっくりと最小/平均/最大値で集計した

NULL“Ultra”設定にすると、デフォルト時に比べて平均で11.83msもラグが短縮していることがわかった。60fpsにおける1フレームが約16.67秒なので、NULL“Ultra”にすると格ゲーにおける1フレーム弱の時間だけ速く反応できるようになる。これは大きな効果だ。

そして、V-Syncをオンにすると逆にインプットラグは悪化し、G-SYNCやNULL“On”の設定はあまりデフォルト時と変わらないように見える。

このあたりを“~のように見える”で終わらせないために、もう少し統計学的に検証を進めていきたい。まずは詳しく見るために、各条件ごとにどのラグの値がどの程度出たかをヒストグラム(度数分布表)にしてみよう。

ヒストグラム(度数分布表)でもNULL“Ultra”の効果を確認

No image

Apex Legends、デフォルト時のインプットラグをヒストグラム化したもの。60.42msと62.50msが最頻値となり、それ以上長いラグはほとんど出なかったことがわかる

No image

Apex Legends、V-Syncオン時のインプットラグをヒストグラム化したもの。最頻値は56.25msになり、山の頂がデフォルト時より左に寄って一見、ラグが短くなったように見えるが、64.58~66.67msのラグの長い部分も多い

No image

Apex Legends、G-SYNCオン時のインプットラグをヒストグラム化したもの。特別高い山は出なくなり、50~62.5msまでのコンパクトな範囲に収まっているように見える

No image

Apex Legends、NULL“On”時のインプットラグをヒストグラム化したもの。ここでは52.08msを出したサンプルが最多だが、58.33~60.42msの山も割と多めだ

No image

Apex Legends、NULL“Ultra”時のインプットラグをヒストグラム化したもの。これまでの条件ではまったく出なかった37.5~43.75msのサンプルが出現。ただし、50ms以上のラグを示したサンプルも1割強は観測された

NULLを“Ultra”にすることで、インプットラグは劇的に短くなるのがヒストグラム上で確認できた。そして、これらのデータを箱ひげ図にしたものが下のグラフだ。見方については検索することをオススメするが、縦に2つ並んだ箱2つの区間に全体の50%のデータが入り、上下に伸びるひげに残り25%ずつのデータが入る。箱やひげが上下に短いほど“中心的なデータが狭い範囲に分布している”ことを示す。グラフは縦軸がインプットラグなので、低いところにある条件ほど優秀ということになる。

No image

Apex Legendsのインプットラグを箱ひげ図にしたもの。×印が各条件における平均値を示している

明らかにNULL“Ultra”設定時だけ飛び抜けてインプットラグが短く、さらに下のひげから箱の上部まで(75%のデータが収まっている範囲)はどの条件より短い。もうこれで「効果アリ」で〆てもいい気がするが、他の条件はデフォルト時に比べ違いがあるのか、も含めて統計的に検証してみたい。

今回も格ゲー編と同様にt検定を使って、デフォルト時と統計的に有意な差があるのかを検証する。有意水準p=5%(0.05)とし、t検定で算出されたp値(下表の「p(T<=t)両側」)が0.025(5%の2分の1)より小さい場合は、デフォルト時とは明らかに違うデータが得られた、という意味になる。

No image

Apex Legendsのインプットラグのt検定結果。Excel内蔵の分析ツール「等分散を仮定した2標本における検定」を利用して出力

算出された「p(T<=t)両側」が0.025を下回る、つまり「統計的に見て偶然得られたとは言えない」ほどの差がついた条件は、V-Syncオン時とNULL“Ultra”時の2つ。つまり、V-Syncをオンにするとインプットラグが増えたのは偶然でなく、NULL“Ultra”については箱ひげ図で見た通り、文句なしにお墨付きが出せる結果だ、ということになる。NULL“Ultra”の「p(T<=t)両側」は小さすぎて指数表記になってしまったが、これを小数に直すと「0.000000000000000000000000000000000000000000451」となる。

そして、G-SYNCオン時とNULL“On”時に関しては、箱ひげ図やヒストグラムでは何か効果が出たように見えるが、統計的には効果アリと支持するには至らない、ということになる。Apex Legendsをプレイするなら、NULLは“Ultra”一択ということになる。

Rainbow Six Siegeでも効果アリ!

次はRainbow Six Siegeで検証してみよう。まずはApex Legendsと同様に、計測に使った条件別にどの程度フレームレートが出るかをチェックしたい。画質は“最高”をベースに、レンダースケールを100%に設定。シチュエーションの最初のステージでプレイヤーが最初に立つ地点におけるフレームレートを「CapFrameX」で計測した。

No image

Rainbow Six Siegeのフレームレート

Apex Legendsと同程度のフレームレートだが、こちらのほうが平均75fpsほどと若干高い値が出た。また、NULL“On”時は平均フレームレートがやや振るわない傾向があるようにも見える。

Rainbow Six Siegeでのインプットラグの検証は、プレイヤーが所持している「L85A2」ライフルを単射モードで100発撃った時のインプットラグを集計した。Apex Legendsのマズルフラッシュは非常にわかりやすかったのだが、Rainbow Six Siegeのマズルフラッシュは「見やすい炎が出る」、「先端だけ炎が出る」、「ちいさな火花が飛ぶだけ」、「まったく出ない」のどれかのパターンになるので非常にわかりづらい。

そこで、射撃時に銃口がガクンと上に跳ねる瞬間を発砲時と捉えるが、その跳ね上がりが描画されない時はマズルフラッシュが見えた瞬間を発砲時とした。そのため、Apex Legendsよりも計測誤差が大きくなっている可能性があるのをご了承いただきたい。

No image
No image

左がLED点灯で右が「発砲」とみなした瞬間。Rainbow Six Siegeのマズルフラッシュは常に同じように出るとは限らず、描画すらされないことがある。そのため、解析は肉眼に頼らざるを得ず、非常に手間がかかった

まずはインプットラグの出方を散布図にして、それを元にインプットラグの平均値等を算出してみよう。

No image

Rainbow Six Siegeのインプットラグの分布

Apex Legendsと同様、NULL“Ultra”設定時のインプットラグが低いところに集中しており、それ以外の条件は45.82~58.31msの範囲に集中していることが読み取れる。ただし、Apex Legendsと若干違うのは、NULL“Ultra”でもそのゾーンに若干食い込んでいるデータが見られるというのと、突然離れたところにデータが単発で出現する場合があったことだ。この離れ小島のように出現したデータについては、1つずつ映像に戻って解析をしたが、計量や記載ミスではないことを確認している。

No image

Rainbow Six Siegeのインプットラグをざっくりと最小/平均/最大値で集計した

上のグラフを見る限り、NULL“Ultra”にすることでインプットラグの平均はデフォルト時より9.36ms短縮。11.83msも短縮したApex Legendsよりは短いが、ひとまず効果はアリと言って良さそうだ。他の条件では平均値がほぼ横ばいとなったが、NULL“On”時でも最小インプットラグは大幅に下がっているように見える。

外れ値はあるもののヒストグラムで効果が明確にわかる

では、各条件ごとに観測できたインプットラグの内、どの長さのものが頻発したかをヒストグラムで分析するとしよう。

No image

Rainbow Six Siege、デフォルト時のインプットラグをヒストグラム化したもの。52.08msを中心に、左右にほぼ対称な山になった

No image

Rainbow Six Siege、V-Syncオン時のインプットラグをヒストグラム化したもの。t中央の高い山が消え全体に丸い山になったが、分布の範囲はデフォルト時とほぼ同じ

No image

Rainbow Six Siege、G-SYNCオン時のインプットラグをヒストグラム化したもの。54.17msが最頻値となった。62.5msと64.58msという2つだけ長いインプットラグを示したサンプルがあったものの、中央部の山という点はV-Syncの山に似ている

No image

Rainbow Six Siege、NULL“On”時のインプットラグをヒストグラム化したもの。G-SYNCオン時と同じ54.17msが最頻値となったが、山の広がりはデフォルト時と大差なし。37.50msを示したサンプルは1件のみで、これは外れ値と見るべきだろう

No image

Rainbow Six Siege、NULL“Ultra”時のインプットラグをヒストグラム化したもの。これまでのヒストグラムと大幅に傾向が異なり、41.67msを頂とする左側に大きくずれた山が出現した。ここでも外れ値らしきサンプル(56.25ms)が1つ、山の右側に見える

散布図やヒストグラムからもNULL“Ultra”の効果は明らかな気もするが、まずは箱ひげ図で各条件の散らばり方を比較してみよう。

No image

Rainbow Six Siegeのインプットラグを箱ひげ図にしたもの。これまでの箱ひげ図と違い、ひげの上ないし下に独立した点が描かれているが、これは各条件における“外れ値”を示す

この箱ひげ図が意味するところを読み解いてみよう。まず、NULL“Ultra”時は下のひげから箱の上端が低い位置にあるため、インプットラグは他の条件よりも明らかに良好であることを示唆している。NULL“Ultra”時はインプットラグの長いデータが1つだけあったが、これは外れ値と見るべきだろう。

デフォルト時のインプットラグのまとまり方を見る限り、悪い方向に違いがありそうなのはV-Syncオンの時で、これはApex Legendsの時と同じ傾向である。G-SYNCオン時はデフォルト時と大差ないが、NULL“On”にすると、平均値はデフォルト時と同じだが、より散らばり方が少なくなるようだ。

では、これらの違いに意味があるのかをt検定を用いて検証してみよう。条件はApex Legendsと同じく、p値0.05の両側検定を行なう。「p(T<=t)両側」が0.025より小さければ、デフォルト時に比べて違いがあるという結論が出せる。

No image

Rainbow Six Siegeのインプットラグのt検定結果

まず、デフォルト時対NULL“Ultra”時の検定結果はp値がほぼゼロに近いため、文句なしに統計的に有意な結果が出ていることが示されている。しかし、他の条件ではp値がいずれも1に非常に近いため、統計的には“デフォルト時とは違いがあるとは言えない”という結果になった。

まとめ:FPS系ではNULL“Ultra”が絶大な効果を発揮する

小難しい統計学の用語が出てきて筆者も頭が痛くなってきたが、2回に渡る検証でゲームの設計によりNULLの効果は大きく違う、ということが統計的に示せたと思う。特にFPS系ではG-SYNCやV-Syncをオンにするどころか、V-Syncを単純にオフにした時よりも、NULL“Ultra”設定にすることでインプットラグが劇的に短縮されることが示された。少しでもラグを減らしたいと考えているなら、GeFoceユーザーはNULL“Ultra”に設定しておこう。

だが、今回の検証で検証しきれなかった部分がまだ存在する。例えば、V-SyncやG-SYNCとNULL“Ultra”を併用した場合はどういう効果になるのだろうか? NULLとG-SYNCの相性に関してはGeForce 441.08ドライバー以降で共存できるように修正された、ということなので今後の検証課題としたい。また、Radeon Anti-Lagとの差についても検証すべきだろう。このあたりの検証が読みたければ、ぜひともご要望をお寄せ頂きたい。

■関連サイト

NVIDIA

この記事をお届けした
グノシーの最新ニュース情報を、

でも最新ニュース情報をお届けしています。

外部リンク

IT総合カテゴリの人気記事

グノシーで話題の記事を読もう!
最大倍率は1000倍!スマホと使う顕微鏡「DIPLE」でマクロ世界を探索できる
これが未来のスマホ?四隅のベゼルがないデザイン特許をSamsungが申請
Amazonの無料音楽配信サービスがiPhoneなどでも利用可能に
ムービー内の動きをたった1枚の写真に反映して写実的なムービーを作り出すAIが開発される
Motorola razr登場!折りたたみスマホはガラケースタイルに回帰する!?
  • このエントリーをはてなブックマークに追加