ゲームエフェクトデザイナーのブログ | A Real-Time VFX Artist's Blog

About Making Materials on UE, Making Tools with C#, etc

UE4のマテリアル関数「CustomRotator」の中身について

UE4のマテリアルでUV座標を回転させたい時に中心位置を自由に指定したい場合は「CustomRotator」というマテリアル関数が便利ですが、数学の回転行列を理解すると中身が理解できたのでメモっておきたいと思います。

という訳で、CustomRotatorの構成のスクショにそのまま説明を入れました。

f:id:moko_03_25:20180501001659j:plain

「-sinとsin逆じゃない?」と思うかも知れませんが、数学で出てくるxy座標のグラフと違ってUV座標は原点が左上なので、y軸のプラスマイナス方向が逆転しているためだからかなと。

工程①と③の「UV座標をズラして元に戻す」というのは、つまるところ下図のようなことかと思います。

f:id:moko_03_25:20180501004824j:plain

ちなみにCustomRotatorを使ってUVのタイリング数を変えても真ん中で回転するようにしたい場合、下図のように組むと良いかと思います(Divideで2で割るのではなくMultiplyで0.5を掛けているのは計算を軽くするため)。

f:id:moko_03_25:20180501005111j:plain