先日、PCを新調いたしましたので、この機会にあらためて Unity を触ってみようと思いました。
前回に触ったときは、ほぼインストールしただけでなにもせずでした。原因として、PCが非力だったこともありますが、その時使っていたケンジントンSlimBlade Trackballではホイールプッシュ操作ができなかったのが大きかったと思います。ケンジントントラックボールは最高なのですが、3Dツール使うときはホイールプッシュできることが重要ですね。
いまはホイールマウス付きのトラックボール、ロジクールM575Sを使っているので問題なしです。
ちなみに、Unityをインストールして、Oculus Go 実機で地平線を見るところまではやりました!
こちらのページを参考にしてOculus Go のUnity開発環境構築。https://t.co/p3idwPCR88
押すべきボタンがすごい小さかったり、ボタン押したら変化なくて別のウィンドウに変化が表れていたり、難易度高すぎだ。
謎解き脱出ゲームやってる気分になってしまった。
実機で地平線見るとこまで完了!— Nochi (@shikarunochi) June 8, 2018
ということで、再チャレンジ。
こちらのページに従って開発環境を作りました。まとまっててすばらしいです。
FRAME SYNTHESIS : Unity + Oculus Quest 2 開発メモ
https://framesynthesis.jp/tech/unity/oculusquest/
以前にインストールしたときは、Android StudioやらAndroidNDKやら自分で入れないといけなかったのですが、そのあたりも含めて全部 Unity Hub がやってくれました。Unity Hub を起動して「インストール」タブから「インストール」します。
Oculus Quest は Android OS ベースなので、インストール時には Android Build Support をチェックしてください。Microsoft Visual Studio Community は特には必要ないと思います。(僕は、別途 Visual Studio Code をインストールして、ステップ実行デバッグなどできるようにしました。)
Android NDKも、各Oculus SDKバージョンのフォルダ以下にインストールされるようになってて、既存のAndroid開発環境を壊さないようになってるみたいです。その分、ストレージは必要になりますけれど。
バージョンは 推奨 2020.3.22f1 なのですが、先ほどのページの助言「2021年8月現在は2021.1で問題ないでしょう」に従って 2021.1.27f1 を選びました。複数バージョンがインストールできるってことは「ソースのバージョン依存が結構ある」ということが想像できますね…。(スクリーンショット取ったときは、バージョンが進んで 2021.1.28.f1になってました。この「27」ってリリース日付じゃなかったのか!)
インストールにはしばらく(十数分)時間かかりますので、ゆっくり待ちましょう。
Unity で Oculus Quest 用アプリを開発するプロジェクトを開始するには以下の手順です。
プロジェクトを新規作成、テンプレートで「3D」を選択。(VRっていうのもあるけど、3Dでだいじょうぶでした)
プロジェクト名と保存先を適当に決めて「作成」すると、ファイル生成後に Unity が開きます。
まっさら Unity。
File – Build Settings で プラットフォームをAndroidにして「Switch Platform」。後でもできますが、最初にやったほうが時間かからないです。
ここで一度 Build して、エラー無くAPKファイル作られることを確認しておくと安心。
空プロジェクトをビルドして Android で起動できた! pic.twitter.com/hchDmfDY2R
— Nochi (@shikarunochi) November 3, 2021
JDK / Android SDK / Android NDK の位置は、Edit – Preferences の External Tools から確認できます。
デフォルトだと Program Files \ Unity \ Hub \ Editor \ [各バージョン] \ Editor \ Data \ PlaybackEngines \ AndroidPlayer \ の下ですね。結構深い。バージョンごとに別管理になりますので「このバージョンを使うには、どのAndroid NDKバージョンをインストールすれば?」みたいな混乱は、ここで吸収されてるのですね。
Windows – Asset Store を開く。すると「Asset Store はWebブラウザになりましたよ~」みたいな画面が出るので「Search Online」押すと Webブラウザが開きます。
「Oculus Integration」で検索してインストール
ダウンロード後、Unity から Windows – Package Manager を開き、My Asset を選択すると Oculus Integration が出てくるので、選択して「Import」を押すと、プロジェクトに Oculus Integration 関連のファイルが追加されます。
サウンドとかアバターは使わないのでインポートから外してもいいらしいのだけど、最初はよくわからないのでそのままインポートしましたw
インポートも結構時間かかります。(これも十数分ぐらい?以前はもっとかかったみたいです。)
その後、いくつか質問がきますが、オススメ選択で問題ないかと思います。
質問が終わったら、ここでいったん Unity 再起動されます。
Assets の中に色々増えました。
XR Plug-in Management を有効化します。Edit – Project Settings から XR Plugin Management を選択して「Install XR Plugin Management」
インストール終わったら、「Oculus」を選択。選択するとすぐファイルコピーが実行されます。
ついでにPC側のタブの Oculus も ON にしておきましょう。
これで準備完了。実機での動作確認します。
Assets > Oculus > VR > Scenes の ControllerModels をダブルクリックで開きます。
実機を接続して、Build And Run!
適当な APK名(testとかなんでもよいです)を入力すると、実機での動作が開始されます。
エラーがあると、一番下に赤文字表示されます。タブを Console に切り替えると詳細と履歴が確認できます。エラー出てますね…。
先ほど質問ダイアログでおすすめのまま選択した「OpenXR」では動作できないみたいなので、古いほうのバージョンに切り替えます。
Oculus – Tools – OpenXR から、Switch to Legacy OVRPlugin を選択。あらためて、Build And Run!
無事、サンプルが実機で起動しましたー!スティックによる移動と回転が実装されてるサンプルですね。
Oculus Integarion を追加しました!VRできた!
(動画は酔うかも注意) pic.twitter.com/f7yJIHujJC— Nochi (@shikarunochi) November 3, 2021
ちなみに、Android に必要な Bundle Identifier は、Oculus – Platform – Edit Settings のところにありました。
デフォルトは「com.DefaultCompany.[プロジェクト名]」ですね。ローカルで遊ぶだけならこのままでもいいですし、気になるなら適当な値に変更しておくとよいでしょう。