『PLATEAU』の都市3Dデータ形式CityGMLをFBXに変換してUnityで遊ぶ(旧)
本件は古い情報です。
Windowsの場合、2022年12月に SDKが作成され、ここに記載のようなことはしなくても簡単にできます。
こちらをリンク先をご覧ください。
https://synesthesias.github.io/PLATEAU-SDK-for-Unity/index.html
以下、元のブログ記事です。
『PLATEAU(プラトー)』という国土交通省が進める 3D都市モデル整備・活用・オープンデータ化 のプロジェクトにおいて、現在全国50以上の都市の3Dモデルがオープンデータで公開されています。
私の住んでる広島県では、建物3Dデータを取得できるのは呉市だけだったので、呉市のデータをダウンロードして、clusterのワールドにしてみました。
https://t.co/LjqWzgl1t0
clusterのワールドのデータはUnityで作ります。
Unityで利用するために、PLATEAUの3Dデータ形式CityGMLをFBXに変換する方法をブログに残します。
(東京都内などは最初からFBXなので、こんな手間は不要です)
手順
こちらの資料を参考にしました。
「3D都市モデルのデータ変換マニュアル」(リンク先のPDFの1つ)
ここから3D都市モデルデータをダウンロード
(2020.6.26更新)
2021年9月に3D都市モデル(CityGML形式)に記述されたURLが変更になりましたので、さきほどダウンロードした3D都市モデルのURLを修正する必要があります。
方法はGithub に書かれていて、
「3D都市モデルのファイル内の名前空間とschemaLocationに記載されている旧URLを、新しいURLに更新してください」とのこと。
具体的には、3DデータをVisual Studio 等のテキストエディタで開き、スクリプトの中の文字列を新URLに一斉に置き換えすれば直るはずです。
とはいえ、これだけではよく分からないので、もっと具体的な方法を以下記載します。
ここではVisual Studio Code (以下VSCode)での変換方法を記載します。
ここを参考にしました。ありがとうございました。
VSCodeを起動して、メニューから[ファイル]→[フォルダーを開く]をクリックし、該当のフォルダを選択して、開きます。
左側にフォルダ内のファイルが一覧表示されます。

そのまま、以下のコマンドを押す。
Windows:Control + Shift + H
Mac:Command + Shift + H (未検証)
これで、開いているファイル全てを一括で検索・置換できるようになるので、それぞれの欄にさきほどのGithubで指定のURLを入力する。

新旧URLを入力したら、「Replace All」ボタンをクリック

先ほどのGithubにあるURLを全て変換したら、URLの修正作業は終了です。
では、ダウンロードファイルをFBXファイルに変換する方法を以下。
まず、ダウンロードファイルの中のPDFで3Dモデルにしたい番号を控える(あとで必要)
下図のような感じ(呉市のPDFより)

次に、FMEというソフトをインストール
(凄く高価なソフトなので、Free Trialで)
インストールしたら
Data-Conversion-Manual-for-3D-City-Model
をここからダウンロード
ダウンロード、解凍したら、
citygml2fbx.fmwt
を開く。
こんな画面

左側の[Input bldg] を右クリック

[Edit ‘Input: bldg [CITYGML]’ Parameters…]を選択
※建物データの変換が不要の場合は Disable ‘Input: bldg [CITYGML]’を選択
下画像のとおり、[…]をクリックし、FBXに変換したいcityGMLファイル(建物 bldg)を選択する。
(冒頭で控えた番号のあるファイルを選択)

続いて、先ほどと同様に
下画像のとおり、右側の[Input: dem]を右クリック
※地形データの変換が不要の場合は Disable ‘Input: dem [CITYGML]’を選択

FBXに変換したいcityGMLファイル(地形 dem)を選択する。
(冒頭で控えた番号のあるファイルを選択)
次に、保存先を指定する。
下画像のとおり、
・Output: bldg_lod2
・Output: bldg_lod1
・Output: dem
に、変換後のFBXファイルの保存先を指定する。

3D都市モデルは緯度・経度による測地系となっているが、平面直角座標に変換することもできる。
(ここでは省略、「3D都市モデルのデータ変換マニュアル」(リンク先のPDFの1つ)に記載ありhttps://www.mlit.go.jp/plateau/libraries/)
[Run]をクリックする

しばらくして、[Translation was SUCCESSFUL]
って出たらOK
あとは、FBXファイルをドラッグしてUnityへ。
(各ファイルの座標を同じにしたら揃う)

できた!!

以上
P.S.
呉市のデータでが該当しませんが、
FBXに変換したときにテクスチャとしてtifファイルが生成されたとき、tifファイルは重いのでjpgに変換するなど必要です。
以下のサイトを参考にしてください。
ad
- Tweet
-
-
この記事が気に入りましたら、ぜひTwitter、facebookボタンをお願いします。
ブログを書くモチベーションになります。よろしくお願いします。
ビットコイン投げ銭ウィジェット
関連記事
-
-
3D都市モデルPLATEAUのハッカソン「PLATEAU Hack Challenge 2022」に参加したよ(その1:福岡)
9月17日・18日に福岡市のエンジニアカフェで行われた3D都市モデルPLATEAUのハッカソン「
-
-
PLATEAUの3D都市モデルをclusterにアップしたらアバターがプルプル震える問題の解決方法
タイトル通り、こんな状態になってしまって、ヘルプのツイートをしました。 Plateau をFBX化
-
-
『広島県版 新型コロナウイルス感染症対策サイト』を運営してみて
全国で新型コロナウイルス感染症に係る緊急事態宣言が解除された最初の週末を迎え、ひとまず第一波
-
-
【Unityエラーメモ】 ビルドのときのエラー 「tundra: error」
Unityのエラーメモ。 前まではうまく行ってたのに、 ビルドしたら、以下のエラーが。