環境
UE4.25.1
CustomRotatorを使用する
Engine Content内のMaterial FunctionにCustomRotatorというものがあります。
これを使うだけでTextureの回転が可能です。
引数について
・UVs : UVを渡す
・Rotation Center : 回転の中心位置
・Rotation Angle : 0-1で回転量を渡す 0.5 -> 180°, 1.0 -> 360°
使い方は簡単で180°回転させたい場合は以下のように繋ぐだけです。
上の画像が元画像で下が180°回転させたものです。
ただし、このテクスチャをそのまま回転させるとテクスチャの繰り返し部分が見えておかしな表示になっていしまいます。
これを修正するにはImportしたTextureを開いて
X/Y-axis Tiling MethodをWrapから「Clamp」に変更することで防げます
Textureを回転させる方法
Material内で回転させるためにはRotation Angleに「Time -> Frac」を渡すだけでよいです
これはTimeの小数点部分だけを渡しているのですが
何をしているのかを見ていきましょう
先ずは以下のようにTime -> Fracした値を「DebugScalarValues」に繋ぎます。
続いて「DebugScalarValues」ノードの上で右クリックして「Start Previewing Node」を選択します
すると以下のように小数点部分が0から0.9999999までカウントされていることがわかります。
こうすることでRotation Angleの0-1の範囲に収まった上で回転させることができます
最後にMaterial Instance側で調整しやすいように「ScalarParameter」を追加し、「RotationSpeed」としておきました
これを応用することで以下のようなクルクル回転するロックオンカーソル等が作成できます