UnrealEngine 5.54
unity 6000.3.9f1
はじめに
シェーダーで歪みをつける際、一方向ではなく左右両方に歪ませる方法です。
今回はUnrealEngineとUnityでのやり方を紹介します。
左右両方に歪ませるとは?
↓ 普通のディストーションをつけると、一方向にのみ歪みがかかってしまいます。

どういう時に使うのか
↓こういった雷の歪み等に使う
設定方法
UnrealEngine
まずはUnrealEngineから。
基本的なディストーションは下記のようになると思う。
これだと一方向にしかディストーションがかからない。

左右両方向にディストーションをかけたい時は下記のようにする。
やってることとしては、clamp を繋いでテクスチャの数値を0~1の範囲に収めた後、addで0.5を引くことでテクスチャの数値の範囲を-0.5~0.5にしている。
そうすることで左右両方向にディストーションがかかるようになる。

Unity
次にShaderGraphでの作り方を紹介。
基本的なディストーションは下記のようになると思う。
これだと一方向にしかディストーションがかからない。

左右両方向にディストーションをかけたい時は下記のようにする。
やってることとしては、clamp を繋いでテクスチャの数値を0~1の範囲に収めた後、remapでテクスチャの数値の範囲を-0.5~0.5にしている。
そうすることで左右両方向にディストーションがかかるようになる。
やっている処理はUEと変わらない。

ついでに、雷シェーダーを解説
ついでにこの雷エフェクトに使用している雷シェーダーを紹介していきます。
blend differenceノードを使うのがミソです!!!
おわりに
「絶対使わないだろ」と思う機能を実装するのが好きです。
↓ ちなみにCervaさんという方がよくシェーダーの発信しています。








