2022/01/29

VRゴーグルを買いました

なんとなくVRゴーグルを買ってしまった。
目を使うデバイスはあまり興味がなかったのだが、一度使わせてもらったら興味を持ったというところだ。

買ったのは、Oculus Quest2
Oculus社を Facebook社が買収して、Facebook が Meta に社名を変更したので名前がどうなったのかよくわからんが、ページには Oculus Quest2 と書いてあるからそう呼ぼう。


Facebookアカウントを作り、Oculusアカウントを作って Facebookアカウントと関連付ける。
Quest2 ではない Android端末に Oculusアプリをインストールし、そちらも Facebookアカウントでログイン。
Quest2 の起動時にも Facebookアカウントでログイン。
開発者モードにするには、Android の Oculusアプリと Quest2 を Bluetoothで連携し、デバイスのページから開発者モードのスイッチをONにする。

するのだが、事前に Oculusアカウントの方だと思うが開発者申請のような作業をしておく。
かねはかからないのだが、電話番号かクレジットカードの登録がいるようだった。


サンプルアプリを動かしてみよう。

Oculusスタートガイド(Unity) | Oculus開発者
https://developer.oculus.com/documentation/unity/unity-gs-overview/

Unity じゃなくてもできるのかもしれないが、せっかくチュートリアルがあるので従おう。

私は既に Android Studio をインストールして使っているので、これらをインストールした。

  • Oculus Developer Hub
  • Unity Hub
    • Unity Editor 2020.3.26f1

Unity は Android向けだけ使えれば良かったのだが、デフォルトで Windows(あるいはインストールしたOS)が使えるようになっているようだった。

開発とテスト用にデバイスを有効にする | Oculus開発者
https://developer.oculus.com/documentation/unity/unity-enable-device/

ここから手順に従ってアプリを作っていくのだが、作ったプロジェクトはデフォルトで「現在のプラットフォーム」で立ち上がるようだった。

image

EDITOR VERSIONをクリックすると選択できたので、Android を選択して OPEN するのがよいだろう。

image

タイトルに「Android」と入っていれば、Android 向けになっているはずだ。

image

Windows向けのを作らないので選択肢から削除したいのだけど、できるのかわからんかった。

 

Oculus統合パッケージのインポート | Oculus開発者
https://developer.oculus.com/documentation/unity/unity-import/

メニューの Window > Asset Store で何か登録するらしいのだが、引っ越したらしい。

image

Package Manager からやってくれと書いてあるので、メニューの Window > Package Managerを立ち上げる。
では、次は・・・。

image

うーん??
「oculus」で検索しても Oculus XR Plugin しか出てこないが、これではない気がする。

英語版の方を見ると、この記述は Unity Editor 2019.4.x のものらしい。
今は 2020.x が最新だから無視して良いのだろう。

image

2020.x だとこうなる。

  1. Unity で新しく 3Dプロジェクトを作る
  2. Unity Asset Store(ブラウザ版)を開いて "Open in Unity"をクリックする...と書いてあるが、 Add My Assets しかないので押した。FREE と書いてあるしまあよかろう。
  3. image

  4. サイトの方では購入したようなメッセージが出てきたので Unity Editor に戻る。
  5. Package Manager で My Assets を見ると Oculus Integration が出てくる。更新がいると思う。
    image
  6. Upgradeボタンがあるなら押すらしい。出てなかったからわからん。代わりに右下にあった Download をクリックするとダウンロードが始まった。
  7. Import Unity Packageウィンドウがどうのこうのらしいが、Importボタンが出ていたのでクリックした。ああ、クリックしてしばらく待つと Import Unity Packageウィンドウが表示された。こっちにも Importボタンが出ていたので押す。なんかすごく時間がかかる。いろいろ立ち上げたり別のことしていたとはいえ20分以上かかるとは。
  8. OK とかすると、あれ、OpenXR って出てきたな。Restart を求められたのでボタンをクリック。
  9. もう1つ別のプラグインもアップデートされて、Restart を求められたのでボタンをクリックして再起動した。

すごく時間がかかった。
それはともかく、このページは英語の方が新しいのだけど、日本語の時とリンクは同じだ。そしてページ自体に言語切替がなくて、Oculus アカウントの言語設定が反映されているように見える。

Import Oculus Integration Package | Oculus Developers
https://developer.oculus.com/documentation/unity/unity-import/

