前提
- VR HMDで VR 空間に埋没してかっこいい空間を広々使ってお仕事したい
- 現実世界の PC がモニタ 1 枚しかない
- 画面出力端子を適当なドングルで埋めて fake monitor を召喚する手もあるがソフトウェアで解決したいところ
どういうことなのか
実は去年末に Oculus Quest を購入していました。そのうち記事にするかも。それはそれとして,Oculus Quest を買ったのは『狼と香辛料 VR』が気になってた,というのと,サイバーパンクでありがちな,半透明のウィンドウが自分を取りかこむようにぶわーっと浮いて広がってるやつ,あれをやりたいという理由でした。
みなさんお気付きかと思いますが,後者の目的なら HoloLens とか買うほうが実現しやすいとは思います。でも高い。しかし Oculus Quest はスタンドアローンで 6DoF なワリには安い。それに Oculus Go を買うぞ買うぞと言い続けて結局 Oculus Quest 開発中の発表を見てしまったので,発売したら絶対買うぞ!と思ってました。それでいい加減に腹決めて買ったのが去年末。
で,VR 世界でデスクトップ環境を実現する方法はいくつかあります。たとえば私の理想に近いのは Linux のデスクトップ環境である SimuraVR でしょう。しかしこれは HTC Vive か Vavle Index あたりでしか利用できないようです。Oculus Rift S なら OpenXR に対応しているので,かろうじて使えるようですが,Oculus Quest は PCVR に対応しているとは言えども Oculus Link が必要で,この Oculus Link は Windows の Oculus ランタイムアプリに依存しています。血も涙もない。
故に Oclus Link+Virtual Desktop で,なんとかマルチモニターを仮想的に実現して気分を良くしたかったのでした。
やりかた
ハードウェア
素直にやるなら,ハードウェアでごまかすことが手っ取り早いです。
有名な手段としては,GPU の DP 端子に DP→VGA 変換器を取り付けて,Dsub 15-pin の VGA 端子,これの 2-pin と 7-pin を 102Ω 抵抗で結線します。こうするとモニタが接続されていると誤認識されるのです。PowerPC Mac に Linux を入れてヘッドレスで運用しようとしたときもコレ必要でした。しかしこのために VGA 変換ケーブル用意したり工作するのはやや面倒で,しかも解像度が限定されるでしょう。
次に考えられるのは,Headless Ghost あたりの,fake monitor(あるいは ghost monitor)を Windows に認識させる専用のドングルを利用することです。これは 4K ディスプレイが接続されていると誤認させてくれる回路が積んである HDMI 端子のドングルですが,同様のドングルは様々な端子であちこちで発売されているようです。Amazon とか Aliexpress で色々ありました。
ソフトウェア
とはいえ私はそれをすぐに実現したい,できなかったらすぐ諦めるぐらいの気持ちだったので,ソフトウェアでの解決を試みました。よくあちこちで書かれている手段としては,Windows のコントロールパネル,画面解像度の設定にて,「画面の検出」を押したのちにアレコレすると VGA driver な fake monitor を用意することができる,というもの。しかしこれは Windows 10 の近年[いつ?] の ver. では使えません。そもそも画面設定がついにコントロールパネルからオミットされました。
なのでここで最終的に利用した手段を書きます。SpaceDesk という driver とアプリを用いる方法でした。ドイツ・バイエルン州のアウクスブルクに本社がある datronic という会社のソフトウェアだそうです。まずこれの driver をインストールし,その後 Google Chrome で http://viewer.spacedesk.net このページを開きます。すると IP アドレスの入力画面が登場するので,自身の PC のローカル IP アドレスを入力してください。
ここでブラウザが全画面になり,二つめの画面の中身が登場すると思うので,いったん ESC を押したりして抜け出してください。そのあと,このページの左上のハンバーガーボタンを選択すると設定が選べます。設定の中で「Use Client Resolution (for Extension)」などにチェックを入れればよろしかろうと思います。
もし画面が拡張ではなく一つ目の画面の複製になっていたら,「Super(Winキー,あるいは Cmd キーとも言います)+P」を押して「拡張」を選ぶと解決