【メタバース】会社のVRワールドを1ヶ月で開発して忘年会を開催する方法


# 概要

- これはVRの会社独自ワールドを開発し、参加する社員全員にVRデバイスを配布してイベントを開催するまでをまとめたお話です。
- これからVRでイベントを開催したい方にどんな準備が必要かをご紹介します。

まずは忘年会のTeaser動画をご覧ください。

<iframe width="560" height="315" src="https://www.youtube.com/embed/43G85EtqEeE" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

弊社ABEJAの忘年会会場ということで、ABEJAPIAという架空のワールドを作りました。その各地でVRならではの様々なアトラクションを楽しめる作りになっています！

【速報】一般公開いたしました！VRChat内のWorldで「ABEJAPIA」と検索すればアカウントをもつどなたでもご参加可能です！
![image (27).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/969489/17c2b6a7-65a1-7735-e3c8-42dd903ef7ea.png)


# Index

- 開催の経緯
- 開催までの準備
- 実装内容
- 結果

# 開催の経緯

社内の方が朝会にVRデバイスを装着して登場し「VRで集まりましょう！」という発言をされていたのがきっかけで、その日のうちにOculus Quest2を購入しました。それまでの私のVR経験はGoogle Card-board やPlaystation 4 VRなどがありました。Google Card-boardについては2分割されたスマホ画面を見るもので、3軸でのトラッキングはあるもののコントローラなどはないため没入感には乏しいものでした。Playstation 3 VRについてはより進歩しており、インタラクションのあるゲームはあったものの解像度がそれほど高くなく、没入感の物足りなさは多少ありました。

---
[Oculus Quest 2](https://amzn.to/3IW7Gy5)
<a href="https://www.amazon.co.jp/Oculus-899-00183-02-Quest-2%E2%80%94%E5%AE%8C%E5%85%A8%E3%83%AF%E3%82%A4%E3%83%A4%E3%83%AC%E3%82%B9%E3%81%AE%E3%82%AA%E3%83%BC%E3%83%AB%E3%82%A4%E3%83%B3%E3%83%AF%E3%83%B3VR%E3%83%98%E3%83%83%E3%83%89%E3%82%BB%E3%83%83%E3%83%88%E2%80%94128GB/dp/B09B9F7439?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=135L9D8A9PHY3&keywords=Oculus&qid=1639907318&sprefix=oculus%2Caps%2C271&sr=8-5&linkCode=li3&tag=tktkchestnu0b-22&linkId=f118a2b129223d4cd03d77440b5f5932&language=ja_JP&ref_=as_li_ss_il" target="_blank"><img border="0" src="//ws-fe.amazon-adsystem.com/widgets/q?_encoding=UTF8&ASIN=B09B9F7439&Format=_SL250_&ID=AsinImage&MarketPlace=JP&ServiceVersion=20070822&WS=1&tag=tktkchestnu0b-22&language=ja_JP" ></a><img src="https://ir-jp.amazon-adsystem.com/e/ir?t=tktkchestnu0b-22&language=ja_JP&l=li3&o=9&a=B09B9F7439" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
---

Oculus Quest 2を購入して驚いたのは、そのクオリティの高さです。

- 解像度が高く、ゲーム中に視野の狭さを感じない
- コントローラーのトラッキング性能が高く、完全に自分の手の延長になっている
- 38000円ほどであり、これまでのVRデバイスと比較してとても安い

Oculus Quest 2 であれば普段ゲームに慣れていない方でもVRの凄さが分かる段階まできていることを強く感じ、ぜひともVRの楽しさを周りに広げたいと決意しました。

会社でイベントを行うためにはまず、全社員が参加できることが重要であり、なおかつ忘年会ということで1年の疲れが吹っ飛ぶような楽しいものを用意しなければなりません。
もともとリモートが中心の弊社では、Web会議ツールなどを使った忘年会を予定していましたが「VRで忘年会をやりたいです！」という企画書を作成し運営会議にプレゼンへ行きました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/969489/99899e6a-9925-6e4b-7226-e60987e03268.png)
（企画書はイメージです）

