【Unity】PLATEAUデータを表示する

## はじめに
この記事は#30DayMapChallenge2022 29日目の記事です。
テーマはOut of my confor zoneです。
GISから離れて、Unityを使って東京23区のPLATEAUデータを表示してみます。

![image](https://raw.githubusercontent.com/tjukanovt/30DayMapChallenge/main/images/flyers/30dmc-2022.png)

https://30daymapchallenge.com/

## Unityとは
Unityは、Unity Technologiesが開発・販売しているゲームエンジンです。

個人で、収入ならびに資金調達(自己資金を含む)の過去12ヶ月の合計が年間 10 万ドルを超えない場合、無料で利用できます。
所属する会社の年間収益、ならびに資金調達(自己資金を含む)の過去12ヶ月の合計が20万米ドル以上の場合は有償ライセンスが必要です。
（2022/11/29時点の情報です。最新の情報は公式サイトを参考にしてください。）

https://forpro.unity3d.jp/plan/

## PLATEAUとは
国土交通省が主導する3D都市モデル整備・活用・オープンデータ化プロジェクトです。
3D都市モデルには、家屋やビルなどの「建築物」、都市計画区域などの「都市計画決定情報」、土地の用途を示した「土地利用」、都市のインフラである「道路」や「橋梁」など、都市に関するデータが格納されています。

## PLATEAUデータについて
### データ形式
PLATEAUデータには、様々なデータ形式があります。
例えば、CityGML、3D Tiles、MVT、ファイルジオデータベース、OBJ、FBXなどなど。。
今回はUnityで表示可能なFBXを採用します。

### FBX
3Dアニメーションソフトウェアに対応したファイルフォーマットです。
FBX (Filmbox) は、Kaydaraによって開発され、2006年よりAutodeskが所有するプロプライエタリな（独占的な。オープンの反対。）ファイル形式です。
3Dモデルの完全な定義が含まれている自己完結型の大きなバイナリファイルで、テクスチャ、メッシュ、マテリアル、リギング データ（存在する場合）など、モデルのすべてのリソースのコンテナとして機能します。

### データの取得
データは[G空間情報センター](https://www.geospatial.jp/)からダウンロード可能です。
また、PLATEAU公式が[PLATEAU配信サービス（試験運用）](https://github.com/Project-PLATEAU/plateau-streaming-tutorial)で3D Tilesを配信しています。
今回は、G空間情報センターからFBX形式のデータをダウンロードします。

### LOD
LOD（Level of Detail）とは、3D都市モデルに含まれている地物の詳細度です。
建築物はLOD0からLOD4までが定義されています。

![image](https://www.mlit.go.jp/plateau/uploads/2022/11/about_citygml_02.png)
画像の出典：[国土交通省 Project PLATEAU](https://www.mlit.go.jp/plateau/learning/tpc01-2/#p1_3_2)

## 事前準備
既にインストール済みのUnity Hub（バージョン3.2.0）を使います。
Unity Hubを開きます。

## データ表示
### 参考資料
PLATEAUのUnityハンズオン動画を参考に表示しました。
ぜひこちらをご覧ください！！

https://www.youtube.com/watch?v=4qyFknRTo9w

### 表示手順
新しいプロジェクトを作成します
すべてのテンプレート>3Dを選択し、任意のプロジェクト名を入れます
初回は読み込みに時間がかかりました・・

LOD1のFBXファイルをドラッグ&ドロップでProjectのAssetsに追加します
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2667439/7a61f643-8576-d035-1c90-9ed225e2c01b.png)

追加したProjectのAssetsからドラッグ&ドロップでシーンに追加します
この状態だと何も表示されませんが・・

ヒエラルキーから、FBXを右クリックして、「Move To View」をクリックすると、PLATEAUデータが画面に表示されます！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2667439/b1694e1a-00b2-5661-6323-f021307374a6.png)


### テクスチャを貼る
LOD2のFBXファイルを表示します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2667439/7bc3b9e8-c969-78b9-ca7e-b682204e1dec.png)


ProjectのAssetsのfbxをクリックすると、Inspectorが表示されます
Materialsをクリックして、LocationでUse External Materials（Legacy）を選択して、Applyをクリックします
![image](https://user-images.githubusercontent.com/83101503/204564204-5edad448-41c0-4cf1-b08f-665050eb30c2.png)


テクスチャがロードされ、数秒程度でテクスチャも表示されます！
![image](https://user-images.githubusercontent.com/83101503/204564439-fb167bcd-d903-45fc-93b5-823312e20e0d.png)

## おわりに
Unityだと簡単にPLATEAUデータをインポートできてよいですね～
アバター動かしてゲームとか作ってみたい。

## 参考文献
https://ja.wikipedia.org/wiki/Unity_(%E3%82%B2%E3%83%BC%E3%83%A0%E3%82%A8%E3%83%B3%E3%82%B8%E3%83%B3)

https://www.autodesk.com/products/fbx/overview

https://ja.wikipedia.org/wiki/FBX

https://www.filetypeadvisor.com/ja/extension/fb


https://www.mlit.go.jp/plateau/learning/tpc03-1/

https://www.mlit.go.jp/plateau/learning/tpc03-2/

https://www.mlit.go.jp/plateau/learning/tpc01-2/