こんにちは。ゲーム事業部エンジニアの上野です。
今回はアドグローブのゲーム事業部内で定期的に開催しているUnreal Engine勉強会(以下、UE勉強会)で、自分が発表した内容に関してご紹介します。
はじめに
「UE勉強会」については下記紹介記事をご参照ください。
今回は、私がUE勉強会で発表した『UE×VR』についてご紹介させていただきます。
『UE×VR』をやろうとした経緯としては、UEでVRアプリを制作したことがなかったのでやってみたいと思ったのと、社内のUE勉強会で発表してみたいと思ったからです!
なお、使用しているVRHMDはMeta社のMetaQuest(以下、Quest)、UEのバージョンは5.1.1になります。
MetaQuestのセットアップ
Questを開発者モードに
まずはQuestで開発を進めていくうえでQuest内のファイルにアクセスするためにQuestを開発者モードに変更します。
開発者モードに変更するためには以下の手順で行います。
- スマートフォンにMetaQuestアプリをインストールする(スマートフォンのOSはAndroidでもIOSでも構いません)
- アプリとQuestを接続する
- アプリを開いて右下[Menu]をタップ
- 右上[・・・]マークをタップ
- 新しいデバイスの接続で利用するQuestを選択し画面の案内に沿ってQuestを接続
- 接続したQuestを開発者モードに変更する
- アプリを開いて右下[Menu]をタップ
- [ヘッドセットの設定]をタップ
- [開発者モード]をタップし開発者モードをONに(※初回だとQuestにログインしているMetaアカウントを開発者登録する必要がある)
提供元不明を有効に
次に公式Store以外からアプリをインストールできるように提供元不明アプリを有効にします。
提供元不明を有効にしないと開発したアプリをQuestにインストールすることができないので、Questで開発する際には必ずONにします。
- PC版Oculusアプリをインストール
- アプリとQuestを接続
- アプリを開いて[デバイス設定]を選択
- [ヘッドセットを追加]を選択
- 新しいデバイスの接続で利用するQuestを選択し、画面の案内に沿ってQuestを接続
- 提供元不明を有効にする
- [設定] > [一般] > [提供元不明]を有効にする
Quest用のOpenXRランタイムをインストールする
今回はOpenXRAPIを使用するので、Quest用のOpenXRランタイムをインストールします。
OpenXRに関しては以下の記事をご参照ください。
docs.unrealengine.com
以下インストール手順です。
- [設定] > [ベータ] > [公開テストチャンネル]を有効にする
- Quest用のOpenXRランタイムをインストール
以上でQuest側のセットアップは完了したので、UEとの接続に移ります。
UEとQuestの接続
プロジェクトの作成
まずは、VR開発用のプロジェクトをUEで作成していきます。
今回は初めからVR用にプロジェクト設定されているVRテンプレートを使用します。
VRテンプレートの概要は以下の公式ドキュメントをご参照ください。
QuestでUEのレベルをプレイ
用意したプロジェクトとQuestが接続できるかどうか、実際にQuestで作成したプロジェクトのレベルをプレイして確かめてみます。
- QuestとPCを接続しQuestLinkをオン
- その状態で作成したプロジェクトを起動
- VRプレビューでレベルをプレイ(※VRプレビューがグレーアウトになっていると接続不良か、設定に不備がある場合があります)
Quest内でレベルがプレイできれば接続は成功です!
Androidビルド環境の構築
AndroidStudioのインストールと設定
QuestのOSはAndroidであるため、UEのパッケージはAndroid向けに行う必要があります。
そのため、Androidビルド環境を構築していくこととなります。
基本的には以下の公式ドキュメントに沿ってインストール、設定を行います。
※UEのバージョンによってはドキュメント通りに設定してもパッケージ化することができないことがあります。私もUE4.27でNDKインストールができなかったり、推奨のAndroidStudioのバージョンを 使用しているのにパッケージ化に失敗し、バージョンを下げたりした経験があります...。今回のUE5.1.1については、ドキュメント通りの設定で問題ありませんでした。
UEにSDK、NDK、JDKを設定する
AndroidStudioの設定が完了したら、UEでAndroid向けにパッケージ化が行えるように、インストールしたSDK,NDK,JDKをUEに設定していきます。 画像の箇所に下記のパスを指定します。
- C:/Users/username(PCのアカウント名)/AppData/Local/Android/Sdk
- C:/Users/username(PCのアカウント名)/AppData/Local/Android/Sdk/ndk/使用するNDKのバージョン
- C:/Program Files/Android/Android Studio/jre/jre
それぞれのパスですが、SDK,NDK,JDKのインストール時のデフォルトのパス(JDKはAndroidStudioをインストールしたパスの直下)を指定しているので、デフォルトのパス以外にインストールした方はインストールしたパスを指定してください。
UEのプロジェクト設定を変更
プロジェクト設定>プラットフォーム>Androidを選択し、以下のように設定する。
- 初期だとこの箇所が赤くなっていることがあります、その際は[今すぐ設定]をクリック
- グレーアウトしていなければ、ライセンスに同意のボタンをクリック
- 初期Nameのままだとパッケージ化時エラーが出るので適当な名称に設定
以上で設定は終了です。
Quest接続時にプラットフォーム>デバイスの名前があれば設定は成功です。
※デバイスの名前がなかったり、あっても実際にパッケージ化を始めた際にエラーがでたら設定に不備がある可能性があります。
例1、Android (ASTC)): ERROR: cmd.exe failed with args
私はUE4.27で上記のようなエラーがでてデバイス名はあるもののパッケージ化ができませんでした。
例2、LogPlayLevel: Warning: UAT: 03-30 02:18:58.560 10397 11342 D UE : [2023.03.29-17.18.58:560][ 0]LogImageWrapper: Warning: PNG Warning: iCCP: known incorrect sRGB profile
UE5.1.1だとパッケージ化すると上記のような警告文がでて、VRテンプレート内のテクスチャが変な色になったりします。そのため、UE5で開発するのであれば、UE5.0かUE5.1がアップデートされてから開発するのがよさそうです。
インストール&アプリ実行
インストール方法
では、実際にQuest内にアプリをインストールし実行するまでをご紹介いたします。
基本的にはQuestを接続しプラットフォーム>デバイスをクリックしエラーなくビルドが通ればQuestにアプリがインストールされ、起動までするのですが、この方法だとチームでの開発の際に実機テストをしたい全員がAndroid環境を構築し、一人ひとりがビルドしないといけなくなってしまいます。
そこで今回は、ビルドは一人が行い、インストールだけ各自で行う方法をご紹介します。
以下が、手順となります。
- Androidビルド(ASTC)でapkファイルを作成
- MetaQuestDeveloperHubをインストール
- MetaQuestDeveloperHubにデバイスを設定
- apkファイルをインストール
上記の手順でAndroidビルドは一人が行い、他の人は共有されたapkファイルをインストールするだけで済みます。
また、MetaQuestDeveloperHubはQuest開発において、ご紹介した機能以外にも便利な機能を兼ね備えています。今回は割愛しますが、また別の機会にご紹介したいと思います。
アプリ実行方法
インストールしたアプリの実行方法ですが、以下の手順で実行できます。
- Quest内アプリライブラリを開く
- 右上プルダウンから提供元不明を選択
- インストールしたアプリを実行
さいごに
以上で、UEを使用しQuestのアプリを制作する一連の流れをご紹介しました。
(実際にはテンプレートに手を加えたり、一からアプリを制作していくことになると思います)
今後も、VRで使えるUEの機能についてだったり、制作したVRアプリについてご紹介できればと思います。
最後までお読みいただき、ありがとうございました。
現在アドグローブでは、さまざまなポジションで一緒に働く仲間を募集しています。
詳細については下記からご確認ください。みなさまからのご応募お待ちしております。
hrmos.co