はじめに
これは MIERUNE AdventCalendar 2022 21日目の記事です。
昨日は @kntoshiya さんによる QGISのフィールド計算機などにおける式についてまとめてみた でした。
今年の11/30に発表された、Cesium for Unityを使って3D Tiles形式のPLATEAUデータを表示してみたいと思います。
@northprintさんによる、Cesium for Unity クイックスタート とテーマが一緒でした!
私とは少し違う手順で実施しているようなので、ぜひこちらの記事も読んでみてください!
動作環境
OS: Window 10
Unity Hub: バージョン3.2.0
Unity: バージョン2021.3.16f1
PLATEAUとは
概要
国土交通省が主導する3D都市モデル整備・活用・オープンデータ化プロジェクトです。
3D都市モデルには、家屋やビルなどの「建築物」、都市計画区域などの「都市計画決定情報」、土地の用途を示した「土地利用」、都市のインフラである「道路」や「橋梁」など、都市に関するデータが格納されています。
データ形式
PLATEAUデータには、様々なデータ形式があります。
例えば、CityGML、3D Tiles、MVT、ファイルジオデータベース、OBJ、FBXなどなど。。
今回はCesium for Unityを使うので、「3D Tiles」を採用します。
データの取得
データはG空間情報センターからダウンロード可能です。
また、PLATEAU公式がPLATEAU配信サービス(試験運用)で3D Tilesを配信しています。
データのダウンロードが不要になるので、今回は配信サービスを利用します。
LOD
LOD(Level of Detail)とは、3D都市モデルに含まれている地物の詳細度です。
建築物はLOD0からLOD4までが定義されています。
画像の出典:国土交通省 Project PLATEAU
Cesiumとは
3Dの地理空間アプリケーションを作成するためのプラットフォームです。
いくつかのソリューションがあり、代表的なものは以下になります。
- Cesium ion
- CesiumJS
- Cesium for Unity
- Cesium for Unreal
- Cesium for O3DE
画像引用:The Cesium Platform
Unityとは
Unityは、Unity Technologiesが開発・販売しているゲームエンジンです。
個人で、収入ならびに資金調達(自己資金を含む)の過去12ヶ月の合計が年間 10 万ドルを超えない場合、無料で利用できます。
所属する会社の年間収益、ならびに資金調達(自己資金を含む)の過去12ヶ月の合計が20万米ドル以上の場合は有償ライセンスが必要です。
(2022/12/17時点の情報です。最新の情報は公式サイトを参考にしてください。)
UnityでPLATEAUデータを表示する手順についてはこちらの記事をご覧ください。
Cesium for Unityとは
Cesiumの3D地理空間機能と、3D TilesをUnityエコシステムと組み合わせることができます。
画像引用:Cesium for Unity
手順
Cesium for Unity用ファイルダウンロード
Cesium for Unity公式を開きます。
クリックすると、Releaseページに遷移します。
執筆当時はバージョン0.1.1でした。
Assetから、CesiumForUnitySamples-v0.1.1.zip をダウンロードします。
ダウンロードしたZIPファイルを任意のフォルダに展開します。
UnityでCesium for Unity読み込み
Unity Hubを起動します。
Projectsタブから、Openをクリックします。
上でダウンロード&展開したフォルダを選択して、「Open」をクリックします。
Cesium for UnityのサンプルはUnityのバージョン2021.3.10f1 で作成されたようです。
私の環境ではバージョン2021.3.10f1 以下のUnityしかインストールされていなかったので、Choose another Editor versionをクリックした後にInstall Editor versionをクリックして、バージョン2021.3.16f1のUnityをインストールしました。
バージョン2021.3.10f1以上であれば問題ないかと思います。
ProjectsのAssets -> Scenes -> 01_CesiumWorldを選択して、ドラッグ&ドロップでHierarchyに追加します。
Cesium for Unityの案内文のような表示と、Cesium World Terrain、Cesium OSM Builidngsが表示されました。
視点の設定
HierarchyからCesiumをクリックして、OriginのLongitude、Latitude、Heightで緯度経度高さを指定できるようです。
今回は東京駅付近に設定しました。
Cesium for UnityでPLATEAU建物データを表示
今回は、PLATEAU公式の3D Tiles配信サービスを使って、3D Tiles形式のPLATEAUの建物データを表示していきます。
HierarchyからCesium OSM Builidngsをクリックします。
Sourceから、以下を編集します。
- Tileset Source
- 初期状態の「From Cesium Ion」から、「From Url」に変更します。
- URL
- PLATEAU公式の3D Tiles配信サービスから、お好みのデータセットのtileset.jsonを指定します。
- 今回は、千代田区のテクスチャ付きの建物データ(https://plateau.geospatial.jp/main/data/3d-tiles/bldg/13100_tokyo/13101_chiyoda-ku/texture/tileset.json )にしました。
おわりに
Unityで、馴染みのある3D Tiles形式のPLATEAUデータを簡単に表示できてびっくりしました。
ゲームエンジンの世界にGISが入っていくのもいいですね~
ちなみに、記事書いてる途中で編集が全部消えて絶望しましたが、めげずに書き直しました(涙目)
こまめにセーブを忘れるなよ!おじさんとの約束だ!
参考文献
明日は@nokonoko_1203 さんです!お楽しみにー