UnrealEngine勉強会 ~UEでのMetaQuestの導入~

こんにちは。ゲーム事業部エンジニアの上野です。
今回はアドグローブのゲーム事業部内で定期的に開催しているUnreal Engine勉強会(以下、UE勉強会)で、自分が発表した内容に関してご紹介します。

はじめに

「UE勉強会」については下記紹介記事をご参照ください。

blog.adglobe.co.jp

今回は、私がUE勉強会で発表した『UE×VR』についてご紹介させていただきます。
『UE×VR』をやろうとした経緯としては、UEでVRアプリを制作したことがなかったのでやってみたいと思ったのと、社内のUE勉強会で発表してみたいと思ったからです!
なお、使用しているVRHMDはMeta社のMetaQuest(以下、Quest)、UEのバージョンは5.1.1になります。

MetaQuestのセットアップ

Questを開発者モードに

まずはQuestで開発を進めていくうえでQuest内のファイルにアクセスするためにQuestを開発者モードに変更します。
開発者モードに変更するためには以下の手順で行います。

  1. スマートフォンにMetaQuestアプリをインストールする(スマートフォンのOSはAndroidでもIOSでも構いません)
  2. アプリとQuestを接続する
    • アプリを開いて右下[Menu]をタップ     
    • 右上[・・・]マークをタップ     
    • 新しいデバイスの接続で利用するQuestを選択し画面の案内に沿ってQuestを接続   
  3. 接続したQuestを開発者モードに変更する
    • アプリを開いて右下[Menu]をタップ     
    • [ヘッドセットの設定]をタップ    
    • [開発者モード]をタップし開発者モードをONに(※初回だとQuestにログインしているMetaアカウントを開発者登録する必要がある)

提供元不明を有効に

次に公式Store以外からアプリをインストールできるように提供元不明アプリを有効にします。
提供元不明を有効にしないと開発したアプリをQuestにインストールすることができないので、Questで開発する際には必ずONにします。

  1. PC版Oculusアプリをインストール
  2. アプリとQuestを接続
    • アプリを開いて[デバイス設定]を選択     
    • [ヘッドセットを追加]を選択     
    • 新しいデバイスの接続で利用するQuestを選択し、画面の案内に沿ってQuestを接続
  3. 提供元不明を有効にする
    • [設定] > [一般] > [提供元不明]を有効にする

Quest用のOpenXRランタイムをインストールする

今回はOpenXRAPIを使用するので、Quest用のOpenXRランタイムをインストールします。
OpenXRに関しては以下の記事をご参照ください。
docs.unrealengine.com

以下インストール手順です。

  1. [設定] > [ベータ] > [公開テストチャンネル]を有効にする
  2. Quest用のOpenXRランタイムをインストール

以上でQuest側のセットアップは完了したので、UEとの接続に移ります。

UEとQuestの接続

プロジェクトの作成

まずは、VR開発用のプロジェクトをUEで作成していきます。
今回は初めからVR用にプロジェクト設定されているVRテンプレートを使用します。
VRテンプレートの概要は以下の公式ドキュメントをご参照ください。

docs.unrealengine.com

QuestでUEのレベルをプレイ

用意したプロジェクトとQuestが接続できるかどうか、実際にQuestで作成したプロジェクトのレベルをプレイして確かめてみます。

  1. QuestとPCを接続しQuestLinkをオン
  2. その状態で作成したプロジェクトを起動
  3. VRプレビューでレベルをプレイ(※VRプレビューがグレーアウトになっていると接続不良か、設定に不備がある場合があります)

Quest内でレベルがプレイできれば接続は成功です!

Androidビルド環境の構築

AndroidStudioのインストールと設定

QuestのOSはAndroidであるため、UEのパッケージはAndroid向けに行う必要があります。
そのため、Androidビルド環境を構築していくこととなります。
基本的には以下の公式ドキュメントに沿ってインストール、設定を行います。

docs.unrealengine.com

※UEのバージョンによってはドキュメント通りに設定してもパッケージ化することができないことがあります。私もUE4.27でNDKインストールができなかったり、推奨のAndroidStudioのバージョンを 使用しているのにパッケージ化に失敗し、バージョンを下げたりした経験があります...。今回のUE5.1.1については、ドキュメント通りの設定で問題ありませんでした。

UEにSDK、NDK、JDKを設定する

AndroidStudioの設定が完了したら、UEでAndroid向けにパッケージ化が行えるように、インストールしたSDK,NDK,JDKをUEに設定していきます。 画像の箇所に下記のパスを指定します。

  1. C:/Users/username(PCのアカウント名)/AppData/Local/Android/Sdk
  2. C:/Users/username(PCのアカウント名)/AppData/Local/Android/Sdk/ndk/使用するNDKのバージョン
  3. C:/Program Files/Android/Android Studio/jre/jre

UE設定

それぞれのパスですが、SDK,NDK,JDKのインストール時のデフォルトのパス(JDKはAndroidStudioをインストールしたパスの直下)を指定しているので、デフォルトのパス以外にインストールした方はインストールしたパスを指定してください。

UEのプロジェクト設定を変更

プロジェクト設定>プラットフォーム>Androidを選択し、以下のように設定する。

  1. 初期だとこの箇所が赤くなっていることがあります、その際は[今すぐ設定]をクリック
  2. グレーアウトしていなければ、ライセンスに同意のボタンをクリック
  3. 初期Nameのままだとパッケージ化時エラーが出るので適当な名称に設定

UE設定

以上で設定は終了です。
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環境を構築し、一人ひとりがビルドしないといけなくなってしまいます。
そこで今回は、ビルドは一人が行い、インストールだけ各自で行う方法をご紹介します。
以下が、手順となります。

  1. Androidビルド(ASTC)でapkファイルを作成
  2. MetaQuestDeveloperHubをインストール
  3. MetaQuestDeveloperHubにデバイスを設定
  4. apkファイルをインストール

インストール説明

上記の手順でAndroidビルドは一人が行い、他の人は共有されたapkファイルをインストールするだけで済みます。
また、MetaQuestDeveloperHubはQuest開発において、ご紹介した機能以外にも便利な機能を兼ね備えています。今回は割愛しますが、また別の機会にご紹介したいと思います。

アプリ実行方法

インストールしたアプリの実行方法ですが、以下の手順で実行できます。

  1. Quest内アプリライブラリを開く
  2. 右上プルダウンから提供元不明を選択
  3. インストールしたアプリを実行

VRテンプレート動作画面

さいごに

以上で、UEを使用しQuestのアプリを制作する一連の流れをご紹介しました。
(実際にはテンプレートに手を加えたり、一からアプリを制作していくことになると思います)
今後も、VRで使えるUEの機能についてだったり、制作したVRアプリについてご紹介できればと思います。

最後までお読みいただき、ありがとうございました。




現在アドグローブでは、さまざまなポジションで一緒に働く仲間を募集しています。
詳細については下記からご確認ください。みなさまからのご応募お待ちしております。

hrmos.co