背景アーティストのぶろぐ

UE4やら、Substanceやら、Zbrushやらいろんなソフトを触ったことについて色々書く。

【UE4】マスクの形状を複雑化する方法

Twitterで少し書いた内容をこちらにまとめておきます。

 

解像度の低いテクスチャのマスクや頂点数の少ないVertexColorなど、

ぼんやりボケたグラデーションのブレンドはクオリティが低く感じます。

 

そんな時に使える、複雑な形のマスクの形状を作成するノードの組み方テクニックです。

 

VertexColorのマスクを複雑にする

岩の地面の上に草が生えているような箇所をVertexColorBlendで表現したい場合、

VertexColorだけの表現では自然に草が生えているように見せません。

f:id:sinocof:20170224085649p:plain

岩の亀裂にそって草が映えるようにすると、

自然に草が生えているように見せることが出来そうです。

 

では、岩の亀裂部分をVertexColorに反映するようにマテリアルを組んでみました。

ノードの組み方はこのような感じ。

f:id:sinocof:20170224085716p:plain

結果はこちら

f:id:sinocof:20170224085731p:plain

これでは望んだ結果とはちょっと異なります。

その理由は組んだノードにあるWeightMask Contrastのパラメーター値が10と高い数字が入ってるからです。

f:id:sinocof:20170224085747p:plain

VertexColorのボケた部分が黒く潰れてしまったことで想像していた結果と異なってしまいました。

 

 

 

ではどうするか?

 

WeightMask ContrastパラメーターはVertexColorとテクスチャのマスク両方に対してコントラストの調整をします。

 

パラメーターを増やしてVertexColorとテクスチャのマスク別々にコントラストの調整をするのもひとつの手です。

 

が、しかし、パラメーターが増えると制御が難しくなるので、

パラメーター数はこのままにしてVerteColorの強さで調整してみたいと思います。

 

 

 

その結果がこちら。

f:id:sinocof:20170224085802p:plain

岩の溝の部分にそって草のテクスチャが入り込むようになりました。

VertexColorの強さをかなり下げましたので、BeforeとAfterではこのようになっています。

f:id:sinocof:20170224085815p:plain

 

HeightLerpマテリアルファンクションを使う

HeightLerpのマテリアルファンクションを使うことでも似たような表現をすることが出来ます。

中の計算式が異なるので同じ結果にはなりませんが、

似た表現をすることは出来ます。

 

マテリアルで使用するノード数を減らしたいなどの目的で利用するのもありだと思います。

 

VertexColorのようにベースとなるAlphaをTransition Phaseに接続します。

TextureのマスクをHeight Textureにつなぎます。

f:id:sinocof:20170224085828p:plain

個人的にはHeightLerpがかなり使えるノードだと思うので、

もう少しいい感じの使い方を見つけたらまたご紹介したいと思います。

 

公式で用意されているマテリアルファンクションは宝の山です~ヽ(=´▽`=)ノ