VR撮影スタジオを作ってVRでみんなが見に来るゲーム配信した話

まずはこちらの動画をご覧ください。
かいつまんで見てもらえれば雰囲気はわかると思います。

目指す所は「ひとんちでゲームやってる人をわいわい見られるところ」
配信でもVRでもお邪魔できる配信を、VRChatの環境で作っちゃいました。

必要なもの

・OVRdrop
・VRChatとUnity
・OBS(ストリーミングソフト)

ゲームプレイ

VRChatに居ながらにしてゲームをプレイするため、取り込んだ画面をVR空間に表示させられるソフト「OVRdrop」を使います。
VRChatと同時に起動することができ、ワールドに滞在しながらゲームをプレイすることが出来ます。
ゲーム画面については、ゲーム機であればキャプチャーボード経由、PCゲームであればそのまま取り込めます。

ただし、他の参加者にはこのプレイ中のゲーム画面は見えないので「プレイしている風」の工夫が必要でした。

ワールド概要

いろいろおいてありますが、ざっくり要点だけ説明するとこんな感じです。

まず「ワールド内にいる人」に配信を見せるため、プロジェクターを置きました。
【参考】
https://docs.vrchat.com/docs/vrc_syncvideostream
https://vrcworld.wiki.fc2.com/wiki/VRC_SyncVideoStream

ここにライブ配信を映せるので、ワールドに来た人がTwitchやyoutubeの配信越しに今どういうゲームをやってるか分かるわけです、

これだけで配信者と参加者がわいわいしてるワールドは用意出来るわけですが、この画面を撮影・配信してしまうと、ライブ配信画面が撮影されて配信され、その配信がまたこの画面に流れて撮影され……と、合わせ鏡のように無限ループが発生します。

そこで、配信するカメラにはライブ配信画面が映らないようにし、ついでにクロマキー用のパネルが映るようにしました。

カメラのようなオブジェクトは、「ここから映しているんだ」という実感を周りに与えるためだけのハリボテです。

カメラからの画像をレンダーテクスチャでパネルに表示させ、それをお好みに配置すれば「この画面をキャプチャすればOK!」というもパネルが完成します。
ついでにパネルを壁に飾っておけば「今どんな配信画面になってるの?」というチェック用モニタにもなります。

以前はこのモニタにVRChatの「stream camera」を向け、位置調整を頑張りながら撮影していましたが、後にcanvasを使い、デスクトップにこの画面のみを表示させる方法を教えていただきました。
【参考】
https://twitter.com/OculusTan/status/975830648270217216

OBS(ストリーミングソフト)概要

VRChatの画面をゲームキャプチャで取り込み、フィルタをかけてクロマキーで緑を抜きます。
これを最前面にします。

クロマキーで抜いた空間に配信してるゲーム画面を取り込み、TV画面に映ってる風に配置します。これだけです。

VRChat画面が前面になっているので、ゲーム画面よりもVRChat内のアバターが手前に表示されます。
あたかも本当にTVを見てゲームしているような絵が完成します。

ちょっとした問題

VRChat内の参加者、配信者はWindow10環境前提です。
「OVRdrop」がWindow10を要求しています。
また、VRChat内の「vrc_syncvideostream」がWindow10でないと再生をサポートしておらず、それ未満の環境ではVRChat外のブラウザで見ていただくしかありません。

クロマキーの都合上、緑色が抜けます。
つまりガチャピンのような現象が起きます。
VRChatには下手すると全身緑肌の子とかもいるし、かと言ってマゼンタや黄色をクロマキーにしても不都合が目に見えているので、悩みどころ。

・ワールド参加者がゲーム画面を隠すことがあります。

参加者が被ってゲーム画面が見えないという事態が起こります。
解決するには、OBSの側でクロマキーせずに手前にゲーム画面を乗せればいいだけです。
臨場感、リアル感とトレードオフですね。

ワールド内から見た配信画面は30秒ほど過去のものになります。
動画エンコード➜配信➜youtube視聴だけだと4秒程度の遅延になりますが、VRChat内で同期させているためか、更に遅延が挟まれます。
「ワールド内で配信者が叫び声を上げた」➜「30秒後、なぜ叫び声をあげたかがワールド内モニタで判明」みたいな現象がおきます。
ワールド参加者も別途、ブラウザ視聴してもらえば4秒程度で収まりますが、ワールド内にプロジェクター作った意味が無くなっちゃう。

HMDを被っている都合、手元が見えません
当然ですが、手元が見えないのでスマホゲー、キーボードは少し辛いです。
コントローラーを持つゲームが向いています。
VIVEのHMDに搭載されているカメラを使い、解決する方法も検討中です。

OVRDropを通したゲームプレイは0.05秒(3F)ほど遅延が発生します。
更にキャプチャボードを通したゲーム機画面は、0.15秒(10F)前後の遅延を感じます。
応答速度が要求されるゲームはかなりの不利を強いられます。
また、通常のアクションでも操作感にかなり影響があります。
ロックマン11をクリアしたり、splatoon2を自然にやったりしているように見えますが、多分僕が慣れすぎてるだけです。

その他

細かいワールド内の配信用セッティング、具体的なunity上の設定は次回以降まとめようと思います。

この記事が気に入ったらサポートをしてみませんか?