Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
6
Help us understand the problem. What is going on with this article?
@Hiro710

【Mac】UE4で開発したアプリをOculus Questへデプロイする

はじめに

macOSでUE4を使ってOculus Questアプリを制作し、実機で動かすまでの方法が記載された記事があまり見当たらなかったので、今回書こうと思った次第です。

今回は、UE4で新規プロジェクト(プロジェクトのカテゴリ:ゲーム)立ち上げからOculus Questへデプロイまでを順を追って説明していきたいと思います。

やり方は基本Windowsの場合とほぼ変わりませんでした(後から気づいた) :sweat:

文字だけで説明していますが、お許し下さい。
また、不足や誤り等があれば教えて下さい。

当記事で取り扱わない事

  • UE4のインストール
  • ADBのインストール(Macには既に入っている為)
  • Oculus Questのセットアップ(前提:開発者モードがONになっている事)
  • Javaのインストール

開発に必要なもの

  • Oculus Quest本体
  • コントローラー
  • 本体付属の充電ケーブル

付属の充電ケーブルはType-Cですが、規格がUSB2.0の為、USB3.x系規格のものを別途購入することをおすすめします。
付属の充電ケーブルでも開発可能です。(この事は他の記事では記されていない)

Oculus Linkがありますが、コスパを考慮するならAnkerのUSB Type-C & Type-Aケーブルがおすすめです。

開発環境

  • macOS Mojave 10.14.6
  • Unreal Engine 4.24.1
  • Java 8

CodeWorks for Androidのインストール

/Epic Games/UE_4.24/Engine/Extras/AndroidWorks/Mac/

上記パスにあります。UE4をダウンロードすると同封されてくるはずです。
CodeWorksForAndroid-1R7u1-osx.dmg を起動して手順に沿ってインストールしてください。

必ずしもCodeWorksForAndroid-1R7u1-osx.dmg のバージョンを使う必要はなく、お好みで使いたいエンジンのバージョンをダウンロードしても構いません。
ただし、Android 4.4.2(API 19)は必須となります。

詳しくはUE4公式リファレンスをご覧ください。

【注意】 UE4.25以降をご使用の方へ

UE4.24まではCodeWorksForAndroidをインストールするように指示されていましたが、UE4.25からはAndroid Studio を備えた Android Native Development Kit (NDK)を使用します。
詳しくは以下の公式サイトをご覧下さい。

Unreal Engine に Android SDK および NDK を設定する

UE4側

新規立ち上げ

使いたいバージョンの起動ボタンを押して、以下のように新規作成します。

  • 新規プロジェクトのカテゴリ:ゲーム
  • テンプレート選択:Blank (または バーチャルリアリティ)
  • プロジェクト設定:ブループリント、ハイエンド、レイトレーシング無効、モバイル/タブレット、スターターコンテンツ無し
  • 任意の保存場所、プロジェクトのフォルダとプロジェクト名

上記のように選択して「プロジェクト作成」を押せば完了。

テンプレート選択でバーチャルリアリティを選択すると、コントローラ関連やVRに必要なもの諸々を一式準備してくれる。

なお、スターターコンテンツを有りに設定すると、コンパイルに長時間付き合うことになるので使っていない。(テストプレイはできるが処理が重くなる為)

Projectの設定を変更

まずは上部メニューにある「現在のレベルを保存」で現在のレベル(シーン)を任意の名前を付けて保存します。

上部メニューにある「設定」のプルダウンメニューを出して、「プロジェクト設定」をクリック。

左の一覧から「プロジェクト」の「マップ&モード」を選択。
デフォルトマップ」の「エディタのスタートアップマップ」と「ゲームのデフォルトマップ」にプルダウンメニューから先ほど名前を付けて保存したレベルを設定します。

左の一覧から「プロジェクト」の「対応プラットフォーム」を選択して、「Android」にチェックマークをつけて下さい。

