リアルのバーとVRChatが融合!?その裏側を公開
VRChatとリアルの場所が融合!?
まずはこちらの動画をご覧ください😊
リアルなバーに、VRChatの住人がアバターのまま、遊びに来てくださっています🍸️✨
リアル側からは、Quest3を被ることで、参加者を目の前にお話やコミュニケーションが出来る上に
VR側からは、リアル側の様子も見えちゃう
「リアルとVRの融合体験」を実現しています。
今回はこの体験の背景と裏側の技術について
実際にやったこと、利点、課題等についてお話できればと思います。
ざっくり技術的概要
まず簡単にざっくり、何をどうやっているのかを書きますと
・リアルなバーの店舗と同じ大きさと構造のワールドをVRChatに作り
・Quest3+VirtualDesktopのパススルー機能をオンにした上で該当ワールドに入る
•VR側からは、通常通りワールドにjoin
本当にざっくり書くと、こうなります。
Quest3+VirtualDesktopパススルーについては
既に多くの方がいろんな方法を試されていますね
今回はこれらの試みを「バーで開催するVTuberのリアルイベント」に応用いたしました😊
会場は新宿御苑から徒歩1分ほどの立地にある
カフェ&BAR functionさんです🍸
VTuberコラボイベントをこれまで数多く開催されていて
今回私もコラボイベントを、というお話から今回の体験になりました。
そしてBAR Function店長のマッキーめぐみさんは
なんと、VIVEアンバサダーも務めるXR関係にも造詣が深い方✨
今回の体験はめぐみさんのご協力のおかげで実現したといっても過言ではございません。
さて、ここからは具体的にどんな準備があったかを書いていきます。
VRChat側の準備
まずは、お店と同サイズのワールドを作る必要があります。
モデリングで寸法を合わせる方法でも良いのですけど
今回は手っ取り早く確実な、3Dスキャンを採用しました。
まずはScaniverseでお店の中をぐるっとスキャン
スキャンしたものがこちら
スキャンして処理したモデルをunityに取り込んで
ワールドとして仕上げていきます。
3Dスキャンモデルは、スイッチで表示のオンオフを出来るようにします。
VR側で入った人は、3Dスキャンしたワールドが体験できて
リアルから入った人は、スイッチで3Dスキャンメッシュを非表示にすることで、何も無いワールドになり、パススルーされます。
パススルーできるワールドを作るにあたっての仕掛けの一つは
「スカイボックスを真っ黒で反射無しのマテリアルにする」です。
今回Virtual Desktop設定でパススルー色をRGB値0 0 0の黒で透過パススルーするため、周りを真っ黒にする必要があります。
黒だと、やりづらいんじゃない?と思われるかもですが、意外に真っ黒なものってアバター含めてあまりないのですよね。
黒い服の影とかは、場合によっては透けてしまう可能性もありますが、ワールド上のライティング等である程度カバー可能です
グリーンバックだと、アバターやオブジェクトのフチに緑が若干浮き出てしまうこともあり、ちょっと見た目して気になっちゃったのですが
黒にすることで、トゥーンシェーディングにおけるアウトラインに見えて、認知上気にならなくなることが黒にした決め手でした♪
黒にしたらー?というのは八坂まとさんのアイデアです✨
この場を借りてお礼申し上げます♪
また、お店の3Dモデル以外に、パーティクルを入れたり
今回、コラボイベントですので、頂いたFAやお友達VTuberのポスター
QVPen等も配置。
これで、リアル体験側でお店のメッシュのみ非表示にすると、ポスターやペン等が残り、リアルに実際に貼ってあるように見えるわけです✨
これを実際にパススルー表示にするとこうなります
また、お店にリアルに設置されているスクリーンの位置にTopazChatも配置し、リアル側からのカメラ配信を見られるようにします。
VR側での写真はこちら。リアル側の様子がワールドにいる全員に共有されます
リアル側準備
リアル側の準備としては、ゲーミングPC+Quest3をVirtualDesktopで接続
パススルーの設定を黒にします。パススルー度合いの設定は環境に応じて。
大体2%の度合いがちょうど良かったです。
あとは、ワールドのスポーン位置にリアルで立ち、ワールドのJoinするのみです。
リアルとVRワールドの細かい位置調整は、コントローラ移動・回転で行い(結構力技)
概ね合ったら、コントローラは見えない場所に置いて、ハンドトラッキングとリアル歩行で移動というオペレーションにします。
コントローラ移動や回転をしちゃうと、せっかく合わせた位置がずれちゃうんですよね💦
また、店内の様子をWebカメラで取り込みながら、TopazChatに配信することで、VR側とのリアルタイムなやり取りも実現しています。
音声は、リアル側は店内に設置された指向性の広いコンデンサマイクで広い
VR側はプレイヤー側音声をDiscordでリアル側に配信しているので
リアル側でHMD被っていない人でも自由に喋れますし、VR側も、TopazChatから出てくるリアル音声とリアルタイム(遅延1秒くらい)でお話できます🎙️
また、ワールドの3Dオブジェクトは非表示でなく、黒いマテリアルに差し替えることで、他のオブジェクトやアバターを遮蔽できるメッシュとしても利用できます。
こういうことです↓
今回、テーブル等も3Dスキャンしたので、これを黒マテリアルにすることで
パススルーしてるのに、アバターがリアルに一部テーブルに隠れている所を擬似的に表現できる、というわけです💪
(位置合わせ等によってはちょっとズレちゃいますが)
課題もあれど、概ね成功
ひとまず、ざっくり今回やったことを書き出してみました。
すっごい技術に見えますが、実際は既にあるソフトの組み合わせだけです。
コード等は1行も書いていません笑
技術的に、厳密にいうと「MR」等ではなく
言うなれば「VRオーバーレイ」と言ったところでしょうか。
MRであれば、位置合わせ部分をじっくり実装して自動化等できるんですけどねっ💦
VRChatの膨大なUGC資産を活かせるのは、本当に素晴らしいと思うのです
今後、こういうイベントが増えないかな~と思っています✨
とはいえ、実際やってみて課題もありましたので、以下にざっくり
■課題
・設備的課題
Quest3一台につき、PCが1台必要
・準備コスト
リアル側での準備
・位置合わせ
•スケール感
アバターとRealHeightをあわせることで、スケール感は概ね一致
•ポスプロとの相性
ぼやけた感じの光等はクロマキーと相性悪い
勿論今後解決したい課題や運用での注意点もいくつかあるのですが
このあたりは追々、需要があれば書いてみようかなと思います。
頂いたサポートは、私の学習や動画制作の機材等、活動費に使わせて頂いております♪