CGBoxの一部の記事にはアフィリエイト広告が含まれております。
【Blender3.4】「Blender GIS」を使って地形や街を作る方法

こんにちは!
コチラの記事では、フリーの3DCGソフト「Blender」を使う上で、ヒントになる情報を発信しています。
今回は、Blenderで地図データを扱う「GIS」ファイルから地形や街を作る方法について紹介します。
無料アドオン「Blender GIS」を使って、簡単にコチラのようなリアルな地形・街を再現することができるので、ぜひ参考にしてみてください。


コチラの記事で紹介する方法は、Windows環境(Windows 10 OS)を使用しています。
Mac OSでは未検証ですのでご注意ください。
GISファイルとは?
国土交通省国土地理院のホームページによると、GISは「地理情報システム」のことで、空間データを視覚的に表示するシステムのことです。
地理情報システム(GIS:Geographic Information System)は、地理的位置を手がかりに、位置に関する情報を持ったデータ(空間データ)を総合的に管理・加工し、視覚的に表示し、高度な分析や迅速な判断を可能にする技術である。
出典:国土交通省国土地理院HP URL https://www.gsi.go.jp/GIS/whatisgis.html
「GISファイル」は、地形・建物などの三次元情報をデータ化したものになります。
GISファイルは様々なサイトから入手できますが、今回紹介するアドオン「Blender GIS」を使うことで、Google MapからGISデータを取得することが可能になります。
Blender標準搭載アドオン「A.N.T. Landscape」を使った地形の作り方については、コチラの記事で紹介しているので、あわせて参考にしてみてください。

「ビル街」の作り方については、コチラの記事で紹介しているので、あわせて参考にしてみてください。

「Blender GIS」を使って地形・街を作ってみよう
無料アドオン「Blender GIS」を使って、コチラのような実在する街を3DCGで作る方法を紹介します。

以下の説明は、コチラのチュートリアル動画(英語)を参考にしています。
ぜひこちらもあわせてご覧になってみてください。
Blender GISのインストール方法
「Blender GIS」は、コチラのリンク先からダウンロードできます。
最新バージョンを選択し、「Source code(Zip)」を選択しダウンロードします。

Blenderを立ち上げ、「編集→プリファレンス→アドオン→インストール」から、ダウンロードしたZIPファイルを選択します。

検索バーに「GIS」と入力すると「3Dビュー:BlenderGIS」が表示されるので、チェックを入れてアドオンを有効化してください。

Blender GISを使用する際はキャッシュフォルダの設定が必要なので、アドオンの☑の左側の三角印をクリックしてメニューを開き、「Basemaps→Cache foder」にパスが設定してあることを確認してください。
空白になっている場合は、パス右側のフォルダアイコンからキャッシュフォルダの場所を設定してください。


地図の画像データを取得する
上の手順でBlender GISアドオンを有効化したら、ビューポートのヘッダーに「GIS」というメニューが追加されているはずです。
このメニューから、地球上のあらゆる場所の地図データをBlenderに取り込むことができます。

試しに、東京の地図の画像データを取り込んでみましょう。
「GIS」→「Web geodata」→「basemap」を選択すると、コチラのメニューが表示されます。

- ソース:地図データの入手元を設定(Google, Bingなど)
- レイヤー:表示する画像のタイプを設定(衛星画像か道路地図か)
「ソース:Google」、「レイヤー:Satellite」を選択して「OK」をクリックすると、コチラのように衛星画像から生成した世界地図が表示されます。

地図にマウスカーソルを乗せた状態で「+/ー」キーをクリックするか、通常のBlenderの操作と同じようにマウスホイールを前後に回転すると、地図が拡大/縮小されます。

検索するときはキーボードの「G」を使います。
Gキーを押すと検索バーが表示されるので、コチラに「tokyo」と入力して、スケールを「15」と入力し「OK」をクリックします。
すると、コチラのように東京駅・皇居周辺の地図が表示されます。

オブジェクトを生成するときはEキーを使います。
Eキーを押すと、ビューポートに表示された領域が、コチラのようにオブジェクトとして生成されます。

高さデータを取得する
次に、高低差の情報をインプットします。
「GIS」→「Web geodata」→「Get Elevation(SRTM)」を選択すると、コチラのメニューが表示されます。

「Server」→「Marine-geo.org GMRT」を選択すると、コチラのように地図に地形の起伏が追加されます

「Server」→「OpenTopography SRTM」を使用する場合は「APIキー」というものを取得する必要があるそうです。
詳しくはコチラの記事で紹介されているので、参考にしてみてください。

ちなみに、都市だとほとんど起伏がないですが、富士山周辺のマップで試してみたところ、コチラのように山の形状をかなりリアルに再現できました。

Blender GISで取得した地形データは、Blender GISで他のマップを読み込むと上書きされてしまうので、右クリック→「変換→メッシュ」でメッシュに変換してください。