左の一覧から「エンジン」の「インプット」を選択して、「モバイル」内の「デフォルトのタッチ インターフェース」のプルダウンメニューから「クリア」をクリックして、「なし」の状態にしてください。

左の一覧から「エンジン」の「レンダリング」を選択して、「モバイル」内の「モバイル HDR」のチェックマークを外します。

左の一覧から「プラットフォーム」の「Android」を選択、「APK Packaging」の「Configure Now」をクリックします。

また、緑色に変化した左下にある「Accept SDK License」がグレーアウトされているか確認してください。
もし、されていない場合はLicenseを読んで承諾ボタンを押して下さい。

下にスクロールしていき、「Google Play Services」も同様に「Configure Now」をクリックして緑色にします。

APK Packaging」内の「最低限の SDK バージョン」と「ターゲット SDK バージョン」の値を「25」に設定し、「KitKat および上記のデバイスで全画面の没入モードを有効化」と「向上した仮想キーボードを有効化」にチェックマークを入れます。

下にスクロールし、「Advanced APK Packaging」内の「Oculus モバイル デバイス向けのパッケージ」にプラスマークをクリックして、プルダウンメニューで「Oculus Quest」を選択。

すぐ下の「配布APKからOculus署名ファイルを削除」にチェックマークを入れます。

左の一覧から「プラットフォーム」の「Android SDK」を選択。
SDKConfig」内の「SDK API Level」と「NDK API Level」に「latest」と入力。
Location of Android SDK」、「Location of Android NDK」、「Location of JAVA」は自動でパスが通るので空欄でOK。

以下の引用元

空の場合は環境変数 ANDROID_HOME、NDKROOT、ANT_HOME、JAVA_HOME が参照されます(設定の項目をマウスオーバーすると確認できます)。

CodeWorks for Android をインストールするとこれらの環境変数が自動的に設定され UE4 から参照されますので、通常はここの設定は空のままで構いません。
Android ビルドができなくなった際はこのことを思い出してください。
また、ビルドツールの Gradle も環境変数 GRADLE_HOME で参照されます。

メイン(プロジェクト)画面に戻り、Projectの上部メニュー「設定」プルダウンメニューから「プラグイン」をクリック。

左の一覧から「Virtual Reality」を選択、「Oculus VR」の「Enabled」にチェックマークを入れます。

有線でADBコマンドを使ってOculus QuestをPCにデバイス認識させる

初めてPCにOculusを充電ケーブルで接続した際にOculusの画面に接続の許可を聞かれるので「許可する」を選択。

ターミナル上で以下を実行。

 $ adb start-server
 $ adb devices # 認識に成功すると以下が表示される
  List of devices attached
  * daemon not running. starting it now on port {ポート番号} *
  * daemon started successfully *
  {デバイスID}        device

認識できない場合は以下を順に実行。

 $ adb kill-server
 $ adb start-server
 $ adb devices

プロジェクトをビルドしてOculus Questへデプロイ

Projectの上部メニュー右端の「>>」クリックして「起動オプション」の「デバイス」欄内の「Oculus Quest」(または他の名前で表示されている)を選択するとプロジェクトのビルド開始、必要なものがダウンロードされ、自動でOculus Questへデプロイされます。

デプロイが完了するとOculus Questを装着してプレイすることができます。

doordoor.jpg

なお、デプロイしたアプリは、Oculus Quest内の「ライブラリ」の「提供元不明のアプリ」に入っているのでいつでもプレイすることができます。

ビルドが失敗する場合は

ビルドが失敗する場合、考えられるのは、「プラットフォーム」の「Android SDK」のパスが間違っていたり、バージョンが古かったりすることがほとんどです。
ログにはエラー内容の詳細が出てますので必要に応じて修正して下さい。

(番外編) Oculus Questをリモートで接続する

番外編なので詳しいことは書きません。以下を参考にして下さい。

参考文献

かなりお世話になりました。有難うございます。

6
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Hiro710
onちゃんと🍣が好きです。

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
6
Help us understand the problem. What is going on with this article?