![見出し画像](https://assets.st-note.com/production/uploads/images/149998263/rectangle_large_type_2_0d947dfedbf4320c59d9a6646cec9f51.png?width=1200)
PLATEAU SDK for Unityを使用してリアルな日本の都市ゲームを開発する方法: 都市シミュレーションと3D都市モデリングの包括的ガイド
![](https://assets.st-note.com/img/1723084385291-BOVGCwHHyx.png?width=1200)
📚 PLATEAU SDK for Unityとは?
PLATEAU SDKは、日本の3D都市モデルプラットフォームであるPLATEAUのデータをUnity環境内で利用可能にするツールです。これにより、リアルな3D都市モデルを使用した様々なアプリケーションやゲームの作成が容易になります。
📓 PLATEAU SDKの使用事例
日本各地の3D都市モデルを使用して開発されたソリューションの例をいくつかご紹介します。
![](https://assets.st-note.com/img/1723084469807-6UgVjaYfa7.png?width=1200)
📓 PLATEAU SDKのサンプルプロジェクト
2024 GISサンプル: 都市情報を示すサンプル。
![](https://assets.st-note.com/img/1723084555782-4cH70p3m9u.png?width=1200)
2024 ゲームサンプル: 都市を舞台にしたゲームサンプル。
![](https://assets.st-note.com/img/1723084585022-wPYCz3Zsy2.png?width=1200)
📓 主な機能
![](https://assets.st-note.com/img/1723084719504-oqrVeddq0M.png?width=1200)
3D都市モデルデータの読み込み: PLATEAUプラットフォームが提供する高解像度の3D都市モデルデータをUnityにインポート。
地形と建物のレンダリング: 実際の地形や建物データに基づく高品質なレンダリングをサポート。
パスファインディングとシミュレーション: 都市内でのパスファインディングや各種シミュレーションを実装可能。
カスタマイズ: Unityの機能を活用して、ユーザーの要求に応じた3D都市モデルのカスタマイズが可能。
統合性と拡張性: 他のシステムやAPIとの容易な統合および機能拡張が可能。
📓 CityGMLフォーマットとは?
CityGMLは、都市および地理情報を3Dで表現するためのXMLベースのオープン標準フォーマットです。Open Geospatial Consortium (OGC)によって開発され、都市の様々な要素をモデリングおよび可視化するために設計されています。
複数の詳細レベル (LOD): 様々な詳細レベルで都市モデルを作成可能。LOD1はシンプルなブロックモデルを、LOD2は屋根の形状を、LOD3は外部の詳細を、LOD4は内部構造を含む。
フィーチャベースのモデリング: 建物、交通ネットワーク、土地利用、地形、植生などの様々なテーマクラスを通じて都市オブジェクトをモデリング。各クラスには対応する属性と幾何情報が含まれる。
属性と関係: CityGMLオブジェクトには、建物の高さや用途などの属性や、他のオブジェクトとの関係(例えば、建物が位置するエリアや道路との接続)を含めることができ、よりリアルで意味のある都市モデルを作成可能。
拡張性: エネルギー消費分析や騒音モデリングなど、特定のアプリケーションニーズに応じたユーザー定義の拡張が可能。
互換性: 他のGISや3D可視化ソフトウェアとの互換性を維持し、様々なアプリケーションで効率的に都市データを利用可能。
📓 CityGMLフォーマットはPLATEAU SDK以外でUnityに利用可能か?
CityGMLは主にGISおよび3D都市モデリングのフォーマットであり、Unityのようなゲームエンジンでは直接サポートされていません。そのため、CityGMLデータをUnityで使用するには変換が必要です。
CityGML変換ツールの使用: CityGMLデータをUnityでサポートされているフォーマット(COLLADA (.dae)、FBX、OBJなど)に変換。FME (Feature Manipulation Engine) や3DCityDBインポーター/エクスポーターなどの変換ツールやソフトウェアを利用可能。
専用プラグインやSDKの使用: CityGMLデータをUnityプロジェクトに統合するのに役立つ専用のプラグインやSDKを使用。例えば、一部のGISソフトウェア会社は、CityGMLデータのUnity統合を容易にするGIS SDKを提供。Cesium for Unityのようなプラグインは、Unityで3Dタイルの地理データを使用可能にする。
カスタムスクリプトの作成: CityGMLファイルを解析し、UnityのGameObject形式に変換するカスタムスクリプトを作成。これには、CityGMLファイルをXMLとして解析し、各オブジェクトを適切なUnity形式に変換する作業が含まれる。この方法は時間がかかりますが、特定の要件に合わせてデータを処理する利点があります。
この文書では、PLATEAU SDKをCityGML変換ツールの一つとして使用しています。
📚 UnityでPLATEAUモデルを使用する
📓 作業環境
MacOS
Unityエディター バージョン 6000.0.5f1 Silicon
Universal RP 17.0.3
PLATEAU SDK for Unity 2.3.2 (リリース)
📓 PLATEAU SDK for Unityのインストール
ダウンロードしたPLATEAU SDK for Unity 2.3.2を解凍し、Project/Packagesディレクトリに配置します。その後、パッケージマネージャーからPLATEAU SDK for Unity 2.3.2のpackage.jsonを見つけます。
![](https://assets.st-note.com/img/1723084847426-eFAqKkfRYY.png?width=1200)
![](https://assets.st-note.com/img/1723084847512-QuNOZz1czE.png?width=1200)
📓 PLATEAU 3Dモデルのダウンロード(ローカルデータの使用)
3D都市モデル(Project PLATEAU)ポータルサイトからインポートする都市を選択し、Unityに直接インポート可能なFBX形式でモデルをダウンロードします。
![](https://assets.st-note.com/img/1723084867529-qmh8pQAGN3.png?width=1200)
特定の都市の最新データがFBXを提供していない場合、PLATEAU SDKを使用した変換が必要です。CityGML形式をダウンロードし、PLATEAU SDKのインストール手順に従ってFBXに変換します。PLATEAU SDKはバージョン2以降をサポートしています。
![](https://assets.st-note.com/img/1723084884481-v72N12eBuO.png?width=1200)
都市内の特定エリアのみをダウンロードしたい場合、エリアメッシュコード(緯度、経度)の範囲図を確認し、その番号に対応するFBX形式のファイルをダウンロードします。
![](https://assets.st-note.com/img/1723084890807-ogAqU5ilaF.png?width=1200)
![](https://assets.st-note.com/img/1723084894662-46etvNxmbm.png?width=1200)
![](https://assets.st-note.com/img/1723084898929-iKcPEoasmn.png?width=1200)
📚 3DモデルのUnityへのインポート
📓 警告 - MacOS特有の問題
UnityのトップタブからPLATEAU SDKを開く際、MacOSで悪意のあるソフトウェアに関する警告が表示される場合があります。
設定 — プライバシーとセキュリティ — セキュリティ設定 — “libplateau.dylib”ファイルを許可するに移動します。
正常な動作を確認します。
![](https://assets.st-note.com/img/1723084984842-7noMqnTtWc.png?width=1200)
![](https://assets.st-note.com/img/1723084986681-C78hqXGVj3.png?width=1200)
![](https://assets.st-note.com/img/1723084989412-icBEwH5hJO.png?width=1200)
📓 A. ローカルからのインポート
ダウンロードしたFBXをAssetsの任意のルートに配置し、シーンに追加します。テクスチャがインポートされない場合は、メッシュアセットのマテリアルタブで「テクスチャを抽出」ボタンをクリックし、希望のフォルダにテクスチャをエクスポートします。テクスチャは自動的にメッシュに適用されます。
![](https://assets.st-note.com/img/1723085010422-bOZ4kNNInh.png?width=1200)
![](https://assets.st-note.com/img/1723085010448-kgYZtoXkPy.png?width=1200)
![](https://assets.st-note.com/img/1723085010395-AqMD8RMgFF.png?width=1200)
📓 B. サーバーからのインポート
UnityのトップタブからPLATEAU SDKを開き、インポート元として"サーバー"を選択します。
"データセットの選"択で"都道府県"から追加する地域を選び、その地域の都市を選択します。データ設定に近い"基本座標系"を設定します。
![](https://assets.st-note.com/img/1723085064005-slshf7TiWP.png?width=1200)
シーンビューに移動し、追加する範囲を指定します。
![](https://assets.st-note.com/img/1723090082186-PkxcGjhjzT.png?width=1200)
![](https://assets.st-note.com/img/1723085105709-695uBWmClr.png?width=1200)
PLATEAU SDKタブで、地物別設定が開きます。ここでは主要な設定のみを説明します。
![](https://assets.st-note.com/img/1723085127454-gmkSuh6v4X.png?width=1200)
一般設定
テクスチャを含める
テクスチャを結合する
Mesh Colliderをセットする
モデル結合
最小地形ユニット(壁)
主要地形ユニット(建物、道路など)
エリアユニット
属性情報を含める
すべての設定が完了したら、"モデルをインポートする"を選択し、ダウンロードを進めます。
![](https://assets.st-note.com/img/1723085139579-u1daCHvSUI.png?width=1200)
ダウンロードが完了したら、GameビューおよびSceneビューで結果を確認します。
![](https://assets.st-note.com/img/1723085145036-F2Q8WDJRJW.png?width=1200)