AWSでクラウドVRChatやってみた
Abstract
Oculus QuestのVirtual Desktop (side loaded)を用いてAmazon Web ServiceのG4 instanceに接続し、VRChatにloginしてみた。 回線状況などが悪くないかぎり、会話が可能程度のレイテンシで接続できることがわかった。 なお、料金は1時間あたり多めに見積って1.5USD程度であった。 この手法をHead Mount Displayの貸与サービスとあわせることで、例として、 High-SpecなPCが自宅になくても一時的にVRを体験することが可能になると考えられる。
科学の力ってすげー!!
いまじゃ自宅に強いPCがなくてもOculus QuestからPCでのVRChatを体験することができるんだと!!
AWSのGPUインスタンス+VirtualDesktop+QuestでVRChatログインしてみた! #vrchat pic.twitter.com/Czl0MQwCzi
— あやふみ (@ayafmy) April 19, 2020
できます。お金はかかるけど。この記事は感想と環境について書いています。 この記事最後の参考文献を参照すればできるとおもいます 。
なお、環境は以下の感じです
おそらく、固定回線があって、まともな5.0GHz飛ばせるルータがあればできるとはおもいます。 PCもスペックとしてはRemote Desktopさえ動けばなんとかなるとおもいます。
加えて、用いたソフト・サービスは以下の通りです。
- Microsoft Remote Desktop
- Virtual Desktop (Side Loaded)
- AWS EC2 g4dn.xlarge (設定にt3.medium) + 色々
- spotインスタンスとして立てました
- persec
- TightVNC
- vb-audio (必要ない可能性もある)
- Steam
- Oculus Software
実際どうなの
通信環境さえまともであればVRChatであれば普通にプレイできるというのが私の感想です。 ほかのゲームをやる上で、レイテンシとかに関しては実際に検証しているかたがいるので参照していただきたいです。
Oculus Quest+Virtual Desktop+AWSでリモートPCVRをテスト
— トナ@VRChat (@tonavrc) April 20, 2020
表示遅延:50ms~70msほど
入力遅延:動画最後を参照
VD設定:ビットレート32Mbps、スライスエンコード有効
SteamVR SS:1152x1272
*利用したg4dn.xlargeインスタンスのオンデマンド価格は1時間96.11円、GPUはNVIDIA Tesla T4 CUDAコア2,560 pic.twitter.com/fELjORxLbI
なお、GPUはTesla T4で、わりとつよいのかVirtual Lensなどをつかってもそれなりに動いてます。 fpsは100(表示できない)〜30ぐらい。えらい集会でも問題なく動きます。 まあ回線状況が悪いときはすごいことになるので、そういうときは即あきらめたほうが良いとおもいますが。
お金はどれぐらいかかるの
おおよそ1時間あたり1.5USDは越えないぐらいかなとおもいます。やっぱりData transfer outの比率が高いかなとおもいます。 3時間ちょっとやってEC2に1.19USD、Datatransferに2.53USDですね。あとEBSやSnapshotにお金がかかります。 まだデータはとりきれてないのでアレですが、結論、安くはないです。VR睡眠とかしたいならゲーミングPC買うほうが絶対良いです。
ただ、例えばOculus Questを借りて、ハイスペックPCないけどまあまあなPCと固定回線ならあるって人であれば、一時的にVRを体験できるという点では良いのではないでしょうか。 そろそろVket4もはじまるらしいので、動くかはわかんないですが……、とりあえずVket3のシブヤはちゃんと動いてました、これで人が多いとどうなるかは分かんないです。 それで飛びこめ沼!!するのであればハイスペックなPCを購入すればいいという点では、一度体験として……という形ではいいのかなと思います。 まあ何も考えずゲーミングPCとQuest買って「絶望的に合わなかった」とかだとたしかに悲惨ではあるので……。
設定における注意点とバッドノウハウ?
一応注意点とかどう動かしているかを記載します。
- Remote Desktopで繋いでいるとDirectXがうまくうごかないらしいのでVNCとかで繋いでGPUドライバ回りの設定をする
- Remote Desktopでログイン→画面閉じ→persecで接続→Virtual Desktopで接続→persecを切断 ってやるとまあまあラクにログインできる
- 当然だがRemote DesktopやVNC、persecで繋ぎながらVirtual Desktopを起動させるとData Transferに結構課金されるので注意
- 毎回VRChatログインは必要
- スクショフォルダはシンボリックリンクをD:/のどっかに貼っておくほうが気楽 わたしはdropboxに直投げしてる
- AMIとって前のAMI消してsnapshot消して〜って毎回やってる
- ある程度設定ができたらそのままTerminateしてしまったほうが楽な気はします
- 時間課金なのでAMIとる時間がもったいないのではって思ってしまう面もある
参考文献
構築にあたって参考にしたページです。Google cloud Platformでもできるとおもいます、ぜひやって記事かいてみてほしいです。