こちらは、ArcGIS アドベントカレンダー2025 の 19 日目の記事です。他の記事もぜひご覧ください。
ArcGIS Maps SDKs for Game Engines は、米国時間 12/3 に新しいバージョン 2.2 がリリースされました。(Unity / Unreal Engine)
本バージョンでは、待望の点群(ポイント クラウド)レイヤーがサポートされ、表示することが可能になりました。
そこで今回は、東京都が公開している区部点群データを利用して、ArcGIS Maps SDK for Unity に点群を表示したいと思います。(区部点群データは、は東京都デジタルサービス局デジタルサービス推進部デジタルサービス推進課によって作成され、CC-BY-4.0 ライセンスで公開されています。ライセンスに関する詳細はこちらをご覧ください。)
また本記事では、点群からポイント クラウド データセットを作成するため、ArcGIS Pro の 3D Analyst ライセンスが必要になります。ライセンスをお持ちでない方は、ArcGIS Online で共有されているデータをお使いいただくことで、点群の表示を行うことができます。詳しくは、記事の末尾をご覧ください。
まず、公開されている区部点群データをダウンロードします。G空間情報センターにアクセスし、「東京都デジタルツイン実現プロジェクト 区部点群データ」と検索するか、こちら からデータセットにアクセスします。いくつかあるデータから、「オリジナルデータ(DSM)及びグラウンドデータ(DEM)」を選択し、東京タワーの含まれる範囲を選択します。範囲が選択された状態で左にあるダウンロード アイコンを押下するとダウンロードが開始します。
複数の範囲を選択していると、それぞれの範囲が別のzip 形式でダウンロードされます。これらを展開すると .las というファイルが確認できます。これが点群のファイルです。このままだとバラバラな上、ArcGIS Maps SDKs for Game Enginesでレイヤーとして扱えないため、ArcGIS Pro でデータを整理し、シーン レイヤー パッケージ(.slpk)として出力していきます。
ここからは、ArcGIS Pro を用いて点群データをまとめ、.slpk として出力していきます。また、ArcGIS Pro を利用するにあたり、基本的な操作は割愛させていただきます。詳しくは、ArcGIS リソース集や、米国Esri が提供するドキュメントをご覧下さい。
ArcGIS Pro でプロジェクトを作成し、不要なレイヤーを削除します。その後、[カタログ]から先程ダウンロードした .las ファイルを選択し、シーンに読み込みます。
このままでは、まだバラバラのレイヤーなので、ジオプロセシング ツールの [LAS データセットの作成] を利用して、1つのレイヤーにまとめます。
入力ファイルに、シーンに存在するレイヤーを指定し、任意の名前を[出力 LAS データセット]に指定します。その後、座標系に「GCS_WGS_1984」を設定し、実行します。(座標系は任意のもので構いませんが、ゲームエンジンで座標指定する際に GCS_WGS_1984 を指定するため、ここではこの値を設定しています。)
実行すると、指定した名前のレイヤーが出力されるので、LAS データセットの作成に使ったレイヤーを削除します。
これで、レイヤーを1つにまとめる事ができました。しかし、デフォルトのシンボル表示が [標高] となっており、実際の見た目と異なると思いますので、シンボルを [RGB] に変更します。また、シンボル スケールも気持ち大きくしておくと、ゲームエンジン上で表示した際に、きれいに表示されます。
最後に、メタデータを編集して、著作権情報を入力します。
レイヤーの [プロパティ] から[メタデータ]の項を開き、[著作権]の欄に入力してください。
ここまで来たら、あとは出力するだけです。ジオプロセシング ツールの [点群シーン レイヤー コンテンツの作成] を利用して、.slpk を出力してください。
データの準備が完了したので、いよいよゲームエンジン上に点群を表示していきます!
とは言えレイヤーを表示するだけなので、非常に簡単です。地図の表示は、ArcGIS 開発リソース集をご確認ください。
レイヤーを追加する際は、[Layers] タブの下部、[+ Add New] からポップアップを開き、ファイルを指定してください。このとき、[Type] を [ArcGIS Point Cloud Layer] に変更するのを忘れずに!
また、著作権の表示は、Package Manager からサンプルをインポートし、AttributionDisplay.prefab を導入すると簡単に行うことができます。
下記のように表示することが可能です。著作権も表示されています。
本稿では、ArcGIS Maps SDK for Unity で点群を表示してみました。今回はローカルにおいた .slpk を読み込みましたが、オンライン上のレイヤーをお使いいただくことも可能です。
例えば、3D City Experience Lab. が公開しているデータを ArcGIS Pro を用いて編集した、「ShibuyaUnderground_webmercator」などすぐにお使いいただける国内データもございます。
皆さんもぜひ、ゲームエンジンでお持ちの点群データを表示してみてください。
また、アドベント カレンダー 23 日目には、同じく新機能である3D ビルディング シーン レイヤーに付与されているフィーチャの属性情報を取得します。 こちらもお見逃しなく!
ArcGIS Maps SDKs for Game Engines