デスクトップ版バーチャルキャストの試み(低価格バーチャルキャストチャレンジ)

(この記事は2021年10月にブロマガが終了することに際して、記事を移行したものになります。)
https://ch.nicovideo.jp/kou1niko/blomaga/ar1997854

# バーチャルキャストをHMD無しで使う試み
2021/02/21現在、バーチャルキャストはデスクトップ版の機能は限定的にある状態です。
ダイレクトビューモートと言って、他に演目をやっている人の所に入ってそれを鑑賞することを主目的として使われるモードになります。

公式の情報はこちらになります。

> なぜなにバーチャルキャスト#17～VR機器不要のダイレクトビューモード！～
VirtualCast Blog
https://virtualcast.jp/blog/2020/05/nazenani17/

フル機能を使いつつHMD無しで何とかならないか？<br>いつものDriver4VRで搦手ですが可能です！

VCIのデバックなどPC操作とバーチャルキャスト内を行ったり来たりする時等作業が楽になる「かも」しれません。

## どうやってやる？

Driver4VRに2020/09頃に「tVR」という機能が追加されました。<br>
公式動画は下になります。<br>
ぶっちゃけ公式動画を頑張ってみたほうがわかりやすいかもしれませんｗ
<iframe width="560" height="315" src="https://www.youtube.com/embed/1hLmf_ND-SA" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

VRの画面をHMDではなくディスプレイやTV写して、色々なコントローラで代わりに操作をすることでVRアプリを使う為の仕組みです。<br>
これは後から、WalkinVRという体にハンディがある方がVRをやるための仕組みとして使用されていきます。

### メリットは？
年齢が小さくてHMDをかけられない子供でもVRのアプリが出来ます。(公式動画ではBeatSaberをやっています)<br>
HMDを被らないから他の作業をシームレスに出来る（今回はこっちを求めてます。）
### デメリットは？
ディスプレイで代わりをしているのでどうしても視界は狭いです。あわせてどうしても没入感は減ってしまいます。
Driver4VRが無料ではないので約２０ユーロ（大体２５００円）かかってしまいます。
やっぱり操作はしづらいです。

それではやってみましょう！

