初めに
この記事はタイトル通り、UE4環境でOculusQuest2を使って簡単なゲームを作っていくというものになっています。そもそも、なぜVR開発を始めたかというと、授業でVRを開発する機会があり、その授業課題提出も兼ねて、ついでに記事を書き始めました。といっても、需要があるのかは分かりませんが、記録として残します。
VR開発については全くの初心者で、普通に間違っている可能性も十分にあるので、その点に関してはご了承ください。
開発環境
- 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にすらならないので登録して下さい。
参考サイト
Facebook Oculus Quest 2 開発環境を作る Part1 ~開発者登録~ - プログラマの雑記帳
PC側
Android Studioをインストールして、「Welcome to Android Studio」まで画面を進めて下さい。次に、More ActionsからSDK Managerを開いてください。
すると、Android SDKが出てくるので、ここからインストールするSDK/NDKをカスタムします。ここはUE4のバージョンでかなり変わってくると思うので、各自色々調べて頑張って下さい。少なくとも、「UE4 Ver.4.26.2」では下図で動きました。
SDK Platforms
- Android 12.0(S)
- Android 7.1.1(Nougat)
SDK Tools
- 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のパッケージ化
- 最低限のSDKバージョン(19=KitKat, 21=lollipop)
- 25
- ターゲットSDKバージョン(19=KitKat, 21=lollipop)
- 25
高度なAPKのパッケージ化
- Oculusモバイルデバイス向けのパッケージ
- 0
- Oculus Quest 2
- 配布APKからOculus署名ファイルを削除
- 0
プラットフォーム - Android SDK
- 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
「Oculusパフォーマンスウィンドウを起動」と「Oculusプラットフォームウィンドウを起動」を使用します。「Oculus向けのテレメトリリビルドを有効にする」がいるのかは分かりません。というより、現状この項目が何を指しているのかが分かっていません。
Oculusパフォーマンス確認 - 基本設定
ターゲットプラットフォームをモバイルに変更して、「有効にして下さい」的な項目が出てくるので全て有効にして下さい2。
モバイル
- ハンドトラッキングサポート
- Controllers and Hands
コンパイル / ビルド
OculusQuest2をPCに接続した際に、OculusQuest2側で「USBデバックを許可しますか?」が出るので、「許可する」を選択。次に、「データへのアクセスを許可」が出るので、「許可する」を選択。これらをコンパイル前にしておいて下さい。
これで環境構築がようやく終わりです、「起動 > Quest_2(恐らく型番?)」をクリックして、コンパイル・ビルド作業に入ります。そもそも、表示されていない場合は、「上記の設定が上手くいっていない」or「OculusQuest2を接続していない」かのどちらかです。
その後、数分フリーズした後に、ようやくコンパイル作業に入ります。「Android_ASTCのアセットを処理中...」と「シェーダーをコンパイル中(~)」が出てくればとりあえずOK。初回はかなり長いですが、2回目以降は短くなります。
これで一安心...と思いきや、エラーが出現して出力に失敗する可能性が非常に高いと思います。「エラーが発生 → 出力失敗 → エラー内容を確認 → 内容に応じて調べる → 修正する」が成功するまで無限に続きます。ここが一番大変です。間違いない。アウトプットログを確認する事を忘れないようにして下さい。エラー内容が表示されています。
ちなみに、勝手にOculusQuest2側に出力されているとおもうので、たまに覗いてみて下さい。恐らくアウトプットログに「LogPlayLevel: ********** RUN COMMAND STARTED **********」が表示されている後に、進まない状況になっていればOculusQuest2側に出力されていると思います。ここまで出来ていればほぼ完了で、OculusQuest2側で出力されているアプリ?を終了してください。すると、何故か分かりませんがUE4側で処理が進み終わると思います。
ここまでくれば、一回PCとの接続を解除してOculusQuest2単体で起動する事が可能です。OculusQuest2のアプリを開き、右上にある「全て(○件)」を選択、一番下にある「提供元不明(○件)」を選択して下さい。すると、出力したアプリ?があると思います。
実行例
上手くいけばこのように実行する事が可能です。といっても、コントローラーが無いのですが...。コントローラ-は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
- これはよく分からないのですが、「Android: can't package: Intermediate/Android/APK\gradle\rungradle.bat" :app:assembleDebug - UE4 ANSWERHUB」によれば、「Android SDK Build-Tools 32 > 28.0.3」に変更すると解決しました。
VRモード
UE4ではVRを使って編集する事が可能ですが、便利なのかは正直分かりません。VRモードをOculusQuest2で使うためには、Oculus Linkを使用します。その為には、PC版のOculusアプリを導入する必要があります。詳細は下記参考サイトをみて下さい。例えば、VRモードが出ていない場合などは接続した状態でUE4を起動する必要があったり...。
参考サイト
次回へ続く
今回は環境構築編でした。次回からキチンとゲームを作り始めます。といっても、簡単なゲームを作るだけなので「UFOシューティング」のようなゲームを作りたいと考えています。
なんだかんだで、ユウナマの記事を上げてから2か月経ってしまいました。どうしても、記事を書くやる気が発生せず、卒業制作に取り組んでいました。楽しみにしてくれている方には申し訳ありません。実はユウナマ制作に関してはほとんど進んでいません。どうしても、個人制作よりもチーム制作を優先度が高いので...。
ユウナマの記事とは別に一回記事を没にしていたり...。恐らく、2月以降にユウナマ関係の記事を上げると思います。
参考サイト
- 【UE4】OculusQuestのHandtracking導入手順(Android開発環境構築も含む)※Quest2の動作確認済み - shiratori00’s diary
- UE4でoculus quest 2用ゲームを作る方法 - UNLIMITED GAMES BLOG
- Facebook Oculus Quest 2 開発環境を作る Part1 ~開発者登録~ - プログラマの雑記帳
- Oculus Quest: Unrealエンジンのクイックスタート - oculus FOR DEVELOPERS(Oculus公式サイト)
- Oculus と Unreal Engine を使用した VR 開発 - UNREAL ENGINE(UE公式サイト)
- Unreal Engine VR モード - UNREAL ENGINE
- 「Oculus Link」のセットアップを徹底解説 注意点やケーブル選びも - MoguLive