さっきまで日本語ページを見ていたので、説明が古かったかもしれない。


プロジェクトの設定。

Configure Unity Settings | Oculus Developers
https://developer.oculus.com/documentation/unity/unity-conf-settings/

  1. File > Build Settings.
  2. Platform を Android にする
  3. Texture Compression を ASTC にする。
    image
    とかゴニョゴニョしていたら、また Importing が始まってしまった。なんでだ??
  4. Run Device は設定がいるらしい。チュートリアルでは Unity Editor のインストール時にチェックしておくよう書いてあったのだが、既にインストールしていたのでやってなかったのだ。
    image
    Edit > Preferences の Android項目で設定できるのだが、いろいろうるさい。JDK は 1.8.0 じゃないと warningが出るし、 11とかにすると選択もできない。NDK も最新版はダメで r19 じゃないとダメ...いや、r19.0.5232133 じゃないとダメだそうだ。 obsolete なのに......
    image
    Android SDKはともかく、JDK と NDK は Editor に任せた方がよかったかもしれんが、選択肢が SDK & NDK だから片方だけってわけにはいかんのだ。
    image
    ここまで設定すると Run Deviceがアクティブになるので、Oculusを選択する。
  5. Development Buildはチェックを外すそうだ。パフォーマンスの関係らしい。

プロジェクトの設定も行う。

  1. Edit > Project Settings > Player
  2. Company Name や Product Name, Version を更新したければする
  3. その下の方のタブを Android にして、Other Settings > Identification の Package Name を変更したければする
  4. Version、Bundle Version Code、Minumum API Level、Target API Level などもお好きなように
  5. 左の項目を Player から XR Plugin Management に変更
  6. インストールのボタンがあるのでクリック
  7. しばらく待つとチェックボックスが出てくるので、Oculus をチェック。そうするとしばらく待つことになる。まあまあ待つ。もはや10分以内なら「まあまあ」程度だ。
  8. 左のペインに Oculus が増えているので、選択
  9. 何か変更したければするとよいらしい
  10. 続いてレンダリングの設定。 左のペインで Player を選択
  11. Android タブの Other Settings > Rendering
  12. Color Space を Linear に変更。まあまあ待つ。
  13. Auto Graphics API はチェックしないままでよい。 Oculus Quest は Vulkan をサポートしているが実験扱いのようで、OpenGL ES 3.0 を使うことを推奨しているらしい。
  14. Multithreaded Rendering はチェックをしたままで良い。
  15. Low Overhead Mode というオプションがあるらしいのだが、見つからんかった。
  16. はい、次は Quality設定。左のペインで Quality を選択
  17. Pixel Light Count は 1
  18. Texture Quality は Full Res
  19. Anisotoropic Textures を Per Texture に変更
  20. Anti Aliasing は 4x
  21. Soft Particles はチェックを外す
  22. Realtime Reflections Probes はチェックあり
  23. Billboards Face Camera はチェックを入れたままで良いのかな

お疲れ様でした・・・。
これ、毎回プロジェクトを新規作成するたびにやるのだろうか・・・。
きっと、Ocurus 用テンプレートとかあるに違いない。

ようやく最後にサンプルとして表示する中身を設定する。
もう、かいてあるとおり二やるだけだ。

Build Your First VR App | Oculus Developers
https://developer.oculus.com/documentation/unity/unity-tutorial/

で、最後に Build and Run。

・・・エラーになった。

UnityでAndroidのbuild時に「Gradle build failed. See the Console for details」エラーが出た時の解決法 - Qiita
https://qiita.com/tak001/items/e7a5f21742d463a37a39

なるほどねー。
私の環境では複数バージョンの build-tools が入っているんだけど、どうやって選択しているんだろうか。

 

書いてあるとおりにやってやり直して、ようやくインストールされた。
わーい。

image

しかし・・・このボールはどうやって動かすんだろうか。

ああ、右手のコントローラしか使っていなかったので左手は電池を抜いていたのだが、左コントローラのスティックで動かせた。

 

疲れた。
そして、チュートリアルをやっている過程で私の PCがストレージ不足に陥ってしまった。
プロジェクトのディレクトリは 2.5 GBもないのだが、ダウンロードしたりして AppData とかが多くなったのだろうか。あるいは単に今までがギリギリくらいだったのか・・・。