サイトアイコン NegativeMindException

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と比べてみたいな。


スポンサーリンク

関連記事

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