solutions
近年、VR SNSが一般的に広く浸透してきています。中でもVRChatは大規模なVRイベントが盛んに行われており、企業広告としての活用が注目されています。
VRChatでは、個人が楽しむだけでなく企業が自社製品やサービスを展示することもできるバーチャル空間を公開できます。弊社ではVRChatのワールド制作において必要な技術要素について社内研究を行いました。
その成果物として、VRChatのワールドを試作しました。ワールド内にはいくつかの技術要素を試した、天気予報やドローン等の試作オブジェクトが置いてあります。
展示室として利用するための空間をプリミティブオブジェクトから作りました。各展示部分には展示に注目を集めるためのスポットライト、展示の説明、展示オブジェクトを配置しています。 壁や床はUnityのプリミティブオブジェクトから作り、説明台はモデリングをして作りました。
関連する技術要素:
皆さんが普段使用しているニュースサイトやチャットサイトでは、常に新しい情報が画面に表示されていると思います。 このような、情報が更新されるサイトのことを動的サイトといいます。逆に、いつ開いても同じ情報が表示されるサイトを静的サイトといいます。 動的サイトではWebAPIというインターネット上の情報を取得する技術を使うことで情報を更新しています。 様々なギミックを作成できるVRChatですがWebAPIにアクセスする機能は制限されており、使うことができないようになっています。 つまりVRChatでは基本的に静的ワールドしか作ることができません。
一方でVRChatではインターネット上の動画をワールド内で再生することができるという機能があります。 この機能を抜け道として利用し、動画を経由して任意のWebAPIから情報を取得する仕組みを構築しました。 サンプルとして1週間天気予報を表示するギミックを作成しました。天気予報の情報は更新ボタンを押下することで最新の情報に更新されます。
以下にVRChatのワールド内からWebAPIにアクセスする流れを説明します。
① VRChatワールド内でインターネット上の動画A(存在しない動画)の再生をリクエストする。
② 動画Aへのアクセスを検知し、目的のWebAPIにアクセスする。
③ ②から情報を取得する。
④ ③で取得した情報を0/1のビットデータに変換し白黒の動画を作成する。
⑤ ④で作成した動画を①でリクエストされた動画AとしてVRChatワールドに送信する。
⑥ 再生された白黒の動画から④と逆の手順で情報を復元する。
このようにインターネット上の通信を中継するものをプロキシと呼びます。
今回はプロキシとしてIBM CloudのFunctionsを使用し、白黒の動画を保存しておくストレージとしてCloudObjectStrageを使用し、以下のようなシステムを構築しました。
関連する技術要素:
弊社のロゴが水面に浮いているイメージのオブジェクトです。ロゴの画像はアニメーションで回転しています。 床のテクスチャはシェーダ―でリアルタイムに波動関数を解き、床上を物体が移動すると波紋が広がるように見える仕組みになっています。
関連する技術要素:
インタラクトすることでドローンを操作し、任意の視点からの映像を確認できるギミックです。 ボタンにインタラクトすることでアバターの位置が固定され、移動キーでドローンを操作できるようになります。 ボタンをもう一度押すことでドローンの移動・回転を切り替えられます。
関連する技術要素:
インタラクトすることで乗車できる乗り物です。アバターがインタラクトして座ることで動き出し、決まったコースを1周すると停止します。
関連する技術要素: