なんとなく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/
ここから手順に従ってアプリを作っていくのだが、作ったプロジェクトはデフォルトで「現在のプラットフォーム」で立ち上がるようだった。
EDITOR VERSIONをクリックすると選択できたので、Android を選択して OPEN するのがよいだろう。
タイトルに「Android」と入っていれば、Android 向けになっているはずだ。
Windows向けのを作らないので選択肢から削除したいのだけど、できるのかわからんかった。
Oculus統合パッケージのインポート | Oculus開発者
https://developer.oculus.com/documentation/unity/unity-import/
メニューの Window > Asset Store で何か登録するらしいのだが、引っ越したらしい。
Package Manager からやってくれと書いてあるので、メニューの Window > Package Managerを立ち上げる。
では、次は・・・。
うーん??
「oculus」で検索しても Oculus XR Plugin しか出てこないが、これではない気がする。
英語版の方を見ると、この記述は Unity Editor 2019.4.x のものらしい。
今は 2020.x が最新だから無視して良いのだろう。
2020.x だとこうなる。
- Unity で新しく 3Dプロジェクトを作る
- Unity Asset Store(ブラウザ版)を開いて "Open in Unity"をクリックする...と書いてあるが、 Add My Assets しかないので押した。FREE と書いてあるしまあよかろう。
- サイトの方では購入したようなメッセージが出てきたので Unity Editor に戻る。
- Package Manager で My Assets を見ると Oculus Integration が出てくる。更新がいると思う。
- Upgradeボタンがあるなら押すらしい。出てなかったからわからん。代わりに右下にあった Download をクリックするとダウンロードが始まった。
- Import Unity Packageウィンドウがどうのこうのらしいが、Importボタンが出ていたのでクリックした。ああ、クリックしてしばらく待つと Import Unity Packageウィンドウが表示された。こっちにも Importボタンが出ていたので押す。なんかすごく時間がかかる。いろいろ立ち上げたり別のことしていたとはいえ20分以上かかるとは。
- OK とかすると、あれ、OpenXR って出てきたな。Restart を求められたのでボタンをクリック。
- もう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/
- File > Build Settings.
- Platform を Android にする
- Texture Compression を ASTC にする。
とかゴニョゴニョしていたら、また Importing が始まってしまった。なんでだ?? - Run Device は設定がいるらしい。チュートリアルでは Unity Editor のインストール時にチェックしておくよう書いてあったのだが、既にインストールしていたのでやってなかったのだ。
Edit > Preferences の Android項目で設定できるのだが、いろいろうるさい。JDK は 1.8.0 じゃないと warningが出るし、 11とかにすると選択もできない。NDK も最新版はダメで r19 じゃないとダメ...いや、r19.0.5232133 じゃないとダメだそうだ。 obsolete なのに......
Android SDKはともかく、JDK と NDK は Editor に任せた方がよかったかもしれんが、選択肢が SDK & NDK だから片方だけってわけにはいかんのだ。
ここまで設定すると Run Deviceがアクティブになるので、Oculusを選択する。 - Development Buildはチェックを外すそうだ。パフォーマンスの関係らしい。
プロジェクトの設定も行う。
- Edit > Project Settings > Player
- Company Name や Product Name, Version を更新したければする
- その下の方のタブを Android にして、Other Settings > Identification の Package Name を変更したければする
- Version、Bundle Version Code、Minumum API Level、Target API Level などもお好きなように
- 左の項目を Player から XR Plugin Management に変更
- インストールのボタンがあるのでクリック
- しばらく待つとチェックボックスが出てくるので、Oculus をチェック。そうするとしばらく待つことになる。まあまあ待つ。もはや10分以内なら「まあまあ」程度だ。
- 左のペインに Oculus が増えているので、選択
- 何か変更したければするとよいらしい
- 続いてレンダリングの設定。 左のペインで Player を選択
- Android タブの Other Settings > Rendering
- Color Space を Linear に変更。まあまあ待つ。
- Auto Graphics API はチェックしないままでよい。 Oculus Quest は Vulkan をサポートしているが実験扱いのようで、OpenGL ES 3.0 を使うことを推奨しているらしい。
- Multithreaded Rendering はチェックをしたままで良い。
- Low Overhead Mode というオプションがあるらしいのだが、見つからんかった。
- はい、次は Quality設定。左のペインで Quality を選択
- Pixel Light Count は 1
- Texture Quality は Full Res
- Anisotoropic Textures を Per Texture に変更
- Anti Aliasing は 4x
- Soft Particles はチェックを外す
- Realtime Reflections Probes はチェックあり
- 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 が入っているんだけど、どうやって選択しているんだろうか。
書いてあるとおりにやってやり直して、ようやくインストールされた。
わーい。
しかし・・・このボールはどうやって動かすんだろうか。
ああ、右手のコントローラしか使っていなかったので左手は電池を抜いていたのだが、左コントローラのスティックで動かせた。
疲れた。
そして、チュートリアルをやっている過程で私の PCがストレージ不足に陥ってしまった。
プロジェクトのディレクトリは 2.5 GBもないのだが、ダウンロードしたりして AppData とかが多くなったのだろうか。あるいは単に今までがギリギリくらいだったのか・・・。
テンプレートをカスタマイズできるようになっているのだが、buildToolsVersionを'29.0.2'などと固定しても「Installed Build Tools revision 32.0.0 is corrupted. Remove and install again using the SDK Manager.」でエラーになる。
返信削除解せぬ。
https://docs.unity3d.com/ja/2020.3/Manual/android-gradle-overview.html