BLOG ブログ
UnityでOculusアプリを作ってみた(その1)
yuji takeichi
はじめに
昨年、OculusQuest2を購入しましてVRゲームで遊んできましたが、せっかくハードを持っているなら何か作ってみようと思い、Unityでアプリを作ってみたので本記事ではその内容をまとめていこうと思います。
開発環境
UnityHub:3.8.0
Unity:2022.3.27f1
adb:1.0.41
AndroidSDK: 2022.3.1
Unity Hubのインストール
Unity Hubのダウンロードページからダウンロードします。
Unityエディタのインストール
Unity Hubを開いて、installsタブ → Install Editorボタンを選択します。
最新のUnityバージョンを選択してNextをクリック。
インストールオプションで「Android Build Support」にチェックを入れ、Insatallボタンをクリックします。
インストールが完了するとインストール済みのエディタが一覧が表示されます。
プロジェクトの作成
ProjectsタブのNew Projectボタンを選択します。
3D選択 → Create Projectボタンを選択します。
エディタが起動します。
Oculusアプリのセットアップ
OculusプラットフォームでVRアプリケーションを開発するための統合パッケージであるOculus IntegrationをAssetStoreからダウンロードします。
UnityのWindow → Package Manager を開き、ダウンロードしたOculus IntegrationをImportします
Build設定
platformをAndoroidに変更します。
※OculusQuestはAndroidベースのOS
File → BuildSettingsを開き、PlatformでAndroid → SwitchPlatformボタンを選択します。
Player Settingsを開き、PackageNameの変更とAPIレベルの設定をします。
Oculus XR Pluginをインストールします。
TargetDeviceの設定
OculusQuestの接続
APKのインストールにはadb(Android Debug Bridge)を使用します。
adbアクセスができるようにデバイス側でUSBデバッグを有効にします。
QculusQuest2のUSBデバッグを有効にするにはPCまたはスマートフォンにOculusアプリをインストールし、アプリとデバイスをペアリングさせ、アプリから設定変更します。
※Oculusアプリのインストール方法についてはここでは割愛します。
以降、スマートフォンのOculusアプリの設定になります。
デバイスを選択 → ヘッドセットの設定 → 開発者モードを選択し、デバッグモードをONにします。
ヘッドセットの設定を選択します。
OculusQuest2を起動している状態でPCとデバイスをUSBケーブルで接続します。
OculusQuest2の画面にUSBデバッグの許可ダイアログが表示されるので許可します。
デバイスマネージャーで以下の2つが表示されていることを確認します。
・Oculus Composite ADB Interface
・Oculus Composite XRSP Interface
Buildしてインストール
File → Build and Run を選択する。
作成するapk名を入力して保存する。
Buildが終わればOculusQuest2で作成したapkが実行されます。
何も配置していないので何もありませんね(そりゃそうです。。)
3Dモデルを配置する
動作テスト用にダウンロードした3Dモデルを配置します。
ProjectタブのAssetsフォルダにダウンロードしたfdxをドラッグします。
AssetsからHierarchyタブにRoadside_motelをドラッグします。
3Dモデルが配置されました。
しかし、このままでは3Dモデルを眺めるだけのアプリになってしまいます。
OculusQuest2のコントローラで移動したり、ヘッドセットの傾きなどの情報を反映できるようにしていきます。
カメラの配置
VRヘッドセットと同期をとって動作するカメラがOculus Integrationに内包されています。
デフォルトのMainCameraを削除し、Oculus Integrationのカメラを追加します。
デバイス操作を反映させるスクリプトを作成する
追加したカメラにデバイス操作を反映させるScriptをアタッチします。
Hieraruchyに追加したOVRCameraRigを選択してAddComponent → New Scriptを選択します。
※スクリプト名は任意です。ここではmovementと命名します。
作成したスクリプトを開くと以下のようになっています。
ここにヘッドセットとコントローラの情報を取得してカメラに反映する処理を追加します。
以下のようにします。
- 左スティックでカメラの回転(上下は回転しない)
- 右スティックでカメラが向いている方向を基準に移動(水平移動)
ビルドして動作を確認してみます。
まとめ
環境の構築からデバイスの簡単な動作ができるまでを行いました。
この後も引き続きブラッシュアップしていこうと思います。