はじめに
こんにちは。IWANK と申します。最近は VR にお熱です。なのでOculusQuest を使って皆大好き Unity でハンドトラッキングをして遊んだ話を記事にしようと思います。
書いていたらめちゃくちゃ長くなりそうな予感がしたので、今回は Unity エディタ上で実際にハンドトラッキングができるところまでを書いています。新歓要素は最後にあります多分
0. 開発環境
Unity や使用したパッケージのバージョンは下記の通りです。Oculus の開発は、Unity 2018.4 以降 に対応しています。詳しくは Oculus for Developers 開発環境を設定する をご覧ください。
- Unity 2020.1.5f1
- Oculus Integration 23.1.0
- Oculus XR Plugin 1.4.3
- XR Plugin Management 3.2.13
1. PC側の設定
Unity でプロジェクトを作成
Unity で新規プロジェクトを作成します。テンプレートは「3D」を選択しておきましょう。
※使用する Unity のバージョンに Android のモジュールをあらかじめ追加しておいてください。
プロジェクトを作成したら、Build Settings からプラットフォームを Android に変更します。
このとき以下の点も変更しておくとビルド時に上手く処理できるらしいです。(今回は Unity のエディタ上で再生して遊ぶだけなので必要ではありませんが)
- テクスチャの圧縮方式を ASTC に変更する
- Project Settings -> Player -> Other Settings -> Graphics APIs から Vulkan を削除する。(Unity 2019.3 以降は Oculus Quest で Vulkan もサポートしているので削除しなくてもいいかもしれない)
- Minimum API Level を「Android 6.0 'Marshmallow'(API level 23)」に変更する。 詳しくは Oculus for Developers Android開発 をご覧ください。
Oculus Integration をインポートする
Oculus Integration とは
Oculus統合パッケージOculusIntegration.unitypackageは、VRのコアとなる機能、コンポーネント、スクリプト、およびプラグインのためのオールインワンソースであり、これによりUnityにおけるOculusアプリ開発の処理がさらに簡単になり、また機能が拡張されます。
このパッケージにはいくつかの重要なSDKが含まれており、アプリのための高度なレンダリング、ソーシャルビルドやコミュニティビルド、サンプルフレームワーク、オーディオ、およびアバターの開発サポートが提供されます。
Oculus for Developers 統合パッケージのインポート より引用
というもので、要するに Unity で OculusQuest の開発やりたいならとりあえずこれ入れとけっていう Oculus 公式のパッケージです。
それでは Unity の Asset Store にある Oculus Integration をインポートします。
結構時間がかかるのでらんだむちゃんの動画を見るなどして待ちましょう。
無事インポートが完了し Oculus のプラグインを認識すれば次に移ります。
XR Plug-in Managementを有効化する
Unity の XR サポートを有効にしましょう。
まず、Package Manager Unity Registry の項目から XR Plug-in Management パッケージと Oculus XR Plugin パッケージをインストールします。
次に、Project Settings から XR Plug-in Management の Android と Standalone の "Oculus" の項目にチェックを入れましょう。
チェックを入れた際のインポートも時間がかかるのでらんだむちゃ(ry
以上のことが上手く表示されないときは Oculus のプラグインを Unity が正常に認識していない可能性があるので、一度 Unity を再起動してみたり Oculus Integration を再インポートするといいかもしれないです。
2. OculusQuest 側の設定
OculusQuest を開発者モードに
まず OculusQuest を開発者モードにします。これはビルドした自作アプリを動かすために必要不可欠ですし、今回行うように Unity のエディタ上で再生して遊んでみようとするときにも必要になります。
スマホの Oculus アプリから 設定 -> 自分のデバイスをタップしその他の設定 -> 開発者モードをオン
で設定できます。初めて設定するときは Oculus の開発者になろうぜ。みたいなメッセージと開発者登録を行うサイトが表示されるはずなので、そのWebサイトの指示に従って開発者になりましょう。
また、OculusQuest の 「設定 -> デバイス -> ジェスチャーコントロールとコントローラ」 の「ジェスチャーコントロール」をオンにしてハンドトラッキングを有効にし、「手とコントローラの自動切り替え」をオンにしておいてください。
PC と OculusQuest を繋げよう
次に USB3.0以上に対応した TypeCケーブルを用いて PC と OculusQuest を繋げます。
私は 2m のケーブルを使用していますが少し短いような気がします。必要に応じて延長するなりしましょう。
初めて PC と OculusQuest を繋ぐ OculusLink を利用する場合は Oculus サポート を参考に進めてください。
3. 実際にUnityで動かす
最後の下準備
大方下準備は終了しました。それでは Project ビューの Assets/Oculus/VR/Scenes にある HandTest というシーンを選択します。
一見するとシーン上には何もなく The・虚無 です。Oculus Link でPC と Oculus Quest をつないだ状態でシーンを再生して ヘッドセットを被ってみてもまだ虚無です。
そこで、Hierarchy ビューにある OVRCameraRig を選択して、Inspector ビューから OVR Manager を見つけてください。そして Quest Features の欄にある Hand Tracking Support の項目を Controllers Only から Controllers And Hands に変更してください。また、Project Settings から Splash Screen が ON になっているかにも注意してください。
いざハンドトラッキング
以上の設定を終えてからシーンを再生してヘッドセットを被ってみてください。
そこには The・虚無 の世界が広がっていますが、視界に手が入ると・・・
ハンドトラッキング成功です! 下準備が長いだけでそれさえ終わればすぐにできますね。お疲れさまでした。
おわりに
今回は Unity エディタ上でハンドトラッキングできるようにしたところまでについて書きましたがいかがだったでしょうか。実際にこのハンドトラッキングを利用してプログラムを組んで遊んだ記事はそのうち上げると思います。
ところでこの記事、全然新入生歓迎っぽくないですね???
とりあえず最後にそれっぽいことを書いておくことにします。
まずVR 開発をやってる人間がこの部活に多少います。また、部室には今年購入したばかりの VR 機器 「OculusQuest2」 があるので、自分が VR 機器を持っていなくてもそれでデバッグして VR 開発ができます。
VR 機器は未だに高いものが多く、「購入はしたくないけど一度体験してみたい」という人は少なくないのではないでしょうか。
そんな方はぜひ一度コンピュータハウスランダムの部室で VRゲームなりなんなり VR 体験しましょう。そしてあわよくば一緒に VR 開発しましょう!
こんな感じですかね、最後までお読みいただきありがとうございました。
参考になるサイト
この記事見るよりこれ↓見゛て
あと Oculus for Developers 公式ドキュメント も充実しています。