結果、以下のような点が決め手となり実施する運びとなりました。

- 国内、国外のメンバーがいるが場所を問わず参加できる
- 日本語以外のメンバーも楽しめるようなコンテンツを用意する
- VRデバイスの購入・レンタルを補助する
- 独自のVRワールドを開発し、誰もが楽しめるコンテンツを提供する

# 開催までの準備

11月初旬、VRで忘年会を開催するためにはどのような機能が必要であるかをまず検討しました。

**必要な機能**

- VR空間で同時多接続が行え、声でのコミュニケーションが行えること
- 独自に設計した空間を限定公開できること
- 最大70人近くが同時に接続できること

これらを満たすため、VRChatと呼ばれるVRプラットフォームを使うことにしました。Oculus Quest 2のネイティブアプリとして開発することも考えましたが、開催までは1ヶ月ほどしかなく公式またはテストアプリとして出すには時間が足りなかったのです。VRChatでは以下のようなことが可能です。

**VRChat プラットフォーム**

- プラットフォームに用意されたアバターを使って、多人数でのコミュニケーションが可能
- VRChat SDKが用意され、「一定条件以上遊んだユーザー」であれば誰でもワールドをアップロードすることが可能
- 歩行などの動作だけでなく、重力やオブジェクトへのタッチ・掴み動作などはデフォルトで実装されており、オブジェクトに対してこれらの付与が可能

この条件の中の2が非常に曲者で、開発者はまずVRChatの中で長時間を過ごす必要があります。もちろん中で遊ぶことは楽しいのですが、この「一定条件以上遊んだユーザー」の定義が公式にオープンにされておらず、10時間以上遊んでも実績解除されない人の報告などもあります。私自身も開発を行うためにひたすらVRChatに没入する日々が続きました。

3Dイラストが描けるワールド、おしゃれな高層ビル屋上からの夜の風景を再現したワールド、ピアノが弾けるワールド、スパイダーマンのようにビルの間を飛び回れるワールド、Among Usを3Dで遊べるワールド、イカゲームのようなだるまさんが転んだを遊べるワールドなど世界を転々とする日々が続きました。

そして、ついに、実績は解除されませんでした。

え。

VRで過ごした時間は裕に数十時間を超え、無数の世界へ潜り、VR友達は増えたにも関わらず、私の実績は解除されなかったのです（このころには完全にVRに体が適応し、没入感を高めるためのハンモックに揺られながら、ジェットコースターを体験しても全く酔わないほどの状態になっていました）。

しかし忘年会までの時間は1ヶ月を切っています。
残された手段は一つしかない。

![Untitled(2).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/969489/a1490c08-5bb9-9a9e-137e-cb13f2d01f36.png)

泣きながら課金しました（課金することで実績解除がしやすくなるという公式発表があったのです）。
そしてすぐに実績解除のメールが届きました。

![IMG_3969(1).jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/969489/d52be782-fd86-42dd-bc36-6b72a6fae3dd.jpeg)


こうして無事にワールドがアップロードできる状態になりました。

# 実装内容

弊社独自の3Dコンテンツについては、Blenderで作成しそれ以外のワールド要素は既存のアセットを組み合わせて作成しました。

Unityに関しては、オブジェクトの動作などはC#で開発が必要ですが静的なオブジェクトについてはほとんどコードを書かなくても実装が可能です。

## Unity

今回はVRChatのプラットフォームを使って独自ワールドをアップロードします。Oculusのネイティブアプリを作らなかった理由としては、1ヶ月という短期にマルチプレイヤーが参加できる環境・アバターを用意する難易度の高さと審査の難易度が理由です。
VRChat SDKが対応する最新版のUnityは2019.4.31f1（2021年現在）です。

- VRChat SDK

