UE5で地形を自動で塗り分けるマテリアルの作り方
今回の想定している読者は中級者の方になります…マテリアルの組み方は簡単なものの前提知識が結構必要なんですね
なので以下2つ当てはまるとスムーズにできると思います
テクスチャーを自分でダウンロードができる
マテリアルの基本がある程度わかっている
初心者の人でも頑張ればできると思いますが、かなりハードル高めなのでご理解ください
マテリアルを自分で塗るって結構大変ですよね
しかも、手動だと境界線を自然っぽく塗るのが至難の業…
で、今回はそれを解決してくれつつ、しかも自動でマテリアルを塗り分ける方法を海外の方の動画を参考に作ることができました!(本当にありがたい!!)
参考にした動画
ということで早速やっていきましょう
自動でマテリアルを塗り分ける仕組み
まず、ざっと仕組みを解説したいと思いますが
SlopeMaskは、山を見て『ここは平ら』『ここは斜め』って地図を自動で描いてくれます
その地図を見ながら MatLayerBlend_Standard っていうロボットが、『この場所には草を塗ろう』『この場所には岩を塗ろう』って、自動で色をわけをするんですね
(めっっっっちゃ意訳)

これを作ることでこんな感じに塗り分けをしてくれる

ということで作っていきましょう
地形を用意する
今回、平らと傾斜からマテリアルを塗り分けるので山などの地形を用意してください!
自分でスカルプティングしてもいいですし、World Machineというソフトで作っても構いません
下記事で説明してますので自分で作るのが面倒であればこの記事をのぞいてください
自動で塗り分けるマテリアルの作り方
最初にMakematerialを2つ用意してマテリアルを作る
今回、中級者の方を想定読者にしているため、申し訳ないですがここの作り方は省略します
説明の便宜上、僕は草・岩マテリアルにしました

MatLayerBlend_Standardノードを用意して2つのマテリアルにつなぐ

そしたら先ほど作ったマテリアルを平らにしたいところはBaseに、傾斜にしたいところはTop、画像のように設定します
僕は、平らは草マテリアル、傾斜は岩で設定しました

そうするとAlphaが空いてますよね、そこにつなぐブロックを作っていきます(下に完成画像あり)


SlopeMaskノードを用意

SlopeMaskのSlopeAngleにConstant 3 VectorをつなげZ軸を1に設定

Constant 3 Vectorは「3キー」を押しながら左クリックで出てきます、その後にZ軸を1に設定します
これは「どの軸を基準に傾斜を判別しますか?」と聞かれています(なぜこれで傾斜を自動で判別できるのかは分からないですが…)

SlopeMaskのFalloffPowerを右クリックしてパラメータへ昇格を選択


同じ要領でCheapConstantも作る

SlopeMaskのアウトプットをAlphaにつなげる

SlopeMaskにつなげるLandscape Layer Blendノードを用意


名前は何でもいいんですが、迷ったらAutoとでもつけてください

MatLayerBlend_StandardをLandscape Layer Blendにつなげる

最後にアウトプットのUse Make Material Attributesにチェックを入れて


Landscape Layer Blendに最終アウトプットにつなげる

全部のノードをつなげれば完成です!

マテリアルについてはこれで完成です、お疲れ様です!
そしたら次にランドスケープに適用していきます
作ったマテリアルを「ランドスケープ」→「ランドスケープマテリアル」に入れて適用する

ランドスケープモードに切り替え「+」ボタンからウェイトレイヤーブレンドを選択

マテリアルからマテリアルインスタンスを作りパラメータの調整をする
次にこのマテリアルからMIを作りましょう

Landscaepeを選択して作ったマテリアルインスタンスをランドスケープに適用

僕は岩と草テクスチャのサイズを調整してこんな感じに
皆さんはTopに設定したマテリアルが上にくるはず、僕はTopが岩マテリアルにしてるのでこうなりました

お待たせしました、いよいよマテリアルの塗り分けです
で、申し訳ないですが僕の数値と皆さんの数値を同じにしても、同じようにならないかも…
ですが設定としてはあっているはずなので、色々といじってみてください
そしたら、一旦塗り分けまでいきましょう
マテリアルインスタンスを開き、Cheap Contrastを-9ぐらいに設定する
するとBaseの色が出てくるはず

FalloffPowerを1~50ぐらいで設定する
みなさんと僕のランドスケープは違いますので色々試してください
僕は30に設定することで傾斜部分に岩マテリアルが出てきました

これで完成でもいいんですが、近づいてみると境界線がくっきり出がちなので微調整していきます

Cheap Constantを-2ぐらいに設定して、FalloffPowerを13ぐらいに設定したら…

全体を見てみると

かなり急ぎで書いたため、抜けているところがあるかと、、、
で次は山の頭の方が今草野テクスチャになっているとおもうんですが例えば450mから500mを雪テクスチャに変える事もできるらしいんですね
これを解決するための方法を書いていこうと考えています

そして1週間で学習して記事に落とし込む作業がかなりの高負荷なため、2週間に1度に投稿というように一度試そうと思います!
自分の能力を過信しちゃった…
僕が間違っていたらおしえてくれるとたすかります、わからないこともあれば気軽に聞いて下さい、5分程度で解決できるものであれば教えます!XのDMのほうが返す率たかいかも
しばらくは中級者向けの記事、スタティックメッシュとランドスケープをなじませる方法など勉強したいと思ってます
今だいぶ雑に記事を書いているんですが、長期的にはブログに移行してリライトしようと考えてます…
Note使い勝手はいいんですが、カスタマイズ性がなくてかゆいところに手が届かながちなんですよね
