Unity/Unreal Engine 用の地図 SDK「ArcGIS Maps SDK」の紹介

【Esri Community Blog】

ゲームエンジン用の SDK である ArcGIS Maps SDK for Unity と ArcGIS Maps SDK for Unreal Engine が、それぞれ6月と7月に米国Esri社からリリースされました。2019年から SDK の開発が始まり、2021 年にはプレリリース、そして正式版のリリースとなりました。

これまでにもブログ記事にて SDK を紹介してきましたが、正式版のリリースに伴い、このブログ記事で改めて SDK の主な機能や ArcGIS との連携についてして紹介していきます。

過去の SDK の紹介記事:

なお、ArcGIS Map SDK for Unity/Unreal Engine は、現在 ESRIジャパンにおけるサポート対象外の製品です。ESRIジャパンで提供する Esri 製品サポート サービス開発者サポート サービスはご利用いただけませんので、予めご了承ください。

ベースマップ/標高データ

ArcGIS Online ではグローバルな衛星画像や標高データ等を公開しており、SDK を介してUnity/Unreal Engine でも利用できます。これらの地図データを使用するのにコードを書く必要はありません。エディタの設定画面で地図データの Web サービスの URL 等を設定するだけで、簡単に実世界のコンテキストや地形をゲームエンジン上で表現できます。

ベースマップ_標高データ

正式版のリリースから、米国Esri社が ArcGIS Online 上で提供するベースマップや標高データを使用する際に APIキーの設定が必須となっています(API キーの取得には開発者アカウントが必要です)。無償利用枠(ベースマップの場合は、2,000,000 タイル/月)を超えての利用は従量制プランの登録が必要ですが、評価・開発目的であれば、無償枠内で十分利用していただけると思います。

ArcGIS のデータ/レイヤーとの連携

ベースマップや標高データ以外にも SDK を使用すると、ArcGIS で共有される独自のデータやレイヤーを、URL やパスを指定するだけで簡単に表示できます(Unity/Unreal Engine)。

3D メッシュ シーン レイヤー

3D メッシュ シーン レイヤーは、ドローン等で撮影した画像とサーフェス モデルの両方を組み合わせ、都市レベルでの建物、道路、樹木、河川等の多くの構造物を1つの連続したサーフェスに統合します。都市全体の構造物を 3D で表現する際に最適なレイヤーです。この ArcGIS で作成・共有された 3D メッシュ シーン レイヤーを利用することで、よりリアリティのある都市を表現できます。

3D メッシュ シーン レイヤー

Arakawa Digital Twin online - 荒川 3D 河川管内図」で公開されている3D メッシュ シーン レイヤーをゲームエンジンで表示

3D オブジェクト シーン レイヤー

3D オブジェクト シーン レイヤーは建物や樹木等の個々の構造物を個別に管理し、テクスチャを含む複雑な 3D 表現と、個々の構造物に紐づく属性情報を含んでいます。属性情報は、そのオブジェクトをリアルタイムにどのように表示するかを決めるためにも使用できます。下図では、PLATEAU で整備されている 3D 都市モデルのデータを ArcGIS Online で公開・共有した 3D オブジェクト シーン レイヤーを表示しています。左図ではテクスチャを含むデータを表示しており、右図では商業地域(「地域地区」の属性フィールドの値を参照)にある建物を青色で表示しています。

3D オブジェクト シーン レイヤー3D オブジェクト シーン レイヤー

これらの他にも 2D の画像タイルのデータも表示できます。また、これらのデータ/レイヤーはオンライン/オフラインの両方で使用できます。

グローバルモードとローカルモード

地図の表示方法は、「グローバル」モードと、「ローカル」モードの 2 種類があります(Unity/Unreal Engine)。グローバルでは、世界全体にまたがるデータを表示するのに使用でき、ズームアウトして地球の球体を見ることができます。ローカルでは、より小さな範囲でデータを表示することができ、円形または四角形の任意の範囲で表示範囲をクリップできます。

グローバルモードローカルモード

メッシュ コライダー

SDK で追加する ArcGIS のデータ/レイヤーはメッシュ コライダー(Unity/Unreal Engine)を有効化できます。可視領域の判定、移動先の判定、クリック操作によるオブジェクトの識別等にそれが必要となる場合があります。下図では2つのオブジェクト間の見通し線を表示しています。緑色の線分はオブジェクト同士が見通せることを示し、赤色の線分は建物等の遮蔽物によりオブジェクト同士が見通せないことを示しています。

メッシュコライダー

(view in My Videos)

ゲームオブジェクト/アクタとの連携

過去のブログ記事でも紹介しましたが、ゲームオブジェクト/アクタに ArcGIS Location Component(Unity/Unreal Engine)を追加して地図上の指定した座標位置に表示できます。表示位置は API 等を使用して、リアルタイムに更新できます。

Location Component

(view in My Videos)

このサンプルでは、GameAnime​​ の Simple Drone アセットを使用しています。

下記では、ゲームオブジェクト/アクタと ArcGIS の地図機能の連携例を紹介します。

ルート検索

ArcGIS ではグローバルな道路データを提供しており、指定した地点のルート検索が行えます。下記では、REST API でルート検索した結果の情報を ArcGIS Location Component を使用してゲームオブジェクト/アクタとして、ゲームエンジン上に表示しています。

ルート検索

2D データの可視化

ArcGIS には自身の持つ 2D の位置情報付きのデータを管理するためにフィーチャ レイヤーという機能があります。ルート検索と同じ仕組みですが、このフィーチャ レイヤーから REST API を介してオブジェクトの座標を取得し、ArcGIS Location Component を設定したゲームオブジェクト/アクタを作成できます。下図では、日本の空港の座標と空港名の属性データをフィーチャ レイヤーに格納し、REST API を介してそのオブジェクトを取得し、アセットにArcGIS Location Component を設定してゲームエンジン上で表示しています。

フィーチャレイヤー

(view in My Videos)

このサンプルでは、Alstra Infinite​​ の Planes & Choppers – PolyPack アセットを使用しています。

紹介した各機能の実装方法は SDK に含まれるサンプルや GitHub に公開されているサンプル(Unity/Unreal Engine)を参考にできます。

SDKのダウンロード

正式版の SDK は ArcGIS Developers サイトからダウンロード(Unity/Unreal Engine)できます。SDK のダウンロード、開発、評価は無償で行えます。無償の ArcGIS 開発者アカウントまたは ArcGIS Online アカウントを使用して、ArcGIS Developers サイトにサインインして SDK をダウンロードしてください。SDK の使い方は、ドキュメント(Unity/Unreal Engine)をご覧ください。

また、Esri Community サイトで、SDK に関する質問を投稿したり他の開発者の質問やその回答を確認したりできます。ベータ版の時にお使いいただいていたベータ サイトは近くに使用できなくなるため、今後は上記の Esri Community をご利用ください。

さいごに

正式リリースされましたが、これからのバージョンアップでは、ベクター タイル レイヤー、点群シーン レイヤー、フィーチャ レイヤー、ジオコーディング、ルーティング、その他の分析ツールなど、豊富な機能が追加されていく予定です。ご期待ください。

既にゲームエンジンを利用されている方もこれからはじめる方も、ぜひ ArcGIS をご活用ください。