Plateau試行錯誤メモ

はじめに

はじめまして。この記事は、国土交通省が2020年度からスタートしたPLATEAU(プラトー)Projectで入手できる東京23区のオープンデータをUnityに軽量化して持ってくるまでの試行錯誤をメモとして残すために作りました。

試行錯誤の流れとしては、
東京23区からCityGMLをダウンロード ->FME DesktopでFBX形式に変換 ->Unityにインポート->SIMPLYGONで軽量化->地面(DEM)にテクスチャをつけてみる
です。

もっと良い方法があるよ、という情報がありましたら情報共有してくださると幸いです。

使用ツール

FME Desktop
・Unity
・SIMPLYGON
Blender
Visual StudioあるいはXmlEditor、もしくはTextSS.net
・Ralpha

基本の流れ

こちらの方の記事を参考にしました。 https://qiita.com/matchyy/items/abed4930d88bf324606a

qiita.com

CityGMLをFBX形式に変換

CityGML形式にした理由

東京23区公式ページからFBXではなくCityGMLをダウンロード、CityGMLをFBX形式に変換した理由として、CityGMLではテクスチャがのJpg化がすでに行われていて、Cinema4Dなどの有料ツールによるテクスチャパス変換を行う必要がないためです。

FME Desktopインストール

CityGMLをFBX形式に変換するには、FME Desktopという何万もする有料ツールを使用しますが、個人による利用や学生による利用(一定期間)は無料なので、ありがたく利用します。
FMEDesktopダウンロードページから、Free Trialボタンを押し、ダウンロードを行います。ダウンロード後ライセンスを求められますが、個人による利用や学生による利用を申請する場合ライセンスキーが届くまでに1日かかります。数日しか利用しないつもりなら、Free trialのほうを選択してサクッと使いましょう。

インストール後

CityGMLからFBXにデータ変換するまでの流れは、Plateau公式様の3D都市モデルのデータ変換マニュアルに従います。ただし、後述のエラーが出ないようにするため、ある工程を挟みます。

CityGML内のURLを更新

Plateau公式Githubページでは、以下の記述があります。 ↑図が何を示しているかというと、2021年9月からCityGML内に記述されているURLは使えないよ、新しいURLにCItyGMLの中のURLを書き換えてねです。 これを行わずに、FME Desktopで変換作業を行うと、HTTP 404 Not found・・・というエラーが出ます。
そのため、CItyGMLを書き換えていきましょう。書き換える対象はudxフォルダ内のbldgフォルダに入っているCityGMLファイルです。 CityGMLの中の記述を書き換える方法として、Visual StudioXML Editorで1つ1つCityGMLを開いてURLを書き換える方法か、TextSS.Netでまとめて全てのCityGMLを書き換える方法があります。

www.vector.co.jp URLを書き換えは、 「http://www.kantei.go.jp/jp/singi/tiiki/toshisaisei/itoshisaisei/iur/uro/1.4」を 「https://www.chisou.go.jp/tiiki/toshisaisei/itoshisaisei/iur/uro/1.5」に(2箇所あります)、
http://www.kantei.go.jp/jp/singi/tiiki/toshisaisei/itoshisaisei/iur/schemas/uro/1.4/urbanObject.xsd」を 「https://www.chisou.go.jp/tiiki/toshisaisei/itoshisaisei/iur/schemas/uro/1.5/urbanObject.xsd」(1箇所)に書き換えます。

CityGML2FBXを起動

はじめに、Plateau公式Githubページ からcitygml2fbx.fmwtをダウンロードし、FME Desktopで開きます。 Plateau公式様の3D都市モデルのデータ変換マニュアルに従い、FBX変換を進めます。Input bldg、dem、Output bldg_lod2 、bldg_lod1、demをそれぞれ右クリックをし、Edig Parametersでファイル、フォルダを選択し、設定が終わったらRunを押すことで変換が行えます。HTTP 404 Not Foundが出た方は、前述のCityGMLのURLを更新ができていないのでもう一度確認してください。

Unityにインポートしてみる

出来たLOD2FBX、およびDEMをUnityにインポートしてみます。LOD2FBXはfbmフォルダも同時にドラッグしてインポートしてください。なお、インポートは建物の量によって数十分かかります。 インポートが完了したら、ProjectウィンドウのLod2をクリックし、インスペクタからExtract Materialsを押し、任意のフォルダを選択します。 選択が完了したら、Lod2、DEMをヒエラルキーウィンドウにドラッグすると以下のようになります。DEMはテクスチャが存在しないため真っ白ですが、インポートが終わりました。

軽量化

インポートが終わってやれやれというところですが、テクスチャが大量に分かれているなどこのままだと非常に重いので軽量化を行います。Windows限定になりますが、SImplygonという軽量化ツールを使用しました。こちらの方の記事を参考にしてください。qiitaだけでなく、youtubeでもこの方の解説動画があるのでわかりやすいです。

qiita.com

地面(DEM)にテクスチャをつけてみる

地面にテクスチャがついていないのは殺風景ということで、BlenderとPlateauで配布されているGeoTIFFを使用してテクスチャを張り付けてみました。今回の東京23区ではGeoTIFFが配布されていますが、配布されていないところの場合は地理院の航空写真を使うのが良いでしょう。GeoTIFFをダウンロードし、今回使うエリアの533936.tiffをjpgに変換します。変換ツールはRalphaを使用しました。設定の下のドキュメントに右矢印がついているボタンを押し、フォーマット変換設定をJPEGイメージにしました。設定が完了したら変換を実行することでjpgに変換が出来ます。 あとはこのjpgを、BlenderでDEMに張り付けるだけです。具体的には、DEMをインポートし、テンキー7で真上から見下ろした状態にしてからDEMを選択してEdit Mode、キーボートのUを押して、Resetを押してから、Project from View(Bounds)、マテリアルタブから先ほどのjpgを追加、UV Editingで確認といった感じです。
こちらの方の記事を参考にしました。

original-game.com

qiita.com

貼り付けた結果がこんな感じです。至近距離になると地面のテクスチャがぼやけていて、とても残念なのですが、テクスチャを張り付けることが出来ました。FPSがあまり出ていないのですが、Oculus questで動くかなぁ…。Blenderでテクスチャを張り付けるやり方については、もし時間があれば追加で記述します。

さいごに

Plateauの3D都市モデルオープンデータ化はとても精密で凄い面白いのですが、軽量化などでいろいろ苦戦しました。もっといい方法があったら情報共有お願いいたします!