『PLATEAU』の都市3Dデータ形式CityGMLをFBXに変換してUnityで遊ぶ
『PLATEAU(プラトー)』という国土交通省が進める 3D都市モデル整備・活用・オープンデータ化 のプロジェクトにおいて、現在全国50以上の都市の3Dモデルがオープンデータで公開されています。
私の住んでる広島県では、建物3Dデータを取得できるのは呉市だけだったので、呉市のデータをダウンロードして、clusterのワールドにしてみました。
とりあえず、PLATEAUの呉市3Dデータをclusterのワールドにアップしてみました。#PLATEAUhttps://t.co/LjqWzgl1t0 pic.twitter.com/rve5dRdqON
— たつや (@tatsuya1970)
clusterのワールドのデータはUnityで作ります。
Unityで利用するために、PLATEAUの3Dデータ形式CityGMLをFBXに変換する方法をブログに残します。
(東京都内などは最初からFBXなので、こんな手間は不要です)
手順
こちらの資料を参考にしました。
「3D都市モデルのデータ変換マニュアル」(リンク先のPDFの1つ)
https://www.mlit.go.jp/plateau/libraries/
ここから3D都市モデルデータをダウンロード
https://www.geospatial.jp/ckan/dataset/plateau
(2020.6.26更新)
2021年9月に3D都市モデル(CityGML形式)に記述されたURLが変更になりましたので、さきほどダウンロードした3D都市モデルのURLを修正する必要があります。
方法はGithub に書かれていて、
「3D都市モデルのファイル内の名前空間とschemaLocationに記載されている旧URLを、新しいURLに更新してください」とのこと。
具体的には、3DデータをVisual Studio 等のテキストエディタで開き、スクリプトの中の文字列を新URLに一斉に置き換えすれば直るはずです。
とはいえ、これだけではよく分からないので、もっと具体的な方法を以下記載します。
ここではVisual Studio Code (以下VSCode)での変換方法を記載します。
ここを参考にしました。ありがとうございました。
https://onishi-noboru.com/vscode-how-to-find-and-replace-text-in-multiple-files
VSCodeを起動して、メニューから[ファイル]→[フォルダーを開く]をクリックし、該当のフォルダを選択して、開きます。
左側にフォルダ内のファイルが一覧表示されます。
そのまま、以下のコマンドを押す。
Windows:Control + Shift + H
Mac:Command + Shift + H (未検証)
これで、開いているファイル全てを一括で検索・置換できるようになるので、それぞれの欄にさきほどのGithubで指定のURLを入力する。
新旧URLを入力したら、「Replace All」ボタンをクリック
先ほどのGithubにあるURLを全て変換したら、URLの修正作業は終了です。
では、ダウンロードファイルをFBXファイルに変換する方法を以下。
まず、ダウンロードファイルの中のPDFで3Dモデルにしたい番号を控える(あとで必要)
下図のような感じ(呉市のPDFより)
次に、FMEというソフトをインストール
(凄く高価なソフトなので、Free Trialで)
https://www.safe.com/fme/fme-desktop/
インストールしたら
Data-Conversion-Manual-for-3D-City-Model
をここからダウンロード
https://github.com/Project-PLATEAU/Data-Conversion-Manual-for-3D-City-Model
ダウンロード、解凍したら、
citygml2fbx.fmwt
を開く。
こんな画面
左側の[Input bldg] を右クリック
[Edit ‘Input: bldg [CITYGML]’ Parameters…]を選択
下画像のとおり、[…]をクリックし、FBXに変換したいcityGMLファイル(建物 bldg)を選択する。
(冒頭で控えた番号のあるファイルを選択)
続いて、先ほどと同様に
下画像のとおり、右側の[Input: dem]を右クリックし
FBXに変換したいcityGMLファイル(地形 dem)を選択する。
(冒頭で控えた番号のあるファイルを選択)
次に、保存先を指定する。
下画像のとおり、
・Output: bldg_lod2
・Output: bldg_lod1
・Output: dem
に、変換後のFBXファイルの保存先を指定する。
[Run]をクリックする
しばらくして、[Translation was SUCCESSFUL]
って出たらOK
あとは、FBXファイルをドラッグしてUnityへ。
(各ファイルの座標を同じにしたら揃う)
できた!!
以上
P.S.
呉市のデータでが該当しませんが、
FBXに変換したときにテクスチャとしてtifファイルが生成されたとき、tifファイルは重いのでjpgに変換するなど必要です。
以下のサイトを参考にしてください。
ad
- Tweet
-
-
この記事が気に入りましたら、ぜひTwitter、facebookボタンをお願いします。
ブログを書くモチベーションになります。よろしくお願いします。
ビットコイン投げ銭ウィジェット
関連記事
-
-
VRMをBlenderでFBXに変換したあとUnityにインポートすると倒れている問題の解決方法
環境 ・Blender 2.82 ※Cats Blender Plugin インストール済み
-
-
VRChat にワールドをアップロードする方法
参考サイト(公式) https://docs.vrchat.com/docs/creating-
-
-
【iPhoneアプリ開発備忘録】Unityで作ったアプリにiAdを実装する方法
UnityにiAdを実装する方法を 何回やっても毎回忘れるので、自分用に備
-
-
「1日で迷路ゲームを作ってみよう!」というUnityの勉強会に参加しました
今日は、 「1日で迷路ゲームを作ってみよう!」 http://bit.ly/1qHETE2
-
-
43歳の素人プログラマーのオッサンがUnityでゲームを作ってみた(第1弾:ブロック崩しもどきのクソゲー「RALLY BALL」)
私は、システム関係の仕事をしてるわけでなく、 約20年間普通の一般企業のサラリーマンをしてきました。