* Driver4VRのアプリ<br>
[購入とセットアップについてはこちらがわかりやすいです。](http://kurotori4423.hatenablog.com/entry/2017/12/25/223120)
* PC(必要な画角が少ないのでグラボは少し低くても行ける可能性があります)<br>
ちょっと今回は明示的な指標は無いので試しに今の構成でやってみても良いかもです。
* VRアプリで使用するコントローラ <br>
(以下は一例で実際は色々選択肢があります)
  1. (その1) Gameコントローラ(XInput対応のコントローラが必要です。自分は JC-U4013S を使っています)
  1. (その2) マウス1個 (PCの操作用に使用するマウスの他にもう1つマウスを用意してください)

### セットアップ

まず、Steam、SteamVRのセットアップは済ませてください。<br>上記を参考にDriver4VRもインストールしてください。

1. Driver4VRを起動してください。<br>
   1. 最初はSteamVRで「ヘッドセット未検出」と出てきます。
   2. 画像のところにある「Enable/Disable tVR」を選ぶと次のダイアログが出ます。![01_01.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/10406/89839c10-2b6a-9b53-f4a6-d675ade5e675.png)<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/10406/03bf434e-a8b8-7768-f084-5db365e9445f.png" width=50%>
   3. 「ON ～」を選ぶと後ろに「Driver4VR tVR Display Output」というウインドウが出てきます。これで仮想HMDが設定されてVRアプリが動くようになりました。

2. 手のコントローラを設定します。<br>
ハンドルコントローラが2個は必要なのでそのセットアップをします。
    1. HandTrackingの項を選択して「Virtual Tracker」を選んでください。![07.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/10406/3bcc98e4-b969-cfeb-9f43-8696cd210165.png)
    1. 以下の図の「Tracker Manager」をクリックしてください。以下のwindowが開きます。![05_01.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/10406/b5637a83-95a3-84d9-b273-5f801dc2702d.png)
    1. XBox コントローラーとマウスを使えるようにする設定を行います。「Open toggle device supoort window」を選択してください。次のような画面が出てきます。![08_01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/10406/23cb080b-217e-9ba2-459d-6937383a0a4c.png)
    1. 「Controller emulation with mouth」と「Controller emulation with Xbox Controller (input/movement)」をOFFからONにしてください。![06_01.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/10406/48169365-c92a-e452-8b40-6c74853337b4.png)
    1. 「Open toggle device supoort window」のダイアログを閉じて下さい。
    1. 「Update List of Devices」を押すと「VR Controllers and Trackers」と「Deteted devices」が更新されます。もし出てこない時は、マウスやコントローラを一度操作してから「Update List of Devices」を押してみてください。![08_01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/10406/df12a30e-3b56-0235-1a11-19a8ee9ab633.png)
1. 仮想コントローラとマウス、ゲームコントローラーを対応させます。<br>
登録したマウスと、ゲームコントローラーを仮想コントローラの何に割り当てるかを設定します。
    1. (自分は右側にマウスが置くスペースが有ったので)d4vr_rightとmouse(おそらく数字が大きいほうが後から刺したものです)をクリックして「Assign」をクリックしてください。<br>
    Assigined deviceの所が「not assigned」から選択したものに変わると思います。こちらが右手のコントローラ相当になります。
    1. d4vr_leftをクリックした後、gamepadをクリックした後、「Assign」をクリックしてください。<br>
    上記と同じように「not assigned」から選択したものに変わると思います。これが左手コントローラ相当になります。 ![10.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/10406/ae943617-c66b-a371-ce67-a37cf4dd9b3a.png)
    1. 以上でコントローラ設定が出来ました。一度「VR Configration」を選択してボタンの割当がどの様になっているか確認してください。確認できましたら、「Tracker Manager」ウインドウを閉じてください。

4. Driver4VRの開始<br>
ここまで設定すると機能を動かすことが出来ます。<br>
「Start Driver4VR」をクリックしてください。画面に2つのコントローラが出てきます。<br> ![01_02.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/10406/af345a58-5186-9b39-1a61-45a03c1d8f3b.png)
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/10406/33a2c09e-a9b7-5987-1586-93fd08fc0872.png" width=50%>
このままマウスをつかって操作すると他の画面を操作してしまうので、「Mouse/Keyboard Capture」を選択してウインドウを出してください。<br>
「F12」キーを押すとマウスとキーボードの入力を開いたウインドウがすべて取ってくれるのでご操作がしにくくなります。<br>
終了時には再び「F12」キーを推してください。

5. バーチャルキャストの起動<br>
ここまで来ると、SteamVRからバーチャルキャストを起動することが出来ます。<br>
使ってみた際に気づいたのですが、「設定」の「デバイス」で「コントローラ種別」について「AutoDetect」だとルームで移動できない場合がありました。<br>
今回はViveコントローラの代わりとして動いているので「TouchPad」を明示的に選んでみてください。![14.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/10406/4d960763-3ed4-fca3-ec3d-59aa49361ded.png)


# 最後に
これでHMDを使わずにマウスとコントローラでバーチャルキャストを動かすことが出来ます。<br>
実はマウスを使わずにコントローラの左右スティックでも両手を操作できますが、使ってみるとやはりVRアプリ内のUIは比較的早く操作できた方が快適と感じまして、マウスを有効にする方法を記載してみました。<br>
これでVCIのデバックとか楽になるかも…知れませんｗ

ここまでセットアップするとバーチャルキャスト以外のVRゲームも実は出来るようになりますが、やっぱりコントローラの問題は出てくるのでアクションゲームとかは難しいと思います。

別途書ければ書きたいと思いますが、もしあなたがニンテンドースイッチのJoyconや Kinnectを持っていれば、公式動画のようにTVでBeatSaberも出来るようになります。

VRの最大のメリットは没入感と思っていまして、それはこの方法では体験できませんが、これが必要な人の力になれば幸いです。