コズログ

コズァドットハテナァブログゥドットッッジェーピゥィー

「World Machine」で作った地形をUE4に持っていく方法

とりあえず何も調査せずにテキトウにHeightMapを出力してUE4にインポートしてみました。

過去の経験から調査せずにやると失敗する!

のですが・・・調査してからスムーズに成功してしまうと、それもまた味気ないので最初は突貫する派です。

「World Machine」からHeightMapをエクスポートする

テストで作っていたテキトウなデータをがあったので、Height Outputデバイスを作成して、RAW16で出力しました。

UE4側では新たなレベルを作成し、ランドスケープモードにして、「ファイルからインポート」で出力したHeightMapを指定してインポートします。

f:id:koztks:20170514063945p:plain

そして、できたのがコチラだ・・・。

f:id:koztks:20170514064017p:plain

f:id:koztks:20170514064025p:plain

ア、アレ・・・なんか地形が違うような?

UE4「それっぽくやっといたで。」

という声が聞こえてきそうです。

これで今回も予定通り失敗できて安心しました。ニッコリ。(クソォオ!)

まずはUE4のランドスケープを理解する

してへんかったんかーい。と言われること間違いなしですが、していませんでした。

docs.unrealengine.com

ということで、ここを読んでランドスケープの何たるかを知りました。

重要なのは、

ランドスケープ > コンポーネント > セクション

というランドスケープの構造です。

ランドスケープの中には、複数のコンポーネントがあって、そのコンポーネントがセクションで区切られているということらしいです。

なので、ランドスケープのインポート画面にあったプロパティを見てみると、

ということが理解できました。

デフォルトでは、63クワッドなので1セクションが63×63クアッドになり、コンポーネント内に2×2のセクションがあるので、一辺だけだと126クアッド(63×2)になろうかと思います。

同様に、コンポーネントが4×4なので126×4で、全体では504クアッドのランドスケープを作る設定になっておるようです。

解像度が505になっているのは、1クアッドにつき4頂点、一辺あたり2頂点なので、クアッドを頂点数にするときに+1しているらしいです。

推奨される設定も書いてあるので、基本的に推奨設定を使えば良いかと思われます。

「World Machine」の設定を理解する

お次は、「World Machine」の設定の学習です。

World Machine to Unreal Engine 4 - In Depth Guide

最初、こちらの資料から読み始めたのですが、ランドスケープの仕様がわかっていなかったので、宇宙人向けに書かれた資料かと思いました。

それはさておき、重要なのは標高の設定です。

A landscape at 100% on the Z axis has a total range of 512meters.

UE4のランドスケープは、Z軸つまり高さの範囲が512メートルらしいです。

The only reason I can see for people doing this is that they are using the World Machine default projects maximum elevation of 2625 m. Change it, make it a multiple of 512. It will make everything a lot easier.

一方、「World Machine」側ではデフォルトで2625メートルになっているので、ここを512の倍数で指定していると、UE4側でスケールしやすくなるという事かと思われます。

推奨は、2048mに設定してUE側で400%にスケールする方法らしいです。

水面の高さの設定も忘れずに。

後半部分は、ウェイトマップとマテリアルの設定も書いてあるので、まだまだお世話になりそうな資料です。

リトライ

「World Machine」の設定を変更するとテスト用地形が水没してしまったので、改めて島のような地形を作ってみました。

f:id:koztks:20170514062839p:plain

Advanced Perlinデバイスで基本形を作って、Terraceデバイスで段丘を作りました。

少しディティールが複雑だったので、今回はシンプルにしたいと思い、Simple Transformデバイスでスムージングとハイパスフィルタをかけました。

最後に、Clampバイスで海面下を平面にしました。(水面下なので見えないだろうと短絡的に考えてフラット化しましたが・・・水の見え方が変わってくるのかも・・・。)

f:id:koztks:20170514072559p:plain

このような地形をインポートすると・・・、

f:id:koztks:20170514072608p:plain

このように、本来2048mあるものを512mに圧縮している状態なのでペタンとなっております。

ですので、400%にスケールして本来の高さを再現します。

f:id:koztks:20170514072617p:plain

なかなか良い感じにできたのではないでしょうか。