OculusRoomみたいなアプリを作りたい
概要
OculusPlatformSDKを使ってVoIPで音声通話するまでの記事を書きます(の予定です)
今回は、OculusPlatformの最初の使い方を書いていこうと思います。
はじめに
OculusGoでOculusRoomみたいなアプリを作りたい。
みんなそう思いますよね。
私はUnityチョットワカリマス。
なので、VR側のUIはUnityで行こう。
じゃあ、ネットワーク機能ってどうやって実装しよう?
ネットワーク機能の選定
ネットワークって難しい、、
現在エンジニア歴2年目プログラミング歴2年目。
やっぱ楽したいなって思っちゃうんですよね。
私が考えた最初の選択肢は、これ。
- UNET
- やっぱりUnity標準!
- Photon
- なんだろうこれ。でもみんな使ってるぞ
僕は以前UNETを使ってHoloLensとOculusGoで同期させたことがありました、が、結構苦労しました。
http://motoyama.hateblo.jp/entry/unet-00
その際にお世話になったバイブルがこちらです。
この記事を読んでUNETめっちゃ神。。
1つのコードでサーバーもクライアントも書けるなんて最高では??
そんな風に思っていた時期が僕にもありました。
いざ実装してみて、自分の理解不足もあり、めちゃくちゃ苦労してしまいました。
なんで同期されてないのか良く分からないなんて事が多発。
実装中にUNETの次のネットワーク機能が完全に出ると発表も受け、モチベーションは一気に下がりました。
今から選択するのは無しとしました。
次にPhoton。
こちらも選択しませんでした。
理由は、
- Unity、Oculus、他のベンダーの製品と繋ぎ合わせるのが怖かった
- 実際にはかなりVRの事例があるし、みんな使ってました
- なんかお金かかりそう。。
- 実際には無料枠もある
- Unityのバージョンが古そうだった
じゃあどうする?
僕はOculusGoだけを対象としたネットワークで良いなって思ってたんです。
それじゃ、Oculusが用意したものでいいじゃん!!
OculusPlatformを使おう。
選定理由はこちらです。
- OculusのAvatarSDKなどと親和性高そう
- 実際にはPhotonにAvatarを使うサンプルがあった。。
- Oculusプラットフォームのみでネットワーク構成したかった
- OculusQuestを遊んでOculusに未来を感じていた
- ハイエンドなPCを持っているVRユーザーを対象としていなかった
- 事例が圧倒的に少なかった
- チャンスだと感じた(ブログを書けるなど)
などなどです。
今となってはPhotonを使った方が良いかも?なんて思ったりしてます。
この理由としては、Oculusを使わずにネットワーク機能の検証が出来ることに尽きます。
が、今回の開発で本当にためになったなと感じているのは、
ドキュメントを読む力が圧倒的につきました。
今までQiitaやはてぶなど先人の力をフルに活用していた、そっちの方が早かった。
けど、凄い先輩によく言われていました。Qiitaを見ずにドキュメントを見ろと。
自分も読みたいと思いつつ、必要性を感じてなかったんです。
だってQiitaにあって、ちょっと変更加えたら実現できちゃう。。。
今回はそんな甘えを一切許さず、ひたすらドキュメントを読んで苦戦し、積み上げていきました。
そんな私の苦闘を書いていこうと思います。