じゅころぐAR

ARのブログ

モバイルAR開発プラットフォームまとめ

ARKit、ARCoreの発表を機にARアプリケーション開発の環境が急速に整い始め、用途に応じてプラットフォームを選べるようになってきました。
個人的な資料も兼ねて、主要なプラットフォームを一覧化しておきます。

はじめに

今後は、ARKit、ARCoreを中心としたモバイルARの伸張が見込まれるため、両SDKに対応したプラットフォームをまとめています。
Googleがサポート終了を表明したTangoやVuforia、Kudanなどは外しています。

ネイティブSDK

iOS/Androidネイティブの開発プラットフォーム。新機能をいち早く利用できる。

ARKit

AppleがiOSアプリ開発者向けに提供しているSDK。
Xcode9、iOS11以降で開発が可能。

ARKit - 拡張現実 - Apple Developer

ARCore

Googleが提供しているAndroid開発者向けのSDK。
2018年2月現在、Preview2が公開されている。と書いた翌日にv1.0が正式公開されました!

Quickstart for Android NDK  |  ARCore  |  Google Developers

github.com

Unity

クロスプラットフォームのゲームエンジン。Assetやプラグインが充実しており、AR/VRの開発環境としても標準的に使われている。

Unity ARKit plugin

ARKitをUnityで扱うためのプラグイン。
提供元はUnity Technologies。

Unity ARKit Plugin | Tutorial Projects | Unity Asset Store

https://bitbucket.org/Unity-Technologies/unity-arkit-pluginbitbucket.org

ARCore SDK for Unity

Googleが提供しているARCore SDKのUnity版。

Quickstart for Android  |  ARCore  |  Google Developers

github.com

Unity ARInterface

Unity TechnologiesがExperimentalで公開しているクロスプラットフォームのSDK。
ARKit、ARCoreで共通の機能を同じ実装で利用できる。

github.com

Unreal Engine

Unreal EngineでもARKit、ARCoreが利用できるようです。
あまり詳しくないので紹介のみ。

ARKit plugin

Unreal Engine 4.17以降のバージョンであればARKitをサポートしています。

www.unrealengine.com

ARCore SDK for Unreal

Unityと同様、ARCore SDKがGoogleから提供されている。

Quickstart for Unreal  |  ARCore  |  Google Developers

github.com

Web

JavaScriptで記述したWebARアプリケーションをブラウザで実行する。
パフォーマンスに不安があるが、ダウンロードコンテンツやオープンソースと組み合わせて使いやすい。

three.js (three.ar.js)

Googleが提供しているthree.js向けのライブラリ。
three.js向けに作成されたexamplesの多くがARに流用できる。

github.com

A-Frame (aframe-ar.js)

Mozilla製WebVRフレームワーク"A-Frame"とthree.ar.jsを統合したサンプルプロジェクト。
A-Frameを利用することでARシーンをHTMLベースのマークアップで記述できる。three.jsを内包しているため、スクリプトの記述もできる。

github.com

WebXR

WebVR SpecにARを拡張したWebXRのEditor’s Draftが提案されている。
https://immersive-web.github.io/webxr/spec/latest/

上記の仕様に基づいたPolyfillをMozillaが提供。 github.com

WebAR対応ブラウザ

WebAR(WebXR)の仕様は提案されているが、ブラウザへの正式サポートはされていない。
Google、Mozillaから提供されている開発者向けのブラウザアプリにて動作確認ができる。

WebARonARKit

ARKitに対応したChromiumベースのiOSアプリ。
Xcodeでビルドしてインストールが必要。

github.com

WebARonARCore

ARCoreに対応したChromiumベースのAndroidアプリ。
APKファイルからインストールが可能。

github.com

WebXR Playground

Mozillaが提供しているARKit対応のiOSアプリ。 Xcodeでビルドしてインストールが必要。

github.com

マネージドサービス

Amazon Sumerian

AmazonがAWSサービスの一つとして提供。2018年2月時点ではLimited Previewに登録することで試用可能。
Webコンソール上でARシーンを構築でき、クロスプラットフォーム向けに即座に公開ができる。

aws.amazon.com

Sumerianで作成したコンテンツをARKitアプリで利用することもできる。
サンプルアプリがGithubで公開されている。

github.com

まとめ

主要なプラットフォームは、既にARKit、ARCoreに対応してきています。
ARで扱えるコンテンツの幅は広いため、特定のプラットフォームに固執せず、利用したいライブラリ、コンテンツに合わせて環境を選択できた方がよさそうです。

広くARが普及していく上ではWebAR(WebXR)に期待していますが、"Appleの動向"="Safariへの対応時期"が読めないため、製品への利用は難しい状況です。
現状ではクロスプラットフォーム対応も可能なUnityを優先で検討するのが無難な選択かなと思います。