[UnrealEngine]SmoothStepでリマップ・ディゾルブ

UnrealEngine

■[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側の色を暗めにすることで、俗に言うディゾルブ効果となるかと思います。

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

コメント

タイトルとURLをコピーしました