Unreal EngineでARKit 3.0

以前、UnityでiOSのARKitを使って遊んでみたことがあった。



ふと、Unreal Engineでも同じことをやってみようと思い始めた。(気まぐれ)
iOS 14ARKitの最新バージョン4.0が発表されているけど、地雷を踏まないためにiOS 13で行く。
そもそもUnreal EngineはまだARKit3.0までしか対応していないわけだし。

少し調べてみると、Unityと違ってUnreal EngineでARKitを扱う情報はかなり少ないことに気づいた。
というか、ARKitに限らずUnreal EngineでARCoreを扱う情報も少ない。Unreal EngineでのスマホARアプリ開発はあんまり流行っていないのだろうか。

一応、Unreal Engineの公式ドキュメントハンドヘルド拡張現実(AR)の項目があるので、それに従って進めてみる。
Unreal EngineではWindows経由でiOSアプリのビルド・実機へのインストールができるらしいけどちょっと半信半疑。オイラの環境は以下。


スポンサーリンク


基本的にはWindowsで作業します。

Unreal Projectの作成

とりあえずAR クイック スタートに従って、Handheld AR(携帯AR)テンプレートを使ってプロジェクトを作成する。



エディタの環境設定で、とりあえずビューポートのカメラ操作をMaya風に変更。(ただの好みです)


iOS プロビジョニング

ここからiOSアプリ開発のための設定作業。
Unreal EngineでiOSアプリを開発するにはApple Developer Programに登録する必要がある。
(UnityはXcodeさえあれば無料で開発できたんですけどね)

Unreal Engineのインストールフォルダ下にあるiPhonePackagerを使用する。



この後何度も使うことになるので、デスクトップのショートカットを作っておくと良い。



先ほど作成した.uprojectファイルをiPhonePackagerで指定して、キーペア(.keyファイル)と証明書署名要求(.csrファイル)を生成する。
Apple IDのメールアドレスや名前(または会社名)の指定など、詳しいやり方はこちらのページ

Apple iOS DeveloperサイトのiOS Certificatesページで、先ほど生成した証明書署名要求をアップロードし、証明書(.cerファイル)をダウンロードする。
こちらを参考に、インストールするiOSデバイスの登録もApple iOS DeveloperサイトのiOS Devicesページで済ませましょう。

こちらを参考に、Apple iOS DeveloperサイトのiOS Provisioning Profilesページでプロビジョニング プロファイル(.mobileprovisionファイル)を作成してダウンロード。

プロジェクト設定

こちらを参考に、プラットフォーム iOSのMobile Provisionに先ほど作成したプロビジョニングプロファイル(.mobileprovisionファイル)と証明書(.cerファイル)をインポートする。


スポンサーリンク

リモートビルド設定

WindowsでiOSアプリをビルドする。
というのはつまり、WindowsからSSH接続でMacを叩いてビルド結果をWindowsで受け取る、というカラクリらしい。

ということで、Windowsからリモート接続可能なMacを用意する。オイラは手持ちの古いMacBook Airを使うことにした。Macのシステム環境設定の「共有」でリモートログインを許可しておく。
Windows側では、Unreal Editorのプロジェクト設定でiOSのリモートビルドオプションを設定する。詳しくはこちらを参照。

ここで生成した秘密鍵のパーミッション変更が必要になるかもしれないので、その場合はCygwin等で設定する。詳しくはこちらを参照。

プロジェクトのパッケージ化(.ipaファイルの作成)

こちらを参考に、Unreal Editorの「ファイルメニューから「プロジェクトをパッケージ化」→「iOS」を選択し、.ipaファイルの保存場所を指定。
リモートビルドの設定が済んでいれば、ビルド用のMacがうなりを上げてビルドが始まる。ビルドが完了すると、指定したフォルダに.ipaファイルが出来上がる。
(これってつまりMacにインストールしたXcode使ってるのかな?)

実機に.ipaファイルをインストール

