見出し画像

UnityでVR開発をしてみた

2021年12月4日
学生LT会「Piyogrammer Conference 2021」に参加させていただいた時に発表したVR開発についてをまとめました。
LT会で話せなかった点や、VR開発をやってみての感想を書きました。
開発の流れについては発表スライドや過去のアーカイブもありますので、興味のある方は是非見てみてください。

YouTube - Piyogrammer Conference 2021 学生LT会
発表スライド - 初めての○○


VR開発をやるきっかけ

全てはOculus Quest 2 というVRゴーグルを買ったことから始まります。

更に12月初旬にLT会を行うことのことで、何をしようか考えた結果「VR開発」というテーマに決定しました。


開発環境について

今回の開発環境は以下の通りです。

開発プラットフォーム:Unity
VR機器:Oculus Quest 2

このふたつだけで出来ちゃうので、手軽だし触りやすいと思います!


始めるまでの準備

もちろんですが、知識がなにもない状態で出来るわけではありません。
自分と同じ環境でVR開発を行いたい方は、以下の条件を満たしていると良いと思います。

unityの構造や操作がある程度分かる

VR機器とunityを接続するのにパッケージが必要だったり、3Dモデルとコントローラーの動きを結びつける作業でオブジェクト(キャラクターやモノなど)を弄ったりと…
開発の工程で「どうやってやるの?」「これは何をしてるの?」といった部分が出てくると思うので、先に勉強しておいて損はないかなと思います。

Unityにはチュートリアルが公式から出ているので、ぜひ一度やってみると良いと思います。大体の感覚が掴めるはずです。

Unity初心者向けチュートリアル集
Unity入門チュートリアル「玉転がし」

オブジェクト指向言語をある程度知っている

モノを動かしたり、コントローラーのボタンを押したときにある動作をさせたい場合にはプログラムを書く必要が出てきます。UnityではC#が使われているので、プログラミングがやったことのある人でも「オブジェクト指向言語」と呼ばれる言語を経験していると良いと思います。
実際に触りながら覚えていくのも手だとは思いますが、「癖が強い」という点だけは忘れないでください。

調べる力があるとさらに良い

分からない点が出てきたときに、調べて解決できる力があると特に良いと思います。
実際に体験してみて感じたことの一つとして、VR業界はまだまだ発展途上なので資料が少ない、環境が変わりやすいと感じました。自分が参考にしたものを一通り載せてはいますが、資料が古かったりしているものもあるので中々大変だと思います。辛抱強く頑張ればいつかは…!


VR開発で体験したこと

環境構築で凄く苦戦した

VR開発の環境構築は本当に苦戦しました。
Unity側では設定項目が多く、ビルドやリファクタリングなどを合わせて約30分もかかります。
しかもエラーが出たらやり直し。環境構築恐るべしでした。

さらに悩まされたのは、Oculus Quest2の初期設定。
VR機器を「開発者モード」にしないといけないのに、その項目すらなくて約3時間も探した挙句、分からなすぎて開発者に問い合わせました…
返事の結果、バグであったことが判明しました。
無事に2週間後にバグ修正が完了し、開発に移行することができました。
こんなことがあるんですね…
oculus community - Developer Mode is missing!

デバッグがとても面白い

デバッグ作業が面白いのは、VR開発での魅力の一つだと感じました。
自分が想像していた動きと予想外のことが起きてもストレスが溜まらないし、むしろアイデアが湧いてくるのではと思うくらい楽しかったです。
しかし想定外の動きになってしまう原因を探すときは少し難点でした。
(毎回起動するのに時間かかる、デバッグログから探すのがとても大変)

デバッグしながら遊んでいる様子

VR業界はまだまだ発展途上

上記にも記載しましたが、
・調べても記事があまり出てこない
・そもそもVR機器を持っている人が少ない
・VR機器でもバグが出ることがある
といった点から、まだまだVR業界は開拓されていないという風に感じました。
そもそもVR業界は伸びしろがあるかという問題があると思いますが、個人的には全然あるんじゃないかなという風に思います。

今回のOculus Quest2は3万円代で購入しましたが、もう少し安くなる可能性もありますし、VRを使用したサービスというのも沢山考えられるのではないかと思います。

VR関連で欲しいと思ったサービスの一例としては、
・ライブの雰囲気を味わえるもの(バーチャル系・あわよくばリアルのも)
・買い物(実際の大きさを確認できる、AR的な感じで一回モノを配置できるとか)
・ガンダム(機体に乗りたい!!!!)
・トランプ・ボードゲーム(皆でわいわいできるもの!オンラインでもできる!最強!みたいな)
本当に色々あるので、是非とも実装されてほしい…!


参考資料

発表スライドにも書いてありますが、以下に参考になりそうなものを列挙しておきます!

Unity + Oculus Quest(Meta Quest)開発メモ
一番のおすすめ記事。
2022年2月時点でも定期的に更新されてる。しかも公式ドキュメントより分かりやすいのですごくいい。開発に困ったら目を通してみると良さそう。

Oculus Quest2セットアップ手順
公式の方の開発手順。
今見たら分かりやすいドキュメントになっていたので、こちらもおすすめ。

Oculus Questで3Dアバターを動かしたい
OculusQuestでXR Mecanim IK Plusを使用してユニティちゃんを動かしてみる
3Dモデルとコントローラーを同期させる設定を行うもの。
自分は「ユニティちゃん」のモデルを使用したが、他のモデルでもVR用の部位ごとにオブジェクトが分かれていれば使用できる。

Oculus公式 -コントローラーのマッピング
【Unity】Oculus Questのコントローラ入力の取得方法まとめ
UnityでOculus Quest(やQuest2)からコントローラーの入力を受け取る方法
コントローラーの入力受け取りの記事。
分かりやすい図も掲載されているので、これを見ればすんなりできるはず。


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