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)テンプレートを使ってプロジェクト(.uprojectファイル)を作成する。



エディタの環境設定で、とりあえずビューポートのカメラ操作を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と比べてみたいな。


スポンサーリンク

関連記事

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

コメント