目次
はじめに
今回は仮想マシンを使ってGeForce NOWのようなクラウドゲーミング環境を自作します。
稼働させるPC台数を減らしたいため仮想マシンを使っていますが、もし余っているパソコンがあれば、それにParsecをインストールしてリモート専用として使っても良いでしょう。
本音を言うと、ファイルサーバとして使っているPCをもっと他のことにも使ってみたい!ということで挑戦してみました。
興味のある方はぜひやってみてください。
必要なもの
- 高性能なPC
- Parsec
- ダミープラグ(今回はHDMIを使用)
高性能なPCについて
高性能なPCといっても漠然としすぎているのでとりあえず僕が使ってるPCスペックを紹介します。
CPU | Ryzen7 1700X |
M/B | ASUS X370-F Gaming |
RAM | 64GB (16GB×4) |
GPU1 | GT710 |
GPU2 | RTX2060 |
OS | Windows Server 2019 (1809) |
前までメイン機で使っていたパーツを使いまわしているためちょっと世代が古いです。本当は最新パーツで構築したいところですがかなり予算がかかってしまうので…
CPUですが、最低でも6コア12スレッド以上あると良いでしょう。
CPU次第でコアあたりの性能やクロックは変わってきますが、ゲーム用仮想マシンに8コア(論理)ほど割当すればある程度のゲームは動かせると思います。
1台のPCで複数のゲーム用仮想マシンを動かすとなるともっとコア数が必要です。Ryzen9-3900Xや3950Xほどのスペックが求められます。
メモリは最低でも16GB以上は必要です。ゲーム用仮想マシンとは別で仮想マシンを構築している場合、どのような作業をするかで変わってきますが32GB以上あると快適になると思います。
もし複数のゲーム用仮想マシンを構築する場合は64GB以上必要になるでしょう。
続いて今回使用するグラボはRTX2060です。
DDA(Discrete Device Assignment)で仮想マシンへパススルーしています。
そのためゲーム用仮想マシンの数だけグラボが必要になります。
「GPU-PV」というGPU仮想化機能を使えば1台のグラボを複数の仮想マシンへ共有できるため、最大で4台の仮想マシンで利用できます。
本当はこのGPU-PVを使いたかったのですが、僕の環境ではOSがサポートしていなかったため利用できませんでした。
最後にOSです。今回はWindows Server 2019を利用していますが、これに関しては仮想マシン(Hyper-V)を構築できるOS(Windows10 Pro,Windows11 Proなど)であれば大丈夫です。
Homeエディションでは仮想マシンを構築できないためProやEnterpriseが必要になります。クライアント側(リモートでアクセスするために使うPC)はHomeでも問題ありません。
「GPU-PV」を利用する場合はWindows10 20H1以降、Windows11、Windows Server 2022が必要になります。
Parsec
Parsecとはリモート接続に利用するアプリです。商用利用の場合は有料となります。
リモート接続のアプリはいくつかありますが、このParsecであれば独自の低遅延技術により、快適にリモート接続できます。また最大4K解像度に対応し、実験的ではありますが240fpsの転送も可能なようです。
ただし、ネットワーク帯域や負荷の問題もあるので1080p60fpsでの利用が推奨されています。
ダミープラグ
今回は手元にあったHDMIのダミープラグを使用しています。
Parsecで仮想マシンに接続すると、ディスプレイが接続されていない環境ではエラーが出て接続出来ませんでした。
後ほど詳しく書きますが、HDMIもしくはDisplayPort接続のダミープラグが必要です。
事前準備
事前準備として、仮想マシンにGPUをパススルーでマウントしておく必要があります。やり方については前回の記事で解説しているのでそちらを参考にしてみてください。
仮想マシンにGPUをマウントしたらグラフィックドライバーをインストールします。
NVIDIAの公式ページから適切なドライバインストーラーをダウンロードしてインストールしてください。
環境構築
Parsecインストール
Parsecの公式サイトからインストーラーをダウンロードしインストールします。
「Virtual Display Driver」をインストールするか選べます。今回はチェックを入れなくても問題ありませんでした。
「Per User」のまま次へ進みます。
インストールが終わるとログイン画面が表示されました。
アカウントを持っていない方はここで作成してください。
ログインすると他のパソコンをリモート接続できるようになります。
ダミープラグを接続
では準備しておいたダミープラグをグラボに接続しておきましょう。
ディスプレイの設定を行います。
ダミープラグを接続した状態でホストOSから仮想マシンへ接続します。
ディスプレイの設定を開く2画面認識しているはずです。
1がホストOS上で表示されている画面で、2がダミープラグに出力されている画面です。
Parsecでアクセスすると2が表示されます。
2をメインディスプレイに設定すればParsecで表示される画面がメインになります。
Persecでリモート接続ができるようになるとホストOS上からアクセスすることはなくなるので「2のみに表示する」にしておくのが無難かと思います。
最初、拡張表示にしていましたがホストOSから接続すると画面が正常に表示されていませんでした。
ダミープラグを取り外せば画面1に表示されるはずです。
これで他のパソコンからアクセスしたときに画面が表示されるようになります。
ここで画面が表示されない問題で少し悩まされたので備忘録として少し書いておきます。
仮想マシンに接続していない状態(起動のみ)もしくはWindows Server(ホストOS)上で仮想マシンに接続した状態で、別のPCからParsecを使って仮想マシンへアクセスすると、15000エラーが出てリモートアクセスが出来ませんでした。もう少し詳しく言うと、画面が真っ暗なまま数秒間はマウスやキーボードを操作できますが、エラーが表示され接続が解除されます。
続いて、別のPCからリモートデスクトップで仮想マシンへアクセスし、この状態でParsecで仮想マシンへ接続すると、画面は真っ黒のままですがエラーは出ず、マウスやキーボードは動かすことが出来ました。
どうやら仮想マシンにディスプレイが接続されていないと画面を表示できないようです。
ダミープラグを接続することでこの問題を解決できました。
Parsecでリモート接続してみる
ダミープラグを接続した状態であれば画面が表示されるため別のPCからParsecでリモート出来るようになります。
問題なくリモート接続できました。
しかし、仮想環境だと「出力デバイスが見つかりません」となり、音を出力できません。
続いて音の出力設定を行います。
オーディオの出力設定
仮想オーディオデバイスをインストールします。
今回は「VB-CABLE」を入れました。
管理者権限で起動してインストールしましょう。
これで音が出るようになりました!
Parsecでゲームをプレイしてみる
それでは環境が構築できたのでゲームを入れて遊んでみます。
PCでリモートプレイ
まずはAPEXをプレイしてみました。
外出先からのプレイを想定して外部ネットワークからアクセスしてみます。
多少の遅延はありますが、一応プレイは出来ました。
ただ、遅延の影響により正確なAIMは難しいため撃ち負けてしまうことがありそうです。
次にLAN内(同一ネットワークに有線接続されたPC)でリモートプレイしてみたところ、遅延はほとんど感じられませんでした。
同一ネットワークからであれば問題なくプレイできます。
補足ですが、遅延が全くないわけではないのでシューティング系のゲームはリモートではなく実機で遊ぶのが望ましいです。
外部ネットワークからリモートプレイしたときと、LAN内からリモートプレイしたときの遅延について比較してみます。
ずは外部ネットワークからリモートプレイした場合です。
ネットワーク遅延は「27.26ms」となっています。
続いてLAN内からリモートプレイした場合です。
こちらは「0.41ms」でした。
クライアントPCは違いますが、LAN内ではほとんど遅延が感じられなかったため、この差がプレイに影響しているものだと思われます。
ちなみにビットレートは30~40Mbps程です。
スマホでリモートプレイ
ほかには「Microsoft Flight Simulator」や最近発売されたばかりの「ドラクエX オフライン」を遊んでみました。
今度はスマホからリモート接続しています。
今回使用した端末は少し前のモデルではありますが「Xperia XZ1」です。PS4コントローラーをBluetoothで接続しています。
スマホにコントローラーを接続すると自動的にParsecで認識され、リモートPCの操作が可能になります。
特に設定をしなくてもコントローラーでゲームが出来るため簡単にPCゲームをプレイできます。
ドラクエなどのゲームであれば多少の遅延があっても問題なく遊ぶことが出来ました。
最後に
今回は仮想マシンにリモートでアクセスして"どこからでもゲームが出来る環境"を構築してみました。いわゆるクラウドゲーミングです。
LAN内ではほとんど遅延が感じられなかったのは驚きです。スマホから手軽にPCゲームを遊べるのは面白いですね。
外部ネットワークからだと少し遅延はありますが、回線の状況によっても変わってきます。今後、5G環境が整備されるとより遅延を感じずに遊べるようになるのかもしれませんね。
仮想マシンを利用しているためGPUの割当など面倒な設定が必要ですが、普段使っているPCにParsecをインストールすれば電源が入っている間はいつでも外部からリモートプレイ出来る環境を構築できます。
また、冒頭で少し触れた「GPU-PV」を利用すればグラボ1枚を最大4つ仮想マシンに共有できるため1台のPCリソースを複数人で共有してゲームを遊ぶことも可能です。
この場合、それぞれにOSのライセンスや各ゲームを遊ぶためのアカウント等が必要になるためコストはかかりますがこのような環境を作れるのはロマンです(ゲーミングPC4台分よりはコストを抑えられるかも!?)。
機会があればGPU-PVも試してみようと思います。