はじめに
Tick等を使わずにマテリアルを使用して、ローカル座標系でメッシュを回転させる方法です。
動作を確認したバージョン
- UE5.0.2
- UE4.27.2
実装
まずはヒストリア様のブログの通りにマテリアルを組みます。
このままだとワールド座標の軸に沿って回転するため、メッシュの向きを変えるとメッシュから見た回転方向が変わってしまいます。
下記のようにTransformとNormalizeノードをRotateAxisとRotateAboutAxisの間に追加することで、冒頭の動画のようにメッシュのローカル座標系で回転ができるようになります。
TransformのSourceはLocal Spaceにします。
これによりRotateAxisのローカル座標系をワールド座標系に変換しています。
ただ、それだけではベクトルの長さが1にならないようなので、Normalizeで長さを1にしています。
(RotateAboutAxisのNormalizedRotationAxisに渡すベクトルの長さが1以外だとサイズの伸縮が発生してしまうため)
参考サイト