はじめに
ArcGIS Maps SDKs for Native Apps では、モバイルアプリ向けの SDK として、ArcGIS Maps SDK for .NET MAUI、ArcGIS Maps SDK for Kotlin、ArcGIS Maps SDK for Swift、ArcGIS Maps SDK for Flutter の4種類が提供されています。
さらに、ArcGIS Maps SDKs for Native Apps はオープンソースのToolkit も提供されています。こちらは、ユーザーの開発を助けるためのもので、GitHub で公開されているため誰でも利用することが可能です。
そのなかでも、ArcGIS Maps SDK for Kotlin と ArcGIS Maps SDK for Swift では、AR(拡張現実)アプリが開発可能です。それぞれ、Android と iOS 向けに特化している製品となっており、サンプル アプリで簡単に AR アプリをお試しいただけるのも魅力です。
本ブログでは、こちらのArcGIS Maps SDK for Kotlin Toolkit サンプルの AR アプリをご紹介いたします。
AR(拡張現実) とは
ここで簡単に AR についてご説明します。
ARとは、Augmented Reality の略で日本語に翻訳すると拡張現実となります。名前の通り、現実を拡張するようにデバイスを通して、バーチャルな物体をその場にあるかのように見せる技術です。類似の技術として、VR(仮想現実) や MR(複合現実)などがあります。
最近では、スマートフォンだけでなく、スマート グラスなどのウェアラブル デバイスを用いた AR 体験も提供されています。
ArcGIS Map SDK for Kotlin Toolkit の AR アプリ
ArcGIS Maps SDK for Kotlin Toolkit で提供されている AR サンプル アプリは 3 種類あります。それぞれ、TableTopSceneView、WorldScaleSceneView、FlyOverSceneViewです。これらの動作には、後述する ARCore 対応デバイスとGoogle Play Services for AR が必要です。
TableTopSceneView は平面を検出し、その平面をタップすることであらかじめ設定したシーン コンテンツを呼び出して表示します。下の動画では、丸いテーブルに実際の建物のシーン コンテンツを表示しています。一度表示したあとは、周囲を歩き回っても問題なく、3D モデルを様々な角度から確認することができます。
WorldScaleSceneView は、シーン コンテンツを実世界の風景の上に表示することができます。下の動画では、実際の建物の前でシーン コンテンツを重ねています。なお、デフォルトの設定だと地形図が透過されておらず、見づらい部分もあるので、動画においては、透過率(baseSurface.opacity)を調整しています。
また描画範囲も 100m 以内と定まっているため、より広い範囲の描画を行うのであれば、改変する必要があります。
FlyOverSceneView は、設定された地点のシーン コンテンツが表示され、デバイスの動きに反応してカメラを操作することができます。こちらは、平面に限らずシーンを表示して、広い範囲を様々な角度から眺めることができます。