NVIDIAは「ゲームに起こりうる遅延の問題」の解消に取り組んでおり、それに関連して2つの技術を提供している。1つ目は、「NVIDIA Reflex」というPCゲームに起こりうる入力遅延の低減技術、2つ目は、PCゲームにおける入力遅延を計測するための仕組み「NVIDIA Reflex Analyzer」だ。
ちなみに、ここで言う「入力」とは、プレイヤーによるゲームコントローラなどの操作入力のこと。具体的には、ボタンを押したり、ジョイスティックを倒したりするようなことだ。
前回は、この「NVIDIA Reflex」の紹介と、実際に「NVIDIA Reflex Analyzer」を用いて、実在のゲーム(ストリートファイターVなど)の入力遅延の計測手法などを紹介したが、その過程で、「NVIDIA Reflex Analyzer」が抱える課題(問題?不満?)のようなものについても言及した。
その課題の1つ目は、「NVIDIA Reflex Analyzer」は、PCゲームでしか計測できないことだ。まあ、NVIDIAがPCゲームを想定して開発したものだから、当たり前と言えば当たり前なのだが……。
2つ目の課題は、入力遅延の計測をきっかけとするゲーム操作入力が、マウスの左ボタンのみにしか対応していないことだ。一般的なゲームコントローラのボタン入力をきっかけにしての「NVIDIA Reflex Analyzer」計測は行なえないのである。
これでは、計測対象にできるゲームの種類(ジャンル)が著しく限定されてしまう。
というわけで、2回目となる今回は、本来はマウスにしか対応していない「NVIDIA Reflex Analyzer」をゲームコントローラに対応させて、さらに、PCだけでなく、PS5のような一般的な家庭用ゲーム機にまで対応させるべく、改造に挑戦する。
【復習】NVIDIA Reflex Analyzerとはなにか?
さて、本題に入る前に、NVIDIA Reflex Analyzerについて、軽く復習しておこう。
NVIDIA Reflex Analyzerは、プレイヤーによるゲーム操作が行なわれてから、その操作がゲーム映像に反映されるまでの総所要時間(下図)を計測するものだ。
NVIDIA Reflex Analyzerは単体の機械ではなく、一部のメーカーのゲーミングモニターに組み込まれる形で製品化されている。入力遅延の計測は、そのモニターのOSDメニューを操作して各種測定条件を設定してから行なうことになる。
計測システムの中核部分が、ゲーミングモニターに搭載されている仕様上、「プレイヤーによるゲーム操作」のタイミング検知は、そのモニター側で把握する必要がある。
実際、NVIDIA Reflex Analyzer対応のゲーミングモニターでは、指定のNVIDIA Reflex Analyzer対応マウスをそのモニター側に接続しなければならない。だから、現状のNVIDIA Reflex Analyzerでは、「プレイヤーによるゲーム操作」の検知がマウスに対してしか行なえないのだ。
ごく限られた容量のソフトウェアしか実行できないモニターのSoCに、多種多様なゲームコントローラを認識させるのは荷が少々重そうなので、この仕様を強く責めることはできないだろう。
NVIDIA Reflex Analyzerをアケコンに対応させて、PS5にも対応させられないか考えてみる
ここまでを踏まえた上で、NVIDIA Reflex Analyzerの入力遅延測定のメカニズムを概略図にまとめたものが下になる。
上図を見ると、NVIDIA Reflex Analyzerは、その計測メカニズムの中核処理のすべてがゲーミングモニター側に統合されていることが改めてよく分かるだろう。
計測開始は「マウスの左ボタンのクリック」を機に始まり、計測終了のタイミングは、あらかじめ設定した画面内の監視領域において、グラフィックスが変化したとき……ということになる。
「グラフイックスの変化の検知」は、実際に光学センサーなどで計測しているのではなく、NVIDIA Reflex AnalyzerのSoCにて簡易的な画像処理演算的なことを行ない、おそらくは監視領域内の平均輝度の変移などに着目して、閾値を超えていれば「グラフィックスが変化した!」と判断するのだろう。
さて、ホストPC(ゲームを動かすコンピュータ)とゲーミングモニターはUSBケーブルで接続されているが、これはゲーミングモニター側につないだマウスをPCでも使わせるためだけの接続だ。実際、NVIDIA Reflex Analyzer対応ゲーミングモニター側のNVIDIA Reflex Analyzer対応マウス接続端子は、USBハブ機能を兼任している。
現状、NVIDIA Reflex Analyzerで、認識するのはマウスの左ボタンの入力だけ。そう、NVIDIA Reflex Analyzerが欲しいのは「マウスの左ボタンの入力タイミング」だけなのだ。それ以外、NVIDIA Reflex Analyzerは「マウスとしての機能」自体にはまったく何も関わり合いを持っていないのである。
ならば、ゲームコントローラのボタンを、マウスの左ボタンの回路に配線してしまえば、NVIDIA Reflex Analyzerは、ゲームコントローラのボタン入力をマウスボタンの入力として認識するはずだ。そして、そのゲームコントローラのボタンの入力タイミングで計測タイマーをスタートしてくれるはず。
一方、ゲームコントローラ側のボタンも、そのゲームコントローラが正しく動作するような配線(回路)状態を維持してやり、ゲームを動かしているコンピュータに直結すれば、ゲーム側は何事もなかったかのように普通にそのコントローラでプレイできるはずである。
ということで、筆者は「ゲームコントローラのボタン操作を、NVIDIA Reflex Analyzer対応マウスの左ボタンに相乗りさせれば、NVIDIA Reflex Analyzerを汎用のゲームコントローラに対応させられるし、同時に、家庭用ゲーム機にも対応させられちゃうのでは?」という仮説がうまくいくと確信。
実際に、NVIDIA Reflex Analyzer対応マウスを分解して、そのマウスの左ボタンに、アーケードゲームや格闘ゲームなどで使うアーケードゲームコントローラ(いわゆるアケコン)の適当なボタンをマウスの左ボタンに合流させる配線を行なってみることにした。
ちなみに、NVIDIA Reflex Analyzer側のタイマーがスタートしたあと、そのタイマーを止める仕組みついては改造なんか必要なし。そのまま利用するだけでいいはずだ。
一度、理論を組み立てれば、電子工作自体は単純。実際、やってみたらそれほど時間もかからず、すぐにできてしまった。
恐る恐る試してみたところ、アケコンのボタンを押すとPC版の「ストリートファイターV」(以下、スト5)のキャラクターがキックを出し、NVIDIA Reflex Analyzerは、その入力タイミングをきっかけにした入力遅延をちゃんと計測してくれた。
成功だ!
改造は超簡単。銅線を配線するだけ!
工作の手順の詳細は、筆者のYouTubeチャンネルで動画にまとめてあるので下を参考にしてほしい。
[embedded content]
一応、本稿でもレシピを簡単に紹介しておこう。
用意するのは、NVIDIA Reflex Analyzer対応マウスが1つ。これは、なんでも構わないが、筆者は、値段の安さからASUSの「ROG KERIS」を選択した。今回の改造を行なうと、もう、マウスとしては使えなくなる点に留意されたし。
アケコンは、RazerのPANTHERAを用いた。これは、たまたま筆者が所有していたからで特に理由はない。配線を組み替える関係上、筆者が今回用いたRazer PANTHERAのように、天板が簡単に開閉できるタイプだと作業や入力遅延の測定時の作業が楽だ。今、その条件のアケコンで比較的入手しやすいものとしてはHORI製の「ファイティングスティックα」シリーズなどがよいかもしれない。
あとは、銅線。長さは30~50cmくらいで十分。そして半田ごてと半田。それと電極の極性調査用にテスター、マウスなどの分解用に工具のドライバー。
アケコンに最初から組み付けられているボタンを実験台にしたくない場合は、マウスの左クリックボタンと差し替えるための、アケコンのボタンを1つ用意したい。
手順としては、
- マウス(ROG KERIS)を分解
- マウスの左クリックボタンをソケットごと取り外す
- マウスのボタンスイッチが刺さっていた3つの電極のうち、2つに2本の銅線の一端を配線
- 半田付けした2本の銅線の反対側をアケコンのボタンに半田付け
これでおしまい。
あとは、入力遅延計測に活用したいアケコン側のボタン用の配線2本のうち1本だけを、電子工作した側のアケコンボタンの電極に合流させる。
合流させるアケコン側のボタン配線は、アケコン動作状態での配線極性を調べて、プラス側を選ぶ必要があるので、これは実際にテスターを使って調べるしかない。調べ方が分からない人は動画を参照してほしい。
テスターで調べて極性が分かったら、アケコン側のボタン配線のプラス銅線を、電子工作したアケコンボタンのプラス銅線が半田付けされている側に合流させる(プラス同士で合流させるイメージ)。この時、半田付けしてもいいが、アケコン側のボタン配線は、クリップ(ギボシ)のようになっていると思うので、簡易的に組み付けるだけでもよい。
これで準備完了だ。
PS5でも入力遅延がNVIDIA Reflex Analyzerで計測ができてしまう感動をあなたに…
あとは、もう普通にNVIDIA Reflex Analyzerを使うだけ。
NVIDIA Reflex Analyzerの使い方は、前回紹介しているし、前出の動画の方でも詳細に説明しているのでそちらを参照してほしい。
アケコンは、直接ゲームが動いているコンピュータ(ゲーム機)の方に直結して問題なし。NVIDIA Reflex Analyzer対応ゲーミングモニターの方のUSBハブに挿す必要はない。
PCで計測したいならばPC、PS5で計測したいならばPS5にアケコンを直接差せばOKだ。
1つ注意したいのは、それでも、PCとモニター側はUSB接続が必要だという点。例えばPS5でのゲームに対して計測したい場合、PCはまったくこの計測システムに関与していないので、PCとのUSB接続は不要に思える。
実際、何の役にも立っていないのだが、NVIDIA Reflex Analyzerは「マウスがPCから認識されているか」を気にしており、認識されていないとNVIDIA Reflex Analyzerの機能を始動してくれないのである。
まあ、「NVIDIA Reflex Analyzerを動作させるには、PCとモニターはUSBケーブルで接続しておかなければならない」と覚えておけばいい。PCでゲームを動かさない場合、PCは単なるダミーなので、それこそ低スペックPCでOKだ(笑)。
せっかくなので、今回は、「ストリートファイターV」のPC版とPS4版で、白装束のバルログの小キックがボタンを押してNVIDIA Reflex Analyzerの監視領域に到達するまでの所要時間をトレーニングモードステージで計測してまとめてみた。
PC版は、グラフィックスクオリティを「最高」、解像度は1,920×1,080ドットとし、モニターのリフレッシュレートを60/120/240/360Hzで計測。
PS4版は、リフレッシュレートが60Hz固定だが、標準版PS4で動作させたとき、PS4 Proのブーストモードで動作させたとき、PS5で動作させたときのパターンで計測した。計測は各テストケースで30回行ない、その平均値を結果とした。
計測結果を表/グラフにまとめたものが下になる。
巷でも言われていることだが、PS5で動作させたときが一番入力遅延が大きい結果となった。
PCはRyzen 9 5950X+NVIDIA GeForce RTX 3090のハイスペックマシンということもあり、60Hz時でも入力遅延はどのプレステよりも速くなっている。
また、リフレッシュレートを上げれば上げるほど、描画後のゲーム映像が早出し表示されるため、入力遅延は小さくなる結果が得られている。
ただ、今回のようなハイスペックPCを用いていても240Hzと360Hzは僅差という事実も垣間見える。つまり、「ストリートファイターV」における「入力遅延低減を重視したモニター選び」の観点からすると、リフレッシュレート240Hzで必要十分なのかもしれない。
次回は、今回改造したNVIDIA Reflex Analyzerを用いて、もう少し「ストリートファイターV」に代表される格闘ゲームの遅延問題について深く見ていくことにしたい。
コメント