I have a wind-blade style attack that rotates while moving forward, and looks like this:
https://gyazo.com/6422b08074c7662d78643b720cd5917e
I rotate the part by tweening its orientation to its current orientation + 179 degrees more on the Y axis repeatedly, like this:
--v is the wind blade part
while wait(0.3) do
local Goal = {}
Goal.Orientation = v.Orientation + Vector3.new(0, 179, 0)
local Info = TweenInfo.new(0.3, Enum.EasingStyle.Linear)
local Tween = TweenService:Create(v, Info, Goal)
Tween:Play()
end
When I try to move the wind blade using the same method after the wind blade has already been rotated on a different axis though, it looks wonky:
https://gyazo.com/efbc4886c91ae8a978adc26cc1f73bb2
Things I’ve tried:
- Using CFrame.Angles to make a properly rotated CFrame and then converting it to orientation using :ToOrientation() to rotate the effect instead
- Rotation doesn’t cycle correctly, tweens the wrong way every time the effect rotates 360 degrees or so
- https://gyazo.com/ad1a977b6c1bea81b38fe746855637ad
- https://gyazo.com/300ed97fffc3fdc35730af1d7308daee
- Subtracting the new orientation of the effect (after doing 1 tween) by the old orientation of the effect (before doing any tweens) and then tweening the orientation to its old orientation + this difference repeatedly
- Rotates like its following the edge of an unproperly opened soup can
Notice: I move the effect forward by tweening its CFrame forward, so I can’t directly rotate the effect using CFrame, as it would get cancelled by the tween that moves it forward.