PLATEAU & Unreal Engine & 流体解析に挑戦してみた結果【第1回:PLATEAUの3DモデルをBlender経由でUnreal Engineに取り込む】
こんにちは、エヌデーデーの富永です。
国土交通省のPLATEAUが提供している3D都市モデルを利用してビル風の流体解析を行い、その結果をUnreal Engine上で表現することに挑戦しました。目的としましては、ドローンが飛行可能な風速領域をUnreal Engine上で表現することであり、実現すれば幅広い応用が期待できると考えています。
PLATEAUとは、国土交通省が主導する、日本全国の3D 都市モデルの整備・オープンデータ化プロジェクトです。PLATEAUが公開している3D都市データは自由に利用することが可能ですので、3Dの建物データを流体解析のモデルに利用することとしました。
この記事はシリーズ化して、次ような内容でまとめていく予定です。
- 【第1回:PLATEAUの3DモデルをBlender経由でUnreal Engineに取り込む】←この記事
- 【第2回:CADモデル、メッシュの作成】
- 【第3回:流体解析ソフトでビル風のシミュレーションをする】
- 【第4回:流体解析結果をUnreal Engineで可視化する】
- 【第5回:風速データをUnreal Engineのシミュレータに反映する】
第1回の本記事では、PLATEAUからダウンロードしたデータをUnreal Engineに取り込むところまでの手順を紹介します。
PLATEAUからデータをダウンロードする
今回は中野坂上にある本社ビルを対象に流体解析を行っていくことにします。まずは、利用する3D都市データをダウンロードするため、PLATEAUのホームページ[1]からG空間情報センターにアクセスし、東京23区を選択します。
FBXのデータをダウンロードします。
ダウンロードしたファイルの中の「bldg」フォルダ内に「lod1」フォルダと「lod2」フォルダがあります。LODについては後ほど説明します。LOD2のデータがあればそれを使いたかったのですが、残念ながら中野坂上周辺はLOD1のデータしかないためこちらを使います。
23区すべてのデータがダウンロードされているため、データ区分を参照して使うデータを選びます。ここでは、中野坂上が含まれる区画のデータ(53394534_bldg_6677.fbx)を使います。区画の確認は「bldg」と同一フォルダ内にあるPDF(13100_indexmap_op.pdf)で確認できます。
◇LOD(Level of Detail) とは
LODは3D都市モデルに含まれている地物の詳細度を示すものです。
LOD1よりLOD2の方が形状が詳細であり、また3D都市モデルのLOD2ファイルはテクスチャ付きです。
ダウンロードしたデータをBlenderに取り込む
ここからはBlenderを用いて3D都市モデルのデータを加工していきます(参考[2])。Blenderを立ち上げたらCollection内のCamera, Cube, Lightは削除しておきます。
File→Import→FBXを選択して取り込むFBXファイル(53394534_bldg_6677.fbx)を指定します。
Blenderはcmスケールで取り扱われるため、mスケールである3D都市モデルとスケールを一致させるためScaleを100にして取り込みます。
PLATEAUデータは複数の区域を組み合わせられる仕組みであることから、読み込んだデータは中心位置には来ていないはずです(おそらく東京周辺のデータは平面直角座標系[3]の9系における基準点が中心位置になっていそうです)。
編集操作しやすいようにモデルを画面の中心に配置します。
キーボードの「7」を押して上から見た表示に変更します。「A」を押すと取り込んだすべてのモデルが選択されます。「.」を押してすべてのモデルが画面内に収まるように表示されます。ここで「Shift + C」を押すと原点とモデルが含まれた画面表示になります。Moveを選択しダウンロードしたモデルを中央に移動させます。
中央に移動出来たらObject→Apply→Locationを選択します。これでモデルが中央に配置されました。
Blenderで編集する
本社周辺以外の建物モデルは評価範囲に含めないため、まとめて削除します。
本社周りのビル以外を選択して「Delte」を繰り返します。
(もっとスマートなやり方があれば教えてほしいところです。)
Unreal Engineに取り込めるファイル形式で出力する
Unreal Engineで取り込めるFBX形式で出力します。
File→Export→FBXを選択します。
これでBlenderの作業は完了です。
Unreal EngineでFBXファイルをインポートする
Unreal Engineを起動します。今回はUE4.27.2を使用します(今後の記事で利用するAirSimと呼ぶプラグインがUE5ではサポートされていないため)。
新規プロジェクトはゲームを選択します。
テンプレートはブランクを選択します。
プロジェクト設定は特に変更せず、保存フォルダとプロジェクト名を設定して「プロジェクト作成」をクリックします。
エディターが起動したら先ほど作成したFBXファイルをコンテンツブラウザ上にドラッグ&ドロップします。すると、ポップアップが開くので「Combine Meshes」にチェックを入れて「全てインポート」をクリックします。
インポートしたデータをビューポートにドラッグ&ドロップすると、ビューポート上に3Dのビル群が表示されます。
LOD2ファイルであれば、Blender出力時にテクスチャを含めて出力すると、Unreal Engine上でテクスチャありの建物を表示することができます。
次回はBlenderで加工したデータをCADソフトに取り込み、CADモデルを作成して流体解析用にメッシュ化を行っていきます。