道路・建物などのメッシュオブジェクトを作成する
「GIS」→「Web geodata」→「Get OSM」を選択すると、コチラのメニューが表示されます。
「building(ビル・建物)」や「highway(高速道路)」などの各項目を選択することで、ビルや道路などをオブジェクトとして読み込むことができます。

「Ways」を選択し、Shiftキーを押しながら「building」「highway」…を上から下に左クリックドラッグしてすべて選択し、「OK」をクリックします。

メッシュオブジェクトの生成にはマシンスペックにもよると思いますが10分程度かかることもあるので、しばらく待ってください。
最終的に、コチラのように道路やビルなどがメッシュオブジェクトとして読み込まれます。

テクスチャの貼り方
Blender GISで作ったビルに、コチラのようにテクスチャを貼ることができます。
テクスチャを貼ることができるのはビルの屋上部分だけですが、それでもかなりリアルな街並みを表現できます。

実際の手順はこんな感じです。
Tabキーで編集モードに切り替え、キーボードの「3」で面選択した状態で(どれでもよいので)ビルの屋上部分の面を選択し、ヘッダーから「選択」→「類似選択」→「法線」を選択します。

マテリアルプロパティでマテリアルスロットを2つ追加し、2番目の「roof」というマテリアルに選択した面を割り当てます。

シェーダーエディターで、「Shift+A」→「テクスチャ→画像テクスチャ」を追加し、プリンシプルBSDFのベースカラーに接続します。
Blender標準アドオン「Node Wrangler」を有効化した状態で、「Ctrl+T」でテクスチャ座標とベクトルを追加します。

ノード操作を簡単にしてくれるBlneder標準搭載アドオン「Node Wrangler」については、コチラの記事で紹介しているのであわせて参考にしてみてください。

ビューポート上でテンキーの「7」で真上から表示し、「U」→「ビューから投影」を選択します。

左下に表示されるメニューで「境界に拡大縮小」にチェックを入れておいてください。



「Shading」のワークスペースに戻り、画像テクスチャから保存した画像を読み込みます。

遠くのオブジェクトが表示されない場合は、Nキーでサイドメニューを表示し「ビュー」→「範囲の終了」の距離を大きい値に設定してください。

最後に、ビルの壁のマテリアルを灰色に設定します。

Blender GISで生成した建物にテクスチャを貼る方法について、詳しくはコチラのチュートリアル動画を参考にしてみてください。
ちなみに、オブジェクトにテクスチャを貼る方法については、コチラの記事で紹介しているので、あわせて参考にしてみてください。

Blender GISで困ったときの対処法
最後に、Blender GISでエラーが出たり、表示されなかったりして困ったときの対処法を紹介します。
エラーが出る
高さデータを取得する際に「OpenTopography SRTM」を選択し、「APIキー」を入力せずにOKをクリックすると、「Please register to opentopography.org and request for an API key」というエラーが出ます。

「Server」で「OpenTopography SRTM」を使用する場合は「APIキー」を取得する必要があるそうなので、使いたい場合はコチラの記事を参考にしてみてください。

地形を作りたい場合は、先ほど紹介したように「Server」に「Marine-geo.org GMRT」を選択すれば問題ないと思います。

表示されない
Blender GISで生成されるデータは非常に距離が大きいので、初期設定では遠くのオブジェクトが表示されない場合があります。
Nキーでサイドメニューを表示し、「ビュー」→「範囲の終了」の距離を大きい値に設定してください。

また、カメラビューで遠くが表示されない場合は、カメラのオブジェクトデータプロパティで「範囲の終了」を大きい値に設定することで、遠くのオブジェクトもカメラに映るようになります。

まとめ
「Blender GIS」を使ってビル街や地形を作る方法を紹介してみましたが、いかがだったでしょうか?
Blender GISを使うと、今回紹介したように一瞬で実在する街・地形が作れるので、ぜひ作品作りの時短に役立ててください!
最後に、今回紹介した方法のまとめです。
- GISファイルとは?…Geographic Information System(地理情報システム・地形・建物などの三次元情報)をデータ化したもの
- 「Blender GIS」を使って地形を作ってみよう
- Blender GISのインストール方法…ZIPファイルをダウンロードして「Preference→アドオン」からインストール
- 地図の画像データを取得する…「GIS」→「Web geodata」→「basemap」
- +/-キーまたはマウスホイールで拡大縮小
- Gキーで検索
- Eキーでオブジェクトとして出力
- 高さデータを取得する…「GIS」→「Web geodata」→「Get Elevation(SRTM)」
- 「Server」で「Marine-geo.org GMRT」を選択
- 道路・建物などのメッシュオブジェクトを作成する…「GIS」→「Web geodata」→「Get OSM」→「Ways」
- テクスチャの貼り方…「ビューから投影」でUV展開し、画像テクスチャを貼り付ける
- Blender GISで困ったときの対処法
- エラーが出る… 「Server」で「OpenTopography SRTM」を使用する場合は「APIキー」がないとエラーが出る
- 表示されない…ビューポート・カメラの「ビュー」→「範囲の終了」の距離を大きい値に設定する