Blender GIS

無料の3DCGソフトBlenderに、Blender GISというアドオンを追加すると、現実の街並みのCGモデルを作れるらしいのでやってみました。

Blender と Blender GIS のインストール

Blender GISの公式ページによると、Blenderの一部のバージョンとの組み合わせでMacで動作しないと書いてあるのでBlenderは最新版を使いましょう。Blender本体はここからダウンロードしてインストールします。

Download — blender.org
The Freedom to Create.

Blender GISはGitHubから入手します。

GitHub - domlysz/BlenderGIS: Blender addons to make the bridge between Blender and geographic data
Blender addons to make the bridge between Blender and geographic data - domlysz/BlenderGIS

緑色の [Code] アイコンから [Download ZIP] します。解凍する必要はありません。Blender本体の [Edit] > [Preferences…] で設定画面を開いて、[Add-ons] > [Install] で先程のZIPファイルを指定します。[3D View: BlenderGIS] と表示された隣のチェックボックスをオンするとアドオンが有効になります。

その隣の三角マークをクリックすると詳細な設定項目が表示されます。[Basemap] > [Cache folder:] のフォルダーの場所を適当に決めてください。

3Dモデルの作成

以上の設定が終わるとBlenderに [GIS] というメニューが現れます。

[GIS] > [Web geodata] > [Basemap] と進んで読み込むマップの種類と指定してください。Sourceは “Google” で良いでしょう。Layerは衛星画像か通常の地図かを選択します。マウスホイールで拡大しますので、欲しい範囲を表示したらキーボードで「e」キーを押します。これで表示された範囲をメッシュとして切り出します。

次にメッシュデータをクリックして選択した状態で [GIS] > [Web geodata] > [Get elevation (SRTM)] > [OK] を実行すると高低差のデータが読み込まれ、平面だったマップが変形します。ただし、このデータは必ずしも正確ではないようなので、不要なら省略しても構いません。

さらに [GIS] > [Web geodata] > [Get OSM] > [OK] を実行するとビルや道路などの地形データが読み込まれます。このとき、”Elevation from object” は地形の高低差に合わせて物を配置してくれる機能です。buildingなど、認識したい項目を選択します。Shiftを押しながらクリックすると複数を選択できます。

暫く待つと町並みの3Dモデルが完成します。

作成したモデルをUnityにエクスポート

メッシュデータをクリックして選択し、[File] > [Export] でファイル形式を指定して保存できます。

Unityで利用するには.glb形式(.glTF 2.0)で保存します。Unityで.glbファイルを読み込むにはUniGlTFというプラグインが必要になります。いくつか解説ページがありますので参考にしてください。

【Unity】Blenderで作成した3DモデルをglTF形式でインポートする – XR-Hub
せっかくBlenderでマテリアル・テクスチャを設定しても、FBX形式では色・質感・ノーマルマップといった情報はエクスポートされません。 そのせいで、「マテリアルの再設定が手間だ」「Unit...
【Blender】glTF形式でエクスポートしてUnityにインポートするまでのスムーズな手順【Unity】
UnityってFBX形式やOBJ形式かを取り込むとテクスチャが全部ベロッて剥がれた状態からスタートになる。全部付け直し・・・コレが本当に煩わしい。建築の仕事だと笑えないレベル。昔(Unity5時代)は裏技チックな感じでテクスチャ→3Dデータ...

作成したモデルをSTLファイルにエクスポート

Fusion360や3Dプリンタで利用する場合は.stl形式で保存します。このとき、デフォルトのままだとスケールが合わないので、[Object Properties] > [Transform] > [Scale X/Y/Z] の値を変更しておきます。適当ですが 10000.0 くらいにしておくと良いようです。なぜそうなるか、詳細は不明です。

Fusion360の [挿入] > [メッシュを挿入] で.stlファイルを読み込むとこのようになります。

コメント