たつぷりの調査報告書

博士後期課程(理学)の学生が趣味でUnityやBlenderで遊ぶブログです。素人が独学で勉強した際の忘備録です。

Terrain Partyで地形をBlenderに反映させる方法

どうもこんにちは、たつぷりです。私は最近Blenderをはじめて小物をモデリングしたり、VFXのようなものを作ったりしてきました。しかしちゃんと背景があって、いろいろが物などが配置されているといった絵っぽい絵を作ってこなかったので、(Worldの設定とかではなく)背景になるような地形を作ってみたいと思いました。実際、Sculptingを使ったりして簡単に作ることもできるのですが、今回は実際の地形の情報からBlenderで地形を生成する方法をまとめることにします。

これによって「ありそうな」地形を比較的簡単に得ることができます

例えば、練習として詳細は気にせずに作ったので粗削りですが即席で以下のような地形を作ることができました。

f:id:Tatsupuri:20201012010838p:plain

特に今回はTerrian Partyというサービスを用いてBlenderに実在の地形の情報を取り込む方法をまとめました。

Terrain Party

実際の地形の情報を取り込むためには、水平からの高さの情報のマップであるHeight Mapが必要である。このような高さの情報は公開されており、今回は以下のTerrain Partyを用いることにする。

terrain.party

筆者の不勉強で、その歴史的な経緯や仕組みなどは理解していないが、terrain partyはCities:Skylinesに実在する地形を取り込むためのサービスの一種であるらしい。

とりあえず上記のURLにアクセスしてみると以下のような操作画面であった(表示位置は筆者が適用に選んだ)。

f:id:Tatsupuri:20201012010850p:plain

ダウンロードボタンを押すと、ファイルの名前を入力することになる。今回は「test」とした。するとZIPファイルがダウンロードされ、それを展開すると以下のような一連のファイルが得られた。 f:id:Tatsupuri:20201012010833p:plain

Terrian PartyではHeightマップのデータは

をもとに作成されており、これらを合わせて用いた「Merged」というデータも用意されている。

Blenderでの操作

Blenderでは、Textureに沿ってMeshを変形させるDisplacement Modifierが用意されている。そこで基本的にはPlaneを作成しDisplacement Modifierを用いて変形させればよい。しかしメッシュの変形は当然ながらその細かさに依存する。つまりSubdivision Surface Modifierなどを用いてある程度メッシュを細かくしておかないとDisplacement Modifierを適用しても変形が荒くなるので注意する。

Modifierを以下のように適用した。Subdivision Surface Modifierでは「Simple」のオプションにしておくと、平面の四角い形を変更するせずにその内部の分割数を上げることができる。Displacement ModifierではTexture CoordinateをUVにしておく。 f:id:Tatsupuri:20201012010856p:plain

Displacement Modifierで指定するテクスチャはTextureプロパティから設定する。Image>Settingsから先ほどダウンロードした画像を選択する。複数あるHeight マップの違いは以下で少し説明する。

f:id:Tatsupuri:20201012010900p:plain

Height Mapの比較

参考のために以下にそれぞれのHeight Mapに対してDisplacement Modifierを適用してみた結果を貼る。これらはいずれもDisplacement Modifierをデフォルトのパラメーターで使用した。SRTM30 Plus以外はそんなに大差がないように思える。

test_terrian Height Map (SRTM30 Plus) f:id:Tatsupuri:20201012010808p:plain

test_terrian Height Map (Merged) f:id:Tatsupuri:20201012010821p:plain

test_terrian Height Map (SRTM3 v4.1) f:id:Tatsupuri:20201012010827p:plain

test_terrian Height Map (ASTER 30m) f:id:Tatsupuri:20201012010814p:plain

調整

なお冒頭の完成品の図は、test_terrian Height Map (Merged)で変形させたものを用いている。Displacement Modifierで、Strengthを変更することで変形の大きさを変更することができる。 f:id:Tatsupuri:20201012010904p:plain

Mapの繰り返しによる、不連続な変形が気になる場合は適宜UVを編集して対応する。 f:id:Tatsupuri:20201012010910p:plain

後は適宜、マテリアルの設定など調整を行って冒頭の図を作成した。 f:id:Tatsupuri:20201012010916p:plain