パッケージ化した.ipaファイルをiOS実機に転送するには、再びiPhonePackagerを使用する。
実際にはiPhonePackagerがWindowsにインストールされているiTunesを叩くらしい。そこで、こちらを参考に事前にiTunesのインストールディレクトリ(C:\Program Files\WindowsApps以下)のアクセス権を変更しておく。ついでに、iPhonePackagerのためにC:\Program Files\Epic Games以下の権限も変更しておく。

iTunesを起動し、アプリをインストールするiOSデバイスを接続した状態にしておく。
再びiPhonePackagerを起動し、Advanced Toolsで先ほどパッケージ化した.ipaファイルを指定。すると転送処理が始まる、と思ったら何やらエラー↓



C:\Program Files\Epic Games\UE_4.25\Engine\Build\IOS以下にUE4Game-Info.plistというファイルが無いと言っている。

Unreal Engine Forumsを漁って付け焼刃な対処方法を知った。
GitHubのUnreal Engine 4.6ブランチからUE4Game-Info.plistファイルを持ってくるという。。。

よくわからん対処法だけど、確かに実機へのインストールは成功した↓


アプリの起動

Handheld ARテンプレートそのままなので、平面上をタップするとプリミティブオブジェクトが配置される。


全体像

Unreal EngineでスマホARプロジェクトの作成、iOSアプリのビルド、実機インストールまでやってみた。
理解したリモートビルドの構造を図示しておこう↓


ARKitの各機能のON/OFF

HandheldARBPの中にあるD_ARSessionConfigをいじれば、ARKitの各機能のON/OFFを切り替えられるようだ。



プリミティブオブジェクトを配置するブループリントを見てお作法を学ぼう↓
https://docs.unrealengine.com/ja/Platforms/AR/HandheldAR/ARHowToHitTesting/index.html



AndroidのARCoreと比べてみたいな。


スポンサーリンク

関連記事

Unity ARKitプラグインサンプルのチュートリアルを読む
UnrealCLR:Unreal Engineで.NET Coreを利用できるプラグイン
iPhoneアプリ開発 Xcode 5のお作法
疑似3D写真が撮れるiPhoneアプリ『Seene』がアップデートでついにフル3Dモデルが撮影できる...
iOSデバイスのためのフィジカル・コンピューティングツールキット『konashi(こなし)』
CEDEC 3日目
iPhone5S → iPhone6S
UnityのAR FoundationでARKit 3
新年の衝動買い
AI英語教材アプリ『abceed』
Programing Guide for iPhone SDK 日本語のドキュメント
ArUco:OpenCVベースのコンパクトなARライブラリ
Konashiを買った
ヘッドマウントディスプレイとビジュアリゼーションの未来
映画から想像するVR・AR時代のGUIデザイン
iOSで使えるJetpac社の物体認識SDK『DeepBelief』
口笛から作曲できるスマホアプリ『Chordana Composer』
今年もSSII
Mac用のSubversionクライアント 『SCplugin』
AR (Augmented Reality)とDR (Diminished Reality)
リアルタイム レイトレーシングAPI『DirectX Raytracing (DXR)』
OpenCVベースのマーカーARライブラリ『OpenAR』
Unity ARKitプラグインサンプルのドキュメントを読む
Unreal Engineの機能を学ぶ優先順位を考える
Unityからkonashiをコントロールする
Unreal Engine Tokyo MeetUp!へ行ってきた
Unreal Engine 5の情報が公開された!
書籍『OpenCV 3 プログラミングブック』を購入
スター・ウォーズのスピンオフ『マンダロリアン』の舞台裏
iPhoneで3D写真が撮れるアプリ『seene』
Unity Scriptコーディング→Unreal Engine Scriptコーディング
ヒーローに変身なりきりアーケードゲーム『ナレルンダー』
Oculus Quest 2を購入!
konashiのサンプルコードを動かしてみた
iPhone 3GSがますます欲しくなる動画
2018年に購入したiPad Proのその後
PS4用ソフト『Marvel's Spider-Man』
機械学習で流体シミュレーションを近似する『Physics Forests』
UnityユーザーがUnreal Engineの使い方を学ぶには?
UnrealCV:コンピュータビジョン研究のためのUnreal Engineプラグイン
Unreal Engineの薄い本
スマホのカメラで3Dスキャンできるアプリ『Qlone』

コメント