[https://docs.vrchat.com/docs/current-unity-version](https://docs.vrchat.com/docs/current-unity-version)

- Unity 2019.4.31f1

https://unity3d.com/get-unity/download/archive

Unity Install後にワールドを作成するための VRChat Worlds SDK3をダウンロードします。

[https://vrchat.com/home/download](https://vrchat.com/home/download)

基本的にはVRChat SDKをimportし、AndroidビルドをすることでOculus Quest2用にワールドアップロードが行えるようになります。
VRChat SDKはダウンロード後、UnityのProjectウィンドウ（ファイルエクスプローラーにあたるウィンドウ）にドラッグ&ドロップすることで使用可能になります。プレイヤーの初期スポーン位置決定等はVRChat worldコンポーネントをHierarchy（Unity内の構成要素一覧）に追加することで行えます。基本的なオブジェクトの設置はグラフィカルに行えます（three.js等と違い、コードベースでの指定ではありません）。

![image (20).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/969489/2673c0ae-3f78-78ee-281f-87884d6ba5a2.png)

上記の図が制作前のワールドの概略図です。

ワールドのコンセプトとしては、ファンタジーにありそうな中世の街をイメージして開発しました。開発といっても、実際にはC#を書く部分はアニメーションのみであり、景観を考えながらデザインするプロセスが中心となります。
最も難しいのはOculus対応にしてワールドを作成する場合、50MBまで（2021/12現在）という制限があったことです。解像度が高く、テクスチャの綺麗な3Dオブジェクトを使用するとすぐに上限を超えてしまいます。また、Unity Particleなどを利用した花火についても同様で、一箇所から打ち上げるのに1MBを使用するため、それほどたくさんは打ち上げられません。現実では予算の壁がありますが、VRではデータの壁があるのです。
データ制限の問題や軽量化の問題を解決するためにはいくつか方法があり、支配的な要素は以下の通りです。

- オブジェクトの頂点数を減らす
- テクスチャの画質を下げる
- ライトなどの光源をリアルタイムレンダリングせず、ワールドに固定する

1. オブジェクトの頂点数を減らす
これはシンプルに形が簡素な3Dオブジェクトを使用することです。丸みを帯びた形状の3Dオブジェクトは美しく見えるものの、非常にファイルサイズが大きくなります。Low Polyと呼ばれる頂点数がすくないアセットを使用する、Unity、Blenderで角張ったデザインの形状をあえて作成するなどが必要です。

2. テクスチャの画質を下げる
かなり支配的です。Blenderで作成したオブジェクトをワールドに配置する際、2024Pなどの画質で使用すると1~3MBほどのサイズになりますが、125Pまで下げることで100KB前後になるので可読性のいらないオブジェクトのテクスチャは下げましょう

3. ライトなどの光源をリアルタイムレンダリングせず、ワールドに固定する
ライトの設定から変更が可能です。リアルタイムにライトをシミュレーションして影を表示する設定などは非常に処理が重くなるため、あらかじめライトベイクと呼ばれる設定を行う方が良いです。

さて、これらの開発を通してできたワールドがこちらです。
![image (21).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/969489/08ffdff4-2c99-c916-00e2-b5c72a2f30da.png)
弊社「ABEJA」はスペイン語で蜜蜂を意味するのですが、その蜜蜂の巣のハニカム構造である六角形を基本構成としたグリッドパターンが会社サービスロゴ等でも使用されています。それに従ってワールドも6つの要素に分けて作成しました。

- ABEJAの世界観を伝えるための、はじまりの洞窟
- 3Dのイラストが楽しめる広場
- バスケなどが楽しめる広場
- 宝やレアなオブジェクトが配置された広場
- 街全体や花火を展望できる山
- ワールドで最も到達が難しい塔があるABEJA城

いずれPublicワールドにアップロードする予定ですので、コンテンツの全てはそちらで実際にお楽しみください。一部をご紹介いたします。

### はじまりの洞窟
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/969489/787a0725-d867-1d31-6ca1-41967f112838.png)
世界観を説明する大きな本と、街中心へと続く道があります。

![image (24).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/969489/77b1b4a2-9348-fa7d-51ba-27cc5854c94c.png)
そして、この道を抜けたところに大きな広場があり、上を向いて見入ってしまうように花火を配置しました。
ファザードを抜けた時に眼前に大きく景色が広がるよう、某テーマパークやヨーロッパの街並みを意識して作成しました。

### ABEJA城
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/969489/736198d9-f35e-3ab4-2e88-f9295dc32b7e.png)
ドイツの教会や城をイメージして作っています。門をくぐり抜けた後、思わず上に視線が誘導されるような建物や花火の配置を行なっています。VRならではの特性で、オブジェクトをどれほどにでも大きく配置できるためなるべく目立つように巨大に作成しました。

