■[UnrealEngine]SphereMaskでDistortion
今回はUnrealEngineにて、[SphereMask]を使用してテクスチャUVを歪ませるメモです。
■概要
・「テクスチャUVメモ」のページでは、[TexCoord]に対して値を加えたり乗算したりする事で動かしていました。
ではその値に対して[SphereMask]をかけたらどうなるかと言うと、一部分のみ変形することになります。
■Offset
・まずはオフセット移動をマスクした場合。
中央部が移動し、外周部は固定されるので、このような感じになります。


■Scale
・次はスケールを球マスクした場合。
外周部固定で中央が拡縮します。


■Shear
・次はシアー変形を球マスクした場合。
外周部固定で中央のみ並行移動しようとするため、捻じるような変形ができます。


■SphereMaskにSineを加えてみる。
・では次に、[SphereMask]の方に手を加えて動かしてみます。
[SphereMask]を元に[Time]を足して[Sine]に繋げて合成し、波打つマスクとしてみました。

・Offset・Scale・Shearそれぞれ、このような動きになります。



■Sineで色々増やした場合
・更にパラメーターを加えたりして、より波紋らしくしてみたアレンジです。
ScaleとShearの変形方向を混ぜたり、Sineの波数をスケールできるようにしています。


■縦グラデーションアレンジ
・もちろん、マスクには[SphereMask]以外を使うことも可能です。
[TexCoord]Gの縦グラデーションを元にすると、それぞれこのような動きになります。
もう少し形を整えれば、布のたなびくような動きができそうです。



・今回は以上となります。
専用マップを用いずともテクスチャに動きをつけることができますので、読み込みメモリの節約になるのではないかと考えております。
また、ノードでプロシージャルに組む模様であれば、基本的には解像度の荒れに悩まされることもありません。
その分仕込みが多く、描画負荷の方を気にする必要もあるかもしれませんが、1手法として何か参考になれば幸いです。

コメント