■[UnrealEngine]SmoothStepでリマップ・ディゾルブ
・今回はUnrealEngine、マテリアルノード[SmoothStep]を使用して、比較的簡単にリマップ・ディゾルブギミックを作るメモになります。
■[TexCoord]Rで[SmoothStep]機能のおさらい
・Max/Min
・まずは[SmoothStep]のおさらいから。
[TexCoord]のRをValueにつなぎ、パラメータを追加して動きを確認します。
MaxとMinをそれぞれ動かすとこんな感じです。


・Border/Width
・もう一つ組み方として、Border(境目)とWidth(幅)で制御する方法をご紹介します。
【Border】と【Border±Width】をMax-Minに入れることで、Widthで幅を調整しつつ、BorderでMaxMinを連動させて動かします。


・Widthを足すか引くかについて
・この際、Widthを足すか引くか、BorderをMaxMinのどちらに入れるかは、用途によって変わってくるかと思います。
参考までに、【Border=Min】【Border+Width=Max】と【Border=Max】【Border-Width=Min】の場合のイメージを提示します。


・補足 値の反転
ちなみに、MaxMinの値の大小が逆転した場合、白黒が反転します。

・テクスチャを使用してリマップ・ディゾルブ
それではいよいよ、テクスチャを使用してみましょう。
・Max/Min
・使用できるのは1Chなので、グレースケールのテクスチャを使用します。
テクスチャのRをValueに繋ぎ、MaxMinを動かすとこのような形になります。


・Border/Width
Border&Widthだと、このような形になります。
パっと見だとあまり違いがありませんが、幅を保持したまま境目を動かしています。


・Border/WidthをベースにLerpで着色
・動きが確認できた所で、この値を用いて、Lerpで着色してみましょう。
Colorパラメータを2つ作成し、Lerpで混ぜた結果をRGBとAに分け、EmissiveとOpacityにそれぞれ繋ぎます。

そして動かしてみたのがこちらです。
Min側のAを0にした上で、それぞれ着色することができます。
そのままではMin側が薄いですが、Max側のAをスケールすることで、無理やりですが視認性を上げることができます。
Min側の色を強くし、Max側の色を暗めにすることで、俗に言うディゾルブ効果となるかと思います。

・今回は以上となります。
個人的に知る中では比較的ノード数を少なくリマップ・ディゾルブ効果を作れるので、色々と重宝しております。
コメント