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
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
Unity ARInterface
Unity TechnologiesがExperimentalで公開しているクロスプラットフォームのSDK。
ARKit、ARCoreで共通の機能を同じ実装で利用できる。
Unreal Engine
Unreal EngineでもARKit、ARCoreが利用できるようです。
あまり詳しくないので紹介のみ。
ARKit plugin
Unreal Engine 4.17以降のバージョンであればARKitをサポートしています。
ARCore SDK for Unreal
Unityと同様、ARCore SDKがGoogleから提供されている。
Quickstart for Unreal | ARCore | Google Developers
Web
JavaScriptで記述したWebARアプリケーションをブラウザで実行する。
パフォーマンスに不安があるが、ダウンロードコンテンツやオープンソースと組み合わせて使いやすい。
three.js (three.ar.js)
Googleが提供しているthree.js向けのライブラリ。
three.js向けに作成されたexamplesの多くがARに流用できる。
A-Frame (aframe-ar.js)
Mozilla製WebVRフレームワーク"A-Frame"とthree.ar.jsを統合したサンプルプロジェクト。
A-Frameを利用することでARシーンをHTMLベースのマークアップで記述できる。three.jsを内包しているため、スクリプトの記述もできる。
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でビルドしてインストールが必要。
WebARonARCore
ARCoreに対応したChromiumベースのAndroidアプリ。
APKファイルからインストールが可能。
WebXR Playground
Mozillaが提供しているARKit対応のiOSアプリ。 Xcodeでビルドしてインストールが必要。
マネージドサービス
Amazon Sumerian
AmazonがAWSサービスの一つとして提供。2018年2月時点ではLimited Previewに登録することで試用可能。
Webコンソール上でARシーンを構築でき、クロスプラットフォーム向けに即座に公開ができる。
Sumerianで作成したコンテンツをARKitアプリで利用することもできる。
サンプルアプリがGithubで公開されている。
まとめ
主要なプラットフォームは、既にARKit、ARCoreに対応してきています。
ARで扱えるコンテンツの幅は広いため、特定のプラットフォームに固執せず、利用したいライブラリ、コンテンツに合わせて環境を選択できた方がよさそうです。
広くARが普及していく上ではWebAR(WebXR)に期待していますが、"Appleの動向"="Safariへの対応時期"が読めないため、製品への利用は難しい状況です。
現状ではクロスプラットフォーム対応も可能なUnityを優先で検討するのが無難な選択かなと思います。