SDK voor game-engines is ArcGIS Maps SDK for Unity en ArcGIS Maps SDK for Unreal Engine zijn respectievelijk in juni en juli uitgebracht door het Amerikaanse bedrijf Esri.De ontwikkeling van de SDK begon in 2019, met een pre-release in 2021 en daarna de officiële release.We hebben de SDK al eerder geïntroduceerd in blogartikelen, maar met de officiële release zullen we in dit blogartikel opnieuw de belangrijkste functies van de SDK en de integratie met ArcGIS bespreken.Eerdere artikelen over de SDK:Beheer van de aarde binnen Unreal Engine en Unity!?3D-stadsmodellen van PLATEAU ook te beheren in Unreal Engine en Unity!? ~ Introductie van een kaart-SDK voor game-engines ~Let op, de ArcGIS Map SDK for Unity/Unreal Engine is momenteel geen product dat wordt ondersteund door ESRI Japan. De Esri productondersteuningsservice en ontwikkelaarsondersteuning die ESRI Japan aanbiedt, zijn niet beschikbaar voor dit product. Houd hier rekening mee.
Basemap / HoogtedataArcGIS Online biedt wereldwijde satellietbeelden en hoogtedata aan, die via de SDK ook in Unity/Unreal Engine gebruikt kunnen worden. Voor het gebruik van deze kaartgegevens hoeft u geen code te schrijven; u hoeft alleen in het instellingenvenster van de editor de URL's van de webservices voor kaartgegevens in te stellen om eenvoudig real-world context en terrein in de game-engine weer te geven.Sinds de officiële release is het verplicht om een API-sleutel in te stellen wanneer u basemaps of hoogtedata gebruikt die door het Amerikaanse bedrijf Esri op ArcGIS Online worden aangeboden (voor het verkrijgen van een API-sleutel is een ontwikkelaarsaccount vereist). Gebruik boven het gratis quotum (voor basemaps 2.000.000 tiles per maand) vereist registratie voor een pay-as-you-go plan, maar voor evaluatie- en ontwikkelingsdoeleinden is het gratis quotum meestal voldoende.Integratie met data/lagen van ArcGISNaast basemaps en hoogtedata kunt u met de
SDK eenvoudig eigen data en lagen die gedeeld worden via ArcGIS weergeven door alleen een URL of pad op te geven (Unity/Unreal Engine).3D Mesh Scene Layer
De "Arakawa Digital Twin online - Arakawa 3D River Basin Map" publiceert 3D Mesh Scene Layers die weergegeven kunnen worden in game-engines.
3D Object Scene Layer3D Object Scene Layers beheren individuele structuren zoals gebouwen en bomen apart, inclusief complexe 3D-weergave met texturen en bijbehorende attributeninformatie. Attributen kunnen gebruikt worden om realtime weergave van objecten te bepalen. Hieronder ziet u een voorbeeld waarbij 3D stadsmodeldata van PLATEAU gepubliceerd en gedeeld via ArcGIS Online wordt weergegeven als 3D Object Scene Layers. Links ziet u data inclusief texturen, rechts worden gebouwen in commerciële gebieden (gebaseerd op het attribuutveld "gebiedstype") blauw weergegeven.Daarnaast kunnen ook 2D afbeeldingtile-data worden weergegeven. Deze data/lagen kunnen zowel online als offline gebruikt worden.Globale modus en lokale modusEr zijn twee manieren om kaarten weer te geven: globale modus en lokale modus (Unity/Unreal Engine). In globale modus kunt u data over de hele wereld tonen en uitzoomen om de bolvorm van de aarde te zien. In lokale modus kunt u data binnen een kleiner gebied tonen, waarbij u het zichtbare gebied kunt afkappen tot een cirkel of rechthoek.Mesh ColliderData/lagen van ArcGIS toegevoegd via de
SDK kunnen mesh colliders inschakelen (Unity/Unreal Engine). Dit is nodig voor zichtbepaling, navigatiecontrole, objectidentificatie bij klikken enzovoort. Hieronder ziet u zichtlijnen tussen twee objecten: groene lijnen betekenen dat ze elkaar kunnen zien, rode lijnen dat ze door obstakels zoals gebouwen worden geblokkeerd.
Integratie met GameObjects/ActorsZoals eerder geïntroduceerd in blogartikelen kunt u met ArcGIS Location Component (Unity/Unreal Engine) GameObjects/Actors toevoegen die op specifieke coördinaten op de kaart worden weergegeven. De positie kan realtime bijgewerkt worden via API's enzovoort. In dit voorbeeld wordt het Simple Drone asset van GameAnime gebruikt.
Hieronder volgt een voorbeeld van integratie tussen GameObjects/Actors en kaartfuncties van ArcGIS.Route zoekenArcGIS biedt wereldwijde wegennetdata waarmee routezoeken mogelijk is. Hieronder wordt het resultaat van routezoeken via REST API getoond als GameObject/Actor met behulp van ArcGIS Location Component in de game-engine.Visualisatie van 2D dataArcGIS heeft een functie genaamd Feature Layer om 2D locatiegebonden data te beheren. Net als bij routezoeken kunt u via REST API coördinaten ophalen uit deze Feature Layer en GameObjects/Actors maken met ArcGIS Location Component ingesteld. Hieronder ziet u coördinaten en namen van luchthavens in Japan opgeslagen in een Feature Layer, opgehaald via REST API en weergegeven in de game-engine met ArcGIS Location Component ingesteld op het asset.In dit voorbeeld wordt het Planes & Choppers – PolyPack asset van Alstra Infinite gebruikt.Implementaties van genoemde functies zijn terug te vinden in voorbeelden die bij de SDK horen of op GitHub staan (Unity/Unreal Engine).
Downloaden van SDKDe officiële versie van de SDK kan gedownload worden vanaf de ArcGIS Developers site (Unity/Unreal Engine). Downloaden, ontwikkelen en evalueren met de SDK is gratis. Gebruik uw gratis ArcGIS ontwikkelaarsaccount of ArcGIS Online account om aan te melden bij ArcGIS Developers site en download de SDK.
3D メッシュ シーン レイヤー
3D メッシュ シーン レイヤーは、ドローン等で撮影した画像とサーフェス モデルの両方を組み合わせ、都市レベルでの建物、道路、樹木、河川等の多くの構造物を1つの連続したサーフェスに統合します。都市全体の構造物を 3D で表現する際に最適なレイヤーです。この ArcGIS で作成・共有された 3D メッシュ シーン レイヤーを利用することで、よりリアリティのある都市を表現できます。
「Arakawa Digital Twin online - 荒川 3D 河川管内図」で公開されている3D メッシュ シーン レイヤーをゲームエンジンで表示
3D オブジェクト シーン レイヤー
3D オブジェクト シーン レイヤーは建物や樹木等の個々の構造物を個別に管理し、テクスチャを含む複雑な 3D 表現と、個々の構造物に紐づく属性情報を含んでいます。属性情報は、そのオブジェクトをリアルタイムにどのように表示するかを決めるためにも使用できます。下図では、PLATEAU で整備されている 3D 都市モデルのデータを ArcGIS Online で公開・共有した 3D オブジェクト シーン レイヤーを表示しています。左図ではテクスチャを含むデータを表示しており、右図では商業地域(「地域地区」の属性フィールドの値を参照)にある建物を青色で表示しています。
これらの他にも 2D の画像タイルのデータも表示できます。また、これらのデータ/レイヤーはオンライン/オフラインの両方で使用できます。
グローバルモードとローカルモード
地図の表示方法は、「グローバル」モードと、「ローカル」モードの 2 種類があります(Unity/Unreal Engine)。グローバルでは、世界全体にまたがるデータを表示するのに使用でき、ズームアウトして地球の球体を見ることができます。ローカルでは、より小さな範囲でデータを表示することができ、円形または四角形の任意の範囲で表示範囲をクリップできます。
メッシュ コライダー
SDK で追加する ArcGIS のデータ/レイヤーはメッシュ コライダー(Unity/Unreal Engine)を有効化できます。可視領域の判定、移動先の判定、クリック操作によるオブジェクトの識別等にそれが必要となる場合があります。下図では2つのオブジェクト間の見通し線を表示しています。緑色の線分はオブジェクト同士が見通せることを示し、赤色の線分は建物等の遮蔽物によりオブジェクト同士が見通せないことを示しています。
ゲームオブジェクト/アクタとの連携
過去のブログ記事でも紹介しましたが、ゲームオブジェクト/アクタに ArcGIS Location Component(Unity/Unreal Engine)を追加して地図上の指定した座標位置に表示できます。表示位置は API 等を使用して、リアルタイムに更新できます。
このサンプルでは、GameAnime の Simple Drone アセットを使用しています。
下記では、ゲームオブジェクト/アクタと ArcGIS の地図機能の連携例を紹介します。
ルート検索
ArcGIS ではグローバルな道路データを提供しており、指定した地点のルート検索が行えます。下記では、REST API でルート検索した結果の情報を ArcGIS Location Component を使用してゲームオブジェクト/アクタとして、ゲームエンジン上に表示しています。
2D データの可視化
ArcGIS には自身の持つ 2D の位置情報付きのデータを管理するためにフィーチャ レイヤーという機能があります。ルート検索と同じ仕組みですが、このフィーチャ レイヤーから REST API を介してオブジェクトの座標を取得し、ArcGIS Location Component を設定したゲームオブジェクト/アクタを作成できます。下図では、日本の空港の座標と空港名の属性データをフィーチャ レイヤーに格納し、REST API を介してそのオブジェクトを取得し、アセットにArcGIS Location Component を設定してゲームエンジン上で表示しています。
このサンプルでは、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 をご活用ください。
関連リンク