アプリARに使われるARCoreとARKit、ARFoundationって何?役割を解説!

アプリARを制作する際、必ずといっていいほど目にするのがARCore、そしてARKitの2つでしょう。そしてUnityを使う際によく目にするのがARFoundation。
これらの名前はよく見るけどどんな役割なのかわからない…と言う方も多いのではないでしょうか。本記事では違いとどんな機能があるかについてまとめてみました!

ARCoreとは?

ARCoreとは、Googleが開発しているARを体験するためのフレームワークです。

ARCoreの機能を呼び出すことで、フェイストラッキングや平面認識などの様々なARの機能を簡単に利用することができます。
記事執筆時点での機能は下記画像の通りです。

動画より抜粋

ARCore対応デバイスはAndroidに多いですが、iPhoneでもサポートしています。
毎年アップデートされており、直近では5月のGoogle I/Oで発表されたGeospatial APIというVPSの技術が話題になりました。

ARKitとは?

ARKitとは、Appleが開発している、ARを体験するためのフレームワークです。
iPhoneのPro以上のモデルにはLiDARと呼ばれるセンサーがついています。LiDARに合わせて多くの機能が拡張されるように作られており、ARCoreとは異なる方向性に技術が進んでいます。
モーションキャプチャーやオブジェクトトラッキング、実物体のスキャンと3Dモデル化など、LiDARを活用した機能が多く備わっています。

OSアップデートと同時にARKitもアップデートされることが多く、最新ではカメラ機能の強化や、モーションキャプチャーの改善が行われました。

iOS(iOS 11.0以降かつ、iPhone6s以降のデバイス)が対応しており、Androidでは使用できません。

ARFoundationとは?

ARFoundationは、ARCoreとARKitの差異を気にすることなくアプリを制作できるように開発されたUnityのフレームワークです。
ARCoreとARKitは開発環境や開発言語が異なるため、AndroidとiOSの両方に対応したARアプリを制作するのは大変です。
ARFoundationはその差異を吸収し、Unity上で開発を行うだけで両方のプラットフォームにビルドすることを可能とします。(iOSアプリのビルドには別途Xcodeが必要)
下記画像のように、様々な機能に対応しています。

https://docs.unity3d.com/Packages/com.unity.xr.arfoundation@5.0/manual/index.html

さらにUnityには様々なアセットやSDKが用意されているため、そちらを利用することでよりリッチなAR体験を作ることができます。


ARCore/ARKitの最新機能を使えないことがあるなどデメリットもありますが、開発者にとってはありがたいフレームワークです。

まとめ

以上、3種類を紹介しました。使いたい機能や開発環境に合わせて何を使うかを選定するのが良いでしょう。
ARCore/ARKitはWebARの平面認識でも利用されることが多いため、アプリ開発者以外でも対応端末や機能などの基本事項を覚えておくと役立つことがあるかもしれません。