ArcGIS Maps SDKs for Game Engines の新機能でフィルタリングを実装してみよう

ArcGIS Maps SDKs for Game Engines は Unity/Unreal Engine の 開発用プラグイン です。

今回は、先日リリースされた最新バージョン 1.3.0 で追加されたメッシュの変更と空間フィルタリングの二つを Unreal Engine で試してみました。

メッシュの変更

メッシュの変更は、3D メッシュ シーン レイヤー標高レイヤーに対して、適用できる機能です。この機能を今回は、オープンに公開されている Buildings Frankfurt 2021 as Photogrammetry 3D Surface に、Mask (指定した範囲のみを表示)と Clip (指定した範囲を非表示)を指定しマップを表示してみました。

NaotoSATO_0-1693459002585.png

図:Mask を指定したとき

NaotoSATO_1-1693459075362.png

図:Clip を指定したとき

マップ上に複数レイヤーが追加されている場合は、各レイヤーに対して別々の Mask/Clip を指定することができます。サンプルの Blueprint も公開されていて、それをコピーしてすぐに確認することがきました。

NaotoSATO_2-1693459128650.png

空間フィルタリング

空間フィルタリングは、3D オブジェクト シーン レイヤービルディング シーン レイヤーの一部を部分的に表示もしくは非表示する際に用いられる機能です。この機能を今回は、東京都23区・八王子市南大沢 3D都市モデル(Project PLATEAU)に、Contains (指定した範囲のみを表示) と Disjoint (指定した範囲を非表示)を指定しマップを表示してみました。

NaotoSATO_3-1693459460114.png

図: Contains を指定したとき

NaotoSATO_4-1693459475105.png

図: Disjoint を指定したとき

マスクの変更と同様に、マップ上に複数レイヤーが追加されている場合は、各レイヤーに対して別々の空間フィルタリングを指定することができます。こちらもサンプルの Blueprint が公開されていて、それをコピーしてすぐに確認することがきました。

NaotoSATO_5-1693459500937.png

 終わりに

上述の通り、二つの機能が ArcGIS Maps SDKs for Game Engines に新たに実装されました。これらの機能によって部分的な表示、非表示機能を実装し、表示されていない範囲に別のオブジェクトを配置するなどできるようになります。都市の開発区域の一部分に建設予定の新しい建物を表示する際にも利用できるのはないでしょうか。ちなみに今回実施した二つの機能は、 Blueprint で実装しましたが、C++ の API で実装することも可能です(現バージョンでは、UI での設定は未対応です)。ガイドページを参考にして、ぜひ試してみてください。

また、ArcGIS Maps SDK for Unity でも同機能が追加されていて、実装可能ですのでそちらもぜひお試しください。

関連情報

ArcGIS 開発者コミュニティブログ記事

ArcGIS Maps SDK for Unreal Engine:

製品ページ(英語) https://developers.arcgis.com/unreal-engine/

リリースノート(英語) https://developers.arcgis.com/unreal-engine/reference/release-notes/

Esri ArcGIS Blog(英語) https://www.esri.com/arcgis-blog/products/unreal-engine/developers/announcing-arcgis-maps-sdk-1-3-fo…

ArcGIS Maps SDK for Unity:

製品ページ(英語) https://developers.arcgis.com/unity/

リリースノート(英語) https://developers.arcgis.com/unity/reference/release-notes/

Esri ArcGIS Blog(英語)  https://www.esri.com/arcgis-blog/products/unity/developers/announcing-arcgis-maps-sdk-1-3-for-unity/