![20200116p1-3_Original.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/969489/37410dff-c577-453c-ed78-27c9fbf2318b.jpeg)
写真のMunich市街をイメージしています。

### 見晴らしの丘
街全体や花火など含め展望できる丘を作成しました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/969489/71611c9f-6cc5-a035-5244-893523fb5dab.png)
また近くの浮島には、少し上級者向けにアスレチックの要素も作っています。実際に高いところから飛び降りる体験は、VRの中でも同じように浮遊感を感じます。
![image (25).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/969489/f444c089-70b7-1779-d9d8-3106b06adbae.png)

### 会社独自のオブジェクト
またこのワールド開発にあたって、運営チームで会社にまつわるオブジェクトなども用意しました。
ワールドの世界観を伝える本や、運営チームのマスコットキャラクター、CEOの肖像画などなど技術力のあるメンバーに感謝しかありません。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/969489/8fa5d550-98b4-d652-007c-117283efbb8d.png)
週1,2回程度のVR MTGをしながら当日までに必要な内容をブラッシュアップしていきました。
![スクリーンショット 2021-12-14 20.46.33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/969489/24dacf79-6002-8c2e-1b12-8b0dadeb17ae.png)

# 開催
当日までには8時間ほどかけて参加予定者全員のハンズオン会を行いました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/969489/4368f04c-4324-9b84-3605-885ed17ab958.png)
普段使い慣れないデバイス、OS、VRChat UIの操作に慣れていただくのには非常に時間がかかりましたが、運営スタッフによるハンズオンのおかげで全員が事前にログインしVRワールドで歩けるようになりました。普段からVRデバイスを使われる方以外をターゲットとしてイベントを行うには、難易度がかなり高いことを再認識しました。

![VRChat_1920x1080_2021-11-22_23-16-43.016.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/969489/6b8c4360-82b3-f7d6-81b5-3dd2f38c952e.png)



そして、当日は60名以上の方が参加されました。事前のハンズオンのおかげでかなりスムーズに入場が行え、2つのインスタンス（ワールド）で行いました。

![268964925_2614187265391607_5305040459720796056_n.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/969489/32f7f328-ded5-3f7d-ada9-6cf894c1d6b9.jpeg)

ワールド内の3Dイラストや、塔や山に登るアスレチックは非常に好評でアンケートでも高い満足度をいただきました。
![269581876_2614185675391766_6478687144212673893_n.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/969489/dca9da51-92ad-06a3-b073-9a717ff86887.jpeg)

VRデバイスを持たない方向けに、VR会場内の様子をストリーミングするということも行いました。
そのストリーミングデバイスはこちらです。
![IMG_FE1FAC1E4910-1.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/969489/b6a1ee22-4f3c-db76-65b4-775ab30c2ba9.jpeg)
本来WindowsのSteam版VRChatでストリーミング予定だったのですが、Oculus用のプラットフォームに対してWindowsからは参加できない（PCVRは可能）ということが直前に判明しダイソンの扇風機に被らせました。苦肉の策です。Oculus Quest 2は光学センサーをシールで押さえても被っている判定にならず、継続して加速度を与えておく必要があります。
この扇風機の首振り機能を使い、常に会場内をお届けしてもらいました（途中熱暴走で止まることも...）。
ストリーミングについてはPCVRを用意しておくのがよさそうです。

# アンケート

そして開催後の満足度アンケートの結果はこちらです！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/969489/fcc7d736-3195-f578-9b76-456e74856ee9.png)

