LoginSignup
15
7

More than 1 year has passed since last update.

UE4でOculusQuest2を動かす1

Last updated at Posted at 2021-12-12

初めに

 この記事はタイトル通り、UE4環境でOculusQuest2を使って簡単なゲームを作っていくというものになっています。そもそも、なぜVR開発を始めたかというと、授業でVRを開発する機会があり、その授業課題提出も兼ねて、ついでに記事を書き始めました。といっても、需要があるのかは分かりませんが、記録として残します。
 VR開発については全くの初心者で、普通に間違っている可能性も十分にあるので、その点に関してはご了承ください。

追記:第2回を上げました
追記:第3回を上げました

開発環境

  • UE4(Ver. 4.26.2)
  • OculusQuest2(最近購入したモノ)
  • Windows10(11は未確認)
  • Android Studio(最新版でOK)
  • Oculusアプリ(PC, スマホ)

開発に必要なハードウェア

  • スマホ(OSは問わず)
  • OclusuQuest2 + USB-Cケーブル(USB2.0も可)※ 最初からついているケーブルは2.0ですが、普通に動きました
  • UE4が動くPC(Windows10)※ 強ければ強いほど良い

開発前のやる事

スマホ側

 スマホ版のOculusアプリをダウンロードして、開発者モードをONにして下さい。恐らく最初は「開発者登録」をしなければ、ONにすらならないので登録して下さい。
開発者モード.jpg

参考サイト

Facebook Oculus Quest 2 開発環境を作る Part1 ~開発者登録~ - プログラマの雑記帳

PC側

 Android Studioをインストールして、「Welcome to Android Studio」まで画面を進めて下さい。次に、More ActionsからSDK Managerを開いてください。
Android Studio SDK Manager.png
 すると、Android SDKが出てくるので、ここからインストールするSDK/NDKをカスタムします。ここはUE4のバージョンでかなり変わってくると思うので、各自色々調べて頑張って下さい。少なくとも、「UE4 Ver.4.26.2」では下図で動きました。

SDK Platforms

Android Studio SDK.png

  • Android 12.0(S)
  • Android 7.1.1(Nougat)

SDK Tools

SDK Tools.png

  • Android SDK Build-Tools 32
    • 29.0.2
    • 28.0.3
  • NDK
    • 23.0.7599858
  • Android SDK Command-line Tools (latest)
  • Android Emulator(不要かも?)
  • Android SDK Platform-Tools
  • Intel x86 Emulator Accelerator (HAXM installer)

 詳細はデフォルトでは表示されないので、右下にある「Show Package Details(黄色で囲んでいるやつです)」をONにすると表示可能です。恐らく、UE4のバージョンで大幅に変わってくる部分がこの欄になるかと思います。特に「NDK」部分が大変だと思います。なので、各自頑張って下さい。

参考サイト

UE4の環境構築

 次にUE4での環境構築です。本記事では一からゲームを作る事を前提にしています。とりあえず、動かしたいという場合はテンプレートを使用してみて下さい。

プロジェクト作成

 毎度おなじみプロジェクトブラウザで作成します。

  • 新規プロジェクト「ゲーム」
  • テンプレートは「Blank」
  • プロジェクト設定は「ブループリント | スケーラブルな3D・2D | レイトレーシング無効 | モバイル/タブレット | スターターコンテンツ有り」で作成

プロジェクト設定

 真っ先に「編集 > プロジェクト設定」でプロジェクト設定を開いてください。これらの構築も「UE4 Ver.4.26.2」でのお話なので、他のバージョンでは動かない可能性もかなり高いと思います。

プラットフォーム - Android

 恐らく、テンプレートでVR用に構築していない場合は「プロジェクトはAndroidプラットフォームに対応していません」となっているので、「今すぐ設定」をクリック。

APKのパッケージ化

Android - APKのパッケージ化.png

  • 最低限のSDKバージョン(19=KitKat, 21=lollipop)
    • 25
  • ターゲットSDKバージョン(19=KitKat, 21=lollipop)
    • 25

高度なAPKのパッケージ化

Android - 高度なAPKのパッケージ化.png

  • Oculusモバイルデバイス向けのパッケージ
    • 0
      • Oculus Quest 2
      • 配布APKからOculus署名ファイルを削除

プラットフォーム - Android SDK

Android SDK - SDKConfig.png

  • Location of Android SDK (the directory usually contains 'android-sdk-')
    • C:/Users/(ユーザー名)/AppData/Local/Android/Sdk
  • Location of Android NDK (the directory usually contains 'android-ndk-')
    • C:/Users/(ユーザー名)/AppData/Local/Android/ndk/23.0.7599858(バージョンによる)
  • Location of JAVA (the directory usually contains 'jdk')
    • D:/folder/Android Studio/Installation/jre (Android Studioをインストールした場所になります)
  • SDK API Level (specific version, 'latest', or 'matchndk' - see tooltip)
    • matchndk
  • NDK API Level (specific version or 'latest' - see tooltip)
    • android-21

 ここも大変なところです。というのも、初見では何が何を指しているのかが不明なので、分かりにくいからです。Android Studioのインストール時に何もいじっていないなら、大体同じ場所になると思います(JAVAは場所をいじっています)。

