#まえがき
先日ついにスタンドアローン(PC接続なし)で6DoFのVR体験が可能なOculusQuestが発売されましたね。さっそくストアのゲームをプレイしましたが、スタンドアローンでこのクオリティ?と驚かされるコンテンツばかりでした。
でも、やっぱり自分で作った空間をVRで体験したい!自分のためだけのVRコンテンツを作ってみたい!と思った人のためにUnityでQuest用のビルドをする方法をまとめます。今回はUnityHubのインストールからOculusIntegrationのサンプルシーンをQuest上で動かすことを目標に手順を解説していきます。(今回はたぶんスクリプトを1行も書かずにビルドまでするので気楽に読んでね!)
##OculusQuestの準備
###1.PCとの接続
Questで開発を行うにはPCに接続するためのUSBTypeCケーブルが必要です。コツコツとUnityでアプリを作ってもUSBケーブルが無いと悲しいことになってしまうので、家に偶然USB-USBTypeC変換ケーブルなどがなかった人はあらかじめ準備しておきましょう!
###2.Oculus開発者登録
Oculusの開発者登録をしていない場合は https://dashboard.oculus.com/ から開発者登録をしておきます。リンクを開いたら適当な名前で団体を創ればOKです。
###3.QuestをPCに接続する
スマホのOculusアプリからQuestの開発者モードをONにします。
設定タブ>OculusQuest>その他の設定>開発者モード の順に押して開発者モードがONになっているか確認してください。
開発者モードをONにしたらQuestをPCに接続します。USBケーブルでPCとQuestをつなぐと、Quest内の画面でUSBデバッグの許可を聞かれるので許可しておきましょう(チェックボックスにチェックを入れておくと今後楽)。
###AndroidSDKのインストール
さっきまで忘れてました。0から始めたPCにはAndroidSDKが入っていないので、下リンクからAndroidStudioをインストールしておきましょう。
https://developer.android.com/studio/
##Unityの準備
###1.UnityHubのインストール
UnityHubは複数のバージョンのUnityを簡単に管理するためのツールです。下のリンクからダウンロードしてインストールしてください。
https://unity3d.com/jp/get-unity/download
UnityHubのインストールが終わり起動すると以下のような画面が出てきます。
初期状態のままではUnity自体がインストールされておらず、なにもつくれないのでUnityをインストールしていきます。まず①のインストールタブ次に②のインストールボタンを押します。
するとUnityのバージョンを選択できる画面になるのでとりあえず最新の安定バージョン(バージョン名の最後にfがついているもの)を選びましょう。
次の画面ではAndroid Build Supportのチェックを忘れずに入れて次へを押します。
その後Unityのインストールが終わるまでしばらく待ちます。(ケッコウナガイヨ)
###2.プロジェクトの作成
インストールが終わったら、①のプロジェクトタブ次に②の新規作成を押します。
##Unityの設定項目をQuest用にする
###プラットホームの変更
UnityはデフォルトでPC向けのモードになっているので、Quest向け(Android環境)に切り替えましょう。
File>BuildSetting でBuildSettingウィンドウを出して、①Androidのタブを選択後②SwitchPlatformのボタンを押します。
###ビルド設定のなんやかんや
BuildSettingウィンドウの左下のPlayerSettingボタンを押してPlayerSettingウィンドウを出します(Playerタブになっているか確認)。
①CompanyNameが他アプリと同じだと上書きされてしまうので、被らないように変更しておきましょう。次にOtherSettingを押して、上の方のAutoGraphicsAPIにチェックを入れ(Valkanを消せばいいけどAutoのが楽)、その下の③MinimumAPILevelをAndroid7.1にします。
PlayerSettingの一番下にXR Settingsの項目を開き、VirtualRealitySupportedのチェックを入れて、VirtualRealitySDKsにOculusを追加しておきます。
これで基本的な設定は終了です。
##OculusIntegrationのインポートといろいろ
###OculusIntegrationのインポート
OculusIntegrationはOculusがUnity向けに提供しているVR用のスクリプト集です。サンプルも豊富でOculus向けのアプリを作るならほぼ必須のツールだと思うので早速インポートしましょう。
Unityで①AssetStoreを開きOculus Integrationを検索します。たぶん1つしかないので、それをDownloadごImportします。③のような画面が出てきたらImportのボタンを押します。
###サンプルシーンを開く
Unity画面下部のAssetsから先ほどインポートしたファイルを開きます。Oculus>SampleFramework>Usageの順にフォルダを開いてゆき、①AvatarGrabのシーンダブルクリックでを開きます。それっぽいオブジェクトが上の画面に出てきたらあってます(AvatarGrabの他にも様々なサンプルシーンがあるので、好きなもので試してみてもいいかもですね)。
次にカメラのスクリプト等をQuest用にするのでUnity画面左側のHierarchyから②LocalAvatarWithGrab>OVRCameraRigを左クリックで選択状態にします。すると画面右側の③InspectorにTargetDevicesという項目が出てくるのでここをQuestにします。
##いよいよビルド!
File>BuildSetting でBuildSettingウィンドウを出して、AddOpenScenesを押して現在開いているサンプルシーンを追加しておきます。
QuestがPCに接続されていることを確認後、BuildSettingウィンドウ右下部の"BuildAndRun"ボタンを押してapkファイルを適当なフォルダに保存します。初回のビルドは結構長いので、祈ったりして過ごしましょう。
ビルドが最後まで終わるとQuestで勝手にアプリが起動します。下のようにコントローラーでブロックを積み上げられるようになっていれば完璧です!
アプリを閉じてUSB接続を解除しても、ライブラリ>提供不明のアプリの中にビルドしたアプリが残るので、外出先でも簡単に自作のアプリを体験してもらうことができます。
##Questマニュフェストの追加(2019/08/16追記)
なんかマニュフェスト書かなきゃコントローラーが片っぽしか認識しないらしい。
Assets>Plugin>Android>AndroidManifest.xml
に
<uses-feature android:name="android.hardware.vr.headtracking" android:required="true" android:version="1"/>
を追記する。
##おしまい
今回はほ"ぼほぼ初めてUnityを触る人がQuest用アプリビルドまでたどり着ける"というコンセプトの記事だったので、かなり画像多めで内容が薄くなってしまいました。これを参考にQuestでのアプリ開発に興味を持った人が一人でもいてくれたらうれしいです。
次があったら、もうちょい踏み込んだ解説をします。おやすみなさい。。。zzz