はじめに
ARCoreというTango目的でZenFoneARを自腹で買った僕が涙目になる技術が公開され、
更に既にUE4が試験的に対応済み!ということで、早速動かしてみました!
注) まだ開発者プレビュー段階なので変わる可能性ありますし、動作の保証はありません。色々了承した上で自己責任で!
注) UE4+Android開発をする準備が既に整った方を対象として説明してます。まだの方はこちらを参考にセットアップ!
docs.unrealengine.com
参考:
https://www.unrealengine.com/ja/blog/get-started-with-google-arcore-using-unreal-engine-today
ARCore Service appを導入
まずはAndroid端末上でARCoreを動かすために、以下のサイトからARCore Service appをダウンロードし、対象の端末にインストールします。
Downloads and Samples | ARCore | Google Developers
インストール用のコマンド
adb install -r -d arcore-preview.apk
注意!
ZenFoneARなどのTango機能を持つAndroid端末にARCore Serviceをインストールすると、以降Tangoアプリ起動時にクラッシュするようになります。クラッシュを回避するためには、Tango Coreを再インストールするしかありません。現時点ではARCoreとTangoは両立できないのでご注意ください
ARCore用のUE4をダウンロード&ビルド
ARCore用のUE4プラグインはまだ本流に組み込まれていないため、開発中のブランチからUE4をダウンロードし、ビルドする必要があります。
https://github.com/google-ar-unreal/UnrealEngine/tree/4.17-arcore-sdk-preview
ソースからのビルド手順は以下のページで解説されています。
docs.unrealengine.com
ARCore用のサンプルをDL&起動
次に、ARCore用に用意されたサンプル「HelloARSample」を以下のサイトからDLします。
Downloads and Samples | ARCore | Google Developers
そして、先程ビルドしたUE4でサンプルを開きます。そして、そのままパッケージング作業を行い、対象となる端末にインストールします。
docs.unrealengine.com
すると、「Hello AR UE4」というアプリがインストールされていますので、実行して動作確認します!おつかれさまでした!
・・・
はい(ZenFoneAR) pic.twitter.com/5iJKTHMmSO
— おかず@なつやすみ (@pafuhana1213) 2017年8月29日
はい
※ 2017/9/4時点ではARCoreはまだPixel, Pixel XL, GalaxyS8にしか正式対応していません!
未サポート端末であるZenFoneARを動かすためにしたこと
ヒントになった記事がこれです
qiita.com
どうやらサポート端末か否かの判定さえ誤魔化せば何とかなりそうです。ということで、ARCore用プラグインのコードの一部を修正(といっても、Trueを強制リターンするようにしただけ)
GoogleARCoreAndroidHelper.cpp
bool FGoogleARCoreAndroidHelper::IsTangoCorePresent() { #if PLATFORM_ANDROID return true; // add if (JNIEnv* Env = FAndroidApplication::GetJavaEnv()) ...
bool FGoogleARCoreAndroidHelper::IsTangoCoreUpToDate() { #if PLATFORM_ANDROID return true; // add if (JNIEnv* Env = FAndroidApplication::GetJavaEnv()) ...
bool FGoogleARCoreAndroidHelper::IsARCoreSupported() { #if PLATFORM_ANDROID return true; // add if (JNIEnv* Env = FAndroidApplication::GetJavaEnv()) { ...
これでまだサポートされていないZenFoneARでARCoreを動かすことができました!めでたしめでたし!
注) この方法での起動はZenFoneAR以外の端末ではノーチェックです。また今後の動作に支障が出る可能性があります。試す場合は自己責任でお願いします。
注)
自 己 責 任 ! ! !