プラグイン - OculusVR

 この欄が存在しない場合は、「編集 > プラグイン」で検索で「ocu」と入力すれば、「Oculus VR」が出てくるので有効にすればOKです。この時点で、OculusQuest2をPCに接続して下さい1

General Oculus

プラグイン - OculusVR.png
 「Oculusパフォーマンスウィンドウを起動」と「Oculusプラットフォームウィンドウを起動」を使用します。「Oculus向けのテレメトリリビルドを有効にする」がいるのかは分かりません。というより、現状この項目が何を指しているのかが分かっていません。

Oculusパフォーマンス確認 - 基本設定

 ターゲットプラットフォームをモバイルに変更して、「有効にして下さい」的な項目が出てくるので全て有効にして下さい2

モバイル

プラグイン - OculusVR - モバイル.png

  • ハンドトラッキングサポート
    • Controllers and Hands

コンパイル / ビルド

 OculusQuest2をPCに接続した際に、OculusQuest2側で「USBデバックを許可しますか?」が出るので、「許可する」を選択。次に、「データへのアクセスを許可」が出るので、「許可する」を選択。これらをコンパイル前にしておいて下さい。

ビルド - Oculus.png
 これで環境構築がようやく終わりです、「起動 > Quest_2(恐らく型番?)」をクリックして、コンパイル・ビルド作業に入ります。そもそも、表示されていない場合は、「上記の設定が上手くいっていない」or「OculusQuest2を接続していない」かのどちらかです。

 その後、数分フリーズした後に、ようやくコンパイル作業に入ります。「Android_ASTCのアセットを処理中...」と「シェーダーをコンパイル中(~)」が出てくればとりあえずOK。初回はかなり長いですが、2回目以降は短くなります。
 これで一安心...と思いきや、エラーが出現して出力に失敗する可能性が非常に高いと思います。「エラーが発生 → 出力失敗 → エラー内容を確認 → 内容に応じて調べる → 修正する」が成功するまで無限に続きます。ここが一番大変です。間違いない。アウトプットログを確認する事を忘れないようにして下さい。エラー内容が表示されています。

 ちなみに、勝手にOculusQuest2側に出力されているとおもうので、たまに覗いてみて下さい。恐らくアウトプットログに「LogPlayLevel: ********** RUN COMMAND STARTED **********」が表示されている後に、進まない状況になっていればOculusQuest2側に出力されていると思います。ここまで出来ていればほぼ完了で、OculusQuest2側で出力されているアプリ?を終了してください。すると、何故か分かりませんがUE4側で処理が進み終わると思います。

 ここまでくれば、一回PCとの接続を解除してOculusQuest2単体で起動する事が可能です。OculusQuest2のアプリを開き、右上にある「全て(○件)」を選択、一番下にある「提供元不明(○件)」を選択して下さい。すると、出力したアプリ?があると思います。

実行例

Exsample
 上手くいけばこのように実行する事が可能です。といっても、コントローラーが無いのですが...。コントローラ-はUE4のバージョンによって、対応の有無が変わるみたいです。「UE4 Ver.4.27」以上ではランチャー経由で可能です。詳細は下記サイトを参考にして下さい。
Facebook Oculus Quest 2 開発環境を作る Part1 ~開発者登録~ - プログラマの雑記帳

エラー例

  • LogPlayLevel: Error: ERROR: Android toolchain NDK r23b not supported; please use NDK r21 to NDK r23 (NDK r21b recommended)
    • 現在導入されているNDKのバージョンが非対応なので、書いてある通りに変更して下さい。
  • Android:パッケージ化できません:Intermediate / Android / APK \ gradle \ rungradle.bat ":app:assembleDebug

VRモード

 UE4ではVRを使って編集する事が可能ですが、便利なのかは正直分かりません。VRモードをOculusQuest2で使うためには、Oculus Linkを使用します。その為には、PC版のOculusアプリを導入する必要があります。詳細は下記参考サイトをみて下さい。例えば、VRモードが出ていない場合などは接続した状態でUE4を起動する必要があったり...。

「試しにデモでVRモードをONにしてみた」の図 ↓
VRモード.jpeg

参考サイト

次回へ続く

 今回は環境構築編でした。次回からキチンとゲームを作り始めます。といっても、簡単なゲームを作るだけなので「UFOシューティング」のようなゲームを作りたいと考えています。


 なんだかんだで、ユウナマの記事を上げてから2か月経ってしまいました。どうしても、記事を書くやる気が発生せず、卒業制作に取り組んでいました。楽しみにしてくれている方には申し訳ありません。実はユウナマ制作に関してはほとんど進んでいません。どうしても、個人制作よりもチーム制作を優先度が高いので...。
 ユウナマの記事とは別に一回記事を没にしていたり...。恐らく、2月以降にユウナマ関係の記事を上げると思います。

参考サイト

  1. 注意が出ていますが気にしないで下さい。

  2. すいません、スクショを取るのを忘れていたので画像はありません。

15
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
7