環境:UE5.4
作成マテリアル:M_Lerp_Basics, M_Lerp_Numbers, M_Lerp_GradientMask
前書き
Lerp(Linear Interpolate)は線形補間のことです。UIのシェーダーではほぼ毎日使用しますのでしっかりと解説し、覚えていただければこれから非常に役に立つノードになると思います。
Lerpのご紹介
Lerpノードにはこのように「A」と「B」と「Alpha」のインプットがあります。
「A」と「B」が始点と終点、「Alpha」値が「現在地」だと思ってください。「Alpha」の値は「A」と「B」の間に動かせるスライダーのようなもので、「Alpha」値が「A」か「B」と同様な数値になると、同じ位置にあることを示します。
少し分かりづらいので以下の図を用意しました。
「A」以下、「B」以降の数値はありません。必ず「A」と「B」の間に「Alpha」がスライダーのように左右に移動します。
デフォルト値は「A」が「0」、「B」が「1」ですが、任意の数値に設定することが可能です。
数値だけではなく、テクスチャも「Lerp」に接続できます。
Lerpの初使用
無料素材の猫を用意しました。プロジェクトにおいておきましたので、使っていただいても構いません。
「A」に犬のRGB値を、「B」に猫のRGB値をつなげます。
「Alpha」の値はデフォルトで「0.5」に設定されているため、AとBのちょうど中間の値になります
気がついたかもしれませんが、LerpがAとBの表示をブレンドします。
Photoshopでの解説
私はLerpを理解するのに時間がかかり、当時ある同僚がPhotoshopの例を挙げてくれたことで、スムーズに理解でき、使いこなせるようになりました。そのため、数学や理論が苦手な方におすすめです。
「A」と「B」のレイヤーを作成します。「B」のレイヤーの透明度を「50%」にします。
上記の実例と完全に同様の結果が得られます。
デザイナーの視点からみると、**「「Alpha」値は「B」の透明度である」**と言えます。これでLerpの「Alpha」という概念も理解しやすいのでしょう。
では、UE5に戻り「Alpha」の数値を調整してみます。「0.0」にしたら犬(A)が「100%」の透明度で表示され、猫(B)が「0%」の透明度になるため、表示されなくなりました。(Alpha値 = A値の場合です)
「1.0」に変更してみると、猫の透明度が「100%」になり、今回は犬が表示されなくなりました。
Timeノードを追加
「Time」と「Sine」を追加すれば、「0」と「1」の間に行ってきたりするアニメーションを作成することができます。
「ConstantBias」は「Sine」の動きを調整します。以下のように設定してください。
(Sineに関する解説はこちらに)