Nachtrag: Das ArcGIS Maps SDK für Unity sowie das ArcGIS Maps SDK für Unreal Engine wurden jeweils im Juni/Juli 2022 von der US-amerikanischen Firma Esri veröffentlicht. Details finden Siehierim Artikel.
Früher haben wir im Blogartikel „Die Erde in Unreal Engine und Unity handhaben!?“ das Spiele-Engine-SDK ArcGIS Maps SDK for Unity/Unreal Engine vorstellt.In diesem Artikel erklären wir die praktische Anwendung des
SDK und zeigen, was mit dem ArcGIS Maps SDK möglich ist.
Setup
Zuerst installieren wir das spezielle Plugin. Hier zeigen wir die Schritte für
Unity.Für Unreal Engine folgen Sie bitte der englischsprachigen Dokumentation unter:ArcGIS Maps SDK for Unreal Engine: Plugin zu einem neuen Projekt hinzufügen:https://developers.arcgis.com/unreal-engine-sdk/install-and-set-up/add-the-plugin-to-a-new-project/
・Plugin herunterladen
Aktuell ist das
ArcGIS Maps SDK
in der Beta-Version verfügbar. Jeder kann ein Konto (kostenlos) erstellen und am
Beta-Programm teilnehmen, um Zugriff zu erhalten.Nach Teilnahme am Beta-Programm können Sie die Plugins für Unity und Unreal Engine herunterladen.
Sie können eine Zip-Datei herunterladen und an einem beliebigen Ort entpacken. ・Plugin installierenErstellen Sie in Unity ein Projekt mit High Definition Render Pipeline oder Universal Render Pipeline. Hier verwenden wir die High Definition Render Pipeline.Nachdem das Projekt erstellt wurde, wählen Sie im Menü von
Unity
[Assets] -> [Import package] -> [Custom package] und importieren das heruntergeladene Paket
ArcGISMapsSDK.unitypackage. Anschließend wählen Sie [File] -> [Open Scene] und öffnen die Datei PrefabScene.unity im Ordner „<Projektordner>\Assets\ArcGISMapsSDK\Samples\HDRP\PrefabScene“.※ Wenn Sie ein Universal Render Pipeline Projekt verwenden, nutzen Sie die Datei im Ordner „<Projektordner>\Assets\ArcGISMapsSDK\Samples\URP\PrefabScene“. Klicken Sie auf den [Play]-Button, um die Standardkarte von New York mit Gebäudedaten anzuzeigen.
・カメラ位置の設定
[CAMERA LOCATION] で初期表示位置を設定できます。緯度(Latitude)、経度(Longitude)、高度(Altitude)を指定します。
・背景地図の設定
[BASE MAP] で表示する地図を選択できます。道路地図(Streets)や衛星画像(Imagery)等、いくつかの種類が用意されています。また、[Terrain Elevation] を選択すると標高データを読み込んで、地形を表現することもできます。
ここでは [CAMERA LOCATION] で富士山が表示されるように緯度・経度・高度(Latitude: 35.300626、Longitude : 138.627363、Altitude: 5000)と、背景地図に衛星画像(Select Base Map: Imagery)、[Terrain Elevation] を有効に設定して再生した状態です。
[VIEW MODE] では Global Scene と Local Scene のいずれかを選択できます。Global Scene を選択すると地球が球体で表示され、Local Scene を選択すると地球が平面で表示されます。
左が Global Scene、右が Local Scene
・3D データの表示
Web 上の URL またはローカルファイルを指定して、位置情報を持った独自の 3D データを表示できます。これには ArcGIS Online や ArcGIS Pro 等のソフトウェアが別途必要になります。サンプルの PrefabScene にはデフォルトで ArcGIS Online で公開されているサンプルのニューヨークの建物の 3D データが表示されています。
3D データを追加するには、[ADD DATA] で URL を指定するか、ローカルにあるファイルを参照します。
下記は、国土交通省が進める 3D 都市モデル整備・活用・オープンデータ化のプロジェクトである PLATEAU で整備されている 3D 都市モデル(東京都23区)を ArcGIS Online で公開し、その Web サービスを表示している状態です。
実際に試す場合は、[ADD DATA] の URL にWeb サービスのレイヤーの URL を設定します。
Tips:
PLATEAU の 3D都市モデルは CityGML の形式で公開されていますが、ArcGIS で利用可能な形式(ファイル ジオデータベース)へ変換するツールが GitHub で公開されています。変換したファイル ジオデータベースは ArcGIS Pro のツールを使用してArcGIS Online 上に Web サービスとして公開できます。Web サービスは 3D データを高速に表示可能なシーンレイヤーという形式で公開されます。Web サービスとして表示するため、OBJ や FBX 形式等に変換してローカルデータを表示するのに比べて管理も容易です。
・Unity の 3D オブジェクトを地図上に表示
次に Unity の 3D オブジェクトを地図上に追加してみます。
ファイル メニューで、[GameObject] → [3D Object] → [Cube] を選択します。Inspectorウィンドウで [Add Component] → [Scripts] → [ArcGISMapsSDK.Components] →[ArcGIS Location Component] を選択します。
ここでカメラの初期表示位置の時と同様に、3D オブジェクトを表示する位置(緯度、経度、高度)を設定します。下記は新宿駅付近に Cube オブジェクトを表示した状態です。
本記事で設定した項目は API を使用しても設定できます。SDK は現在ベータ版で機能も限られていますが、今後のリリースでは、ArcGIS で管理する位置情報を持った地物にアクセスして属性情報を取得するような機能もサポートされる予定です。
SDK の詳細は下記ドキュメントで紹介されています。
プレリリースは夏頃、正式リリースは 2021 年内に予定されています。2021 年 9 月にプレリリース版(Unity/Unreal Engine)がリリースされています。正式リリースは 2022 年 Q1 に予定されています。新しいリリース情報は、またブログ記事で紹介していきたいと思います。
2022年6月(Unity)/7月(Unreal Engine)に正式リリースされました。詳細はこちらの記事をご覧ください。
※ ArcGIS Maps SDK for Unity/Unreal Engine はベータ プログラムとして米国Esri社が提供しているものであり、ESRIジャパンにおける製品保守サポート等の対象外です。ご質問やご不明点はベータ プログラム ページの User Forums から直接お問い合わせをお願いいたします。
■関連リンク