少数あった「不満」というご意見については、「話す間もなくあっという間に終わってしまった」などの会自体の時間設定に対するものなどでした（酔い防止のため、2次会以降で遊べる人が戻っていただくような形にしました）。
そして、「再度VRイベントがあったら参加したいですか？という質問に対しては驚きの結果が得られました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/969489/494ad5ab-a6d2-d18f-09f8-25e200c92a16.png)
寄せられた感想の一部を記載します
> 新しい感動をありがとうございます！
クオリティが高かった
新しくてよかった
圧倒的な斬新さ
世界がすごく作りこまれていてすごかったです（語彙力）
VR初体験できて、知らない土地に旅行に行ったような感覚を味わえた！
新鮮な体験、世界観の広がりを覚えたため
初体験がまだ経験出来るなんて感動です！
VRが楽しかったから
Very nice initiative to use VR. The environment was nicely made and was fun talking to colleagues there.
VR空間で普通にコミュニケーションが取れた
実際あったことない人とVR上ではじめましてしたのは初体験でした
操作も慣れるまで難しいかと思っていたけど、使いやすかったです。会話の音も想像していたより綺麗でした

男女問わず、幅広い年代の方にご参加いただきましたが、ほぼ全員から好評をいただけました。もちろんVR酔いなどもありますが、ハンズオンを経て慣れることによって軽減されたのではないかと思います。

イベント前のアンケートではVRについて以下のような声が聞かれました。
> ゲームにだけ使う印象
使い始めるまでのハードルがあるかな
なんかすごいといイメージで、自分とは縁遠いものだと思ってました。ですので、今回忘年会で体験できるのはとても嬉しいです！楽しみ
まだまだ未完成感が強く、これからの進化を期待している。
すごい技術ではあるが、あまり実用的ではないイメージ

上記のような過大評価であったり、まだ経験したことが少ない状態からVRイベントを会社で行うことによって以下のようなご意見に変わっていったのも興味深い結果です。
> イベント前と変わりました。思っていたよりも色々なことが出来てすごく楽しかったです
予想以上に技術が進歩しており、ビックリしました
開発してみたいなと思いました
ますます興味でました。VRでなにか作ろうかなと思いました！
思ってたより、VRがリアルでなんでもできる！って思いました

# まとめ
- VRイベントの肝となるワールド開発自体はUnity、VRChat SDKを使用すればそれほど難易度は高くない
- むしろ、VRデバイスを使用するまでのセットアップやその周知が大変
- VRChatでの開発を行うためには10時間以上の修行または課金が必要

データで見るとたった数100MBのワールド・プラットフォーム・仕組みでありながら、中に集まった方が楽しいと感じていただけたということは、やはりVRでのイベントやメタバースの根幹は“人とのコミュニケーション“なのだと再確認できました。3Dペンの使い方を他の方に教えること、山の登り方を一緒に試してみることなどを通して、自分が作ったVRワールドでのコミュニケーションが行われる様子を見ることができたのは開発者視点でとても面白かったです。
また社内のVR普及を考えると社員の50%以上がVRデバイスを購入した状態になりました。社内の多くの人がVRを知っている・体験したことがある状態で会話ができるのは新しい技術やビジネスアイディアなども議論できそうで楽しみです。フルリモートが可能な会社なので今後も日常的にVRミーティングも開催されるのではないでしょうか。

個人的にはVRChatを使用してワールドを開発すること自体はそれほど難しくはなかったので、次はOculus Quest 2 のネイティブアプリに挑戦できればと思っております！
また、社内でもメタバース×ブロックチェーンなど実装の機運の高まりを感じております。熱い。

https://qiita.com/peisuke/items/e876e7be3ba4b5fa5aa3

# お知らせ

そんなABEJAでは一緒にテクノロジーの社会実装を進める仲間を募集しています！
VRだけではなく数々の面白い取り組みにチャレンジできる環境があること、保証いたします。
[【募集職種一覧はこちら！】](https://hrmos.co/pages/abeja/jobs)
![スクリーンショット 2021-12-14 21.08.12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/969489/e1c1a805-75b3-fb43-af82-9b9c184a0c03.png)