『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ボタンをお願いします。
ブログを書くモチベーションになります。よろしくお願いします。
ビットコイン投げ銭ウィジェット
関連記事
-
clusterのワールド「バーチャルCamps」を作りました
先日、広島県のイノベーション創出拠点である「イノベーション・ハブ・ひろしまCamps」のバーチ
-
Unity でオブジェクトの影を出さない方法
通常はデフォルトで影が出る設定になってます。 影を出さないようにするには、 Inspe
-
【Unity】パーティクルで夜の街を表現してみた@バーチャル呉花火大会
リアルの呉花火大会が開催されるはずだった2021年9月25日に、clusterのバーチャル空間で
-
43歳の素人プログラマーのオッサンがUnityでゲームを作ってみた(第2弾:キーパンチシューティングゲーム「ALPHABET BOMBER 3D」)
Unityという開発ツールを使って、クソゲーを作るシリーズ第2弾です。 ちなみに、クソゲー第1弾はこ
-
ニコニコ動画でよく配布されてるMikuMikuDanceのデータをUnityで使う方法 〜これであなたもマイケル・ジャクソン!
ニコニコ動画で「モーション配布」という記載がある動画を見かけます。 これは、3Dアニメーショ