I have made a smooth turn through lerping, however, if the rotation of the part is -180°, the lerp will sometimes think its lerping -180°, to 0°.
This is a video of it, my code, and the output
Video:
Code for the rotation:
print(math.deg(select(2, EnemyData.OldCFrame:ToOrientation()))) -- Line 237
print(math.deg(select(2, EnemyData.CFrame:ToOrientation()))) -- Line 238
EnemiesActive[EnemyID].PrimaryPart.CFrame = CFrame.new(
Lerp(
EnemyData.OldCFrame:ToWorldSpace(CFrame.new(EnemyData.XOffset, 0, 0)).Position * Vector3.new(1, 0, 1),
EnemyData.CFrame:ToWorldSpace(CFrame.new(EnemyData.XOffset, 0, 0)).Position * Vector3.new(1, 0, 1),
EnemyData.DeltaTimeAdded / EnemyData.OverallDeltaTime
) + GetUpHillValue(EnemyData, Lerp(
EnemyData.OldCFrame.Position * Vector3.new(1, 0, 1),
EnemyData.CFrame.Position * Vector3.new(1, 0, 1),
EnemyData.DeltaTimeAdded / EnemyData.OverallDeltaTime
)
)
) * CFrame.fromOrientation(Lerp(EnemyData.OldCFrame:ToOrientation(), EnemyData.CFrame:ToOrientation(), EnemyData.DeltaTimeAdded / EnemyData.OverallDeltaTime), Lerp(select(2, EnemyData.OldCFrame:ToOrientation()), select(2, EnemyData.CFrame:ToOrientation()), EnemyData.DeltaTimeAdded / EnemyData.OverallDeltaTime), Lerp(select(3, EnemyData.OldCFrame:ToOrientation()), select(3, EnemyData.CFrame:ToOrientation()), EnemyData.DeltaTimeAdded / EnemyData.OverallDeltaTime))
Code for the EnemyData.CFrame and EnemyData.OldCFrame
EnemyData.OldCFrame = EnemyData.CFrame
EnemyData.CFrame = GetNode(EnemyData.Node, EnemyData.Path).CFrame:ToWorldSpace(CFrame.new(0, 0, (EnemyData.CFrame.Position - (GetNode(EnemyData.Node, EnemyData.Path).Position)).Magnitude - (EnemyData.Speed * OverallDeltaTime))) * CFrameAngles(EnemyData)
The CFrameAngles() function
local function CFrameAngles(EnemyData)
local x, y, z = EnemyData.CFrame:ToOrientation()
return CFrame.fromOrientation(CFrame.new(GetNode(EnemyData.Node - 1, EnemyData.Path).Position, GetNode(EnemyData.Node, EnemyData.Path).Position):ToOrientation(), y, z)
end
The output:
10:12:45.619 180.00000500895632 - Client - Client_Interpretation:237
10:12:45.619 180.00000500895632 - Client - Client_Interpretation:238
10:12:45.636 180.00000500895632 - Client - Client_Interpretation:237
10:12:45.636 180.00000500895632 - Client - Client_Interpretation:238
10:12:45.652 180.00000500895632 - Client - Client_Interpretation:237
10:12:45.652 180.00000500895632 - Client - Client_Interpretation:238
10:12:45.668 180.00000500895632 - Client - Client_Interpretation:237
10:12:45.668 0.000005008956130975331 - Client - Client_Interpretation:238
10:12:45.686 180.00000500895632 - Client - Client_Interpretation:237
10:12:45.686 0.000005008956130975331 - Client - Client_Interpretation:238
10:12:45.702 180.00000500895632 - Client - Client_Interpretation:237
10:12:45.702 0.000005008956130975331 - Client - Client_Interpretation:238
10:12:45.718 180.00000500895632 - Client - Client_Interpretation:237
10:12:45.718 0.000005008956130975331 - Client - Client_Interpretation:238
10:12:45.735 180.00000500895632 - Client - Client_Interpretation:237
10:12:45.735 0.000005008956130975331 - Client - Client_Interpretation:238
10:12:45.753 180.00000500895632 - Client - Client_Interpretation:237
10:12:45.753 0.000005008956130975331 - Client - Client_Interpretation:238
10:12:45.768 180.00000500895632 - Client - Client_Interpretation:237
10:12:45.768 0.000005008956130975331 - Client - Client_Interpretation:238
10:12:45.785 180.00000500895632 - Client - Client_Interpretation:237
10:12:45.785 0.000005008956130975331 - Client - Client_Interpretation:238
10:12:45.801 180.00000500895632 - Client - Client_Interpretation:237
10:12:45.801 0.000005008956130975331 - Client - Client_Interpretation:238
10:12:45.817 180.00000500895632 - Client - Client_Interpretation:237
10:12:45.818 0.000005008956130975331 - Client - Client_Interpretation:238
10:12:45.835 180.00000500895632 - Client - Client_Interpretation:237
10:12:45.836 0.000005008956130975331 - Client - Client_Interpretation:238
10:12:45.852 0.000005008956130975331 - Client - Client_Interpretation:237
10:12:45.853 -179.999991348578 - Client - Client_Interpretation:238
10:12:45.869 0.000005008956130975331 - Client - Client_Interpretation:237
10:12:45.869 -179.999991348578 - Client - Client_Interpretation:238
10:12:45.885 0.000005008956130975331 - Client - Client_Interpretation:237
10:12:45.885 -179.999991348578 - Client - Client_Interpretation:238
10:12:45.903 0.000005008956130975331 - Client - Client_Interpretation:237
10:12:45.903 -179.999991348578 - Client - Client_Interpretation:238
10:12:45.918 0.000005008956130975331 - Client - Client_Interpretation:237
10:12:45.918 -179.999991348578 - Client - Client_Interpretation:238
10:12:45.934 0.000005008956130975331 - Client - Client_Interpretation:237
10:12:45.935 -179.999991348578 - Client - Client_Interpretation:238
10:12:45.952 0.000005008956130975331 - Client - Client_Interpretation:237
10:12:45.952 -179.999991348578 - Client - Client_Interpretation:238
10:12:45.967 0.000005008956130975331 - Client - Client_Interpretation:237
10:12:45.968 -179.999991348578 - Client - Client_Interpretation:238
10:12:45.985 0.000005008956130975331 - Client - Client_Interpretation:237
10:12:45.986 -179.999991348578 - Client - Client_Interpretation:238
10:12:46.003 0.000005008956130975331 - Client - Client_Interpretation:237
10:12:46.003 -179.999991348578 - Client - Client_Interpretation:238
10:12:46.019 0.000005008956130975331 - Client - Client_Interpretation:237
10:12:46.019 -179.999991348578 - Client - Client_Interpretation:238
10:12:46.034 -179.999991348578 - Client - Client_Interpretation:237
10:12:46.034 0.000008651422209050171 - Client - Client_Interpretation:238
10:12:46.052 -179.999991348578 - Client - Client_Interpretation:237
10:12:46.052 0.000008651422209050171 - Client - Client_Interpretation:238
10:12:46.068 -179.999991348578 - Client - Client_Interpretation:237
10:12:46.068 0.000008651422209050171 - Client - Client_Interpretation:238
10:12:46.086 -179.999991348578 - Client - Client_Interpretation:237
10:12:46.086 0.000008651422209050171 - Client - Client_Interpretation:238
10:12:46.102 -179.999991348578 - Client - Client_Interpretation:237
10:12:46.102 0.000008651422209050171 - Client - Client_Interpretation:238
10:12:46.119 -179.999991348578 - Client - Client_Interpretation:237
10:12:46.119 0.000008651422209050171 - Client - Client_Interpretation:238
10:12:46.152 -179.999991348578 - Client - Client_Interpretation:237
10:12:46.152 0.000008651422209050171 - Client - Client_Interpretation:238
10:12:46.168 -179.999991348578 - Client - Client_Interpretation:237
10:12:46.168 0.000008651422209050171 - Client - Client_Interpretation:238
10:12:46.185 -179.999991348578 - Client - Client_Interpretation:237
10:12:46.186 0.000008651422209050171 - Client - Client_Interpretation:238
10:12:46.202 -179.999991348578 - Client - Client_Interpretation:237
10:12:46.202 0.000008651422209050171 - Client - Client_Interpretation:238
10:12:46.219 -179.999991348578 - Client - Client_Interpretation:237
10:12:46.219 0.000008651422209050171 - Client - Client_Interpretation:238
10:12:46.234 0.000008651422209050171 - Client - Client_Interpretation:237
10:12:46.234 -179.999991348578 - Client - Client_Interpretation:238
10:12:46.252 0.000008651422209050171 - Client - Client_Interpretation:237
10:12:46.252 -179.999991348578 - Client - Client_Interpretation:238
10:12:46.268 0.000008651422209050171 - Client - Client_Interpretation:237
10:12:46.268 -179.999991348578 - Client - Client_Interpretation:238
10:12:46.285 0.000008651422209050171 - Client - Client_Interpretation:237
10:12:46.285 -179.999991348578 - Client - Client_Interpretation:238
10:12:46.301 0.000008651422209050171 - Client - Client_Interpretation:237
10:12:46.301 -179.999991348578 - Client - Client_Interpretation:238
10:12:46.318 0.000008651422209050171 - Client - Client_Interpretation:237
10:12:46.318 -179.999991348578 - Client - Client_Interpretation:238
10:12:46.336 0.000008651422209050171 - Client - Client_Interpretation:237
10:12:46.336 -179.999991348578 - Client - Client_Interpretation:238
10:12:46.351 0.000008651422209050171 - Client - Client_Interpretation:237
10:12:46.351 -179.999991348578 - Client - Client_Interpretation:238
10:12:46.367 0.000008651422209050171 - Client - Client_Interpretation:237
10:12:46.368 -179.999991348578 - Client - Client_Interpretation:238
10:12:46.385 0.000008651422209050171 - Client - Client_Interpretation:237
10:12:46.386 -179.999991348578 - Client - Client_Interpretation:238
10:12:46.402 0.000008651422209050171 - Client - Client_Interpretation:237
10:12:46.402 -179.999991348578 - Client - Client_Interpretation:238
10:12:46.419 -179.999991348578 - Client - Client_Interpretation:237
10:12:46.419 0.000008651422209050171 - Client - Client_Interpretation:238
10:12:46.434 -179.999991348578 - Client - Client_Interpretation:237
10:12:46.434 0.000008651422209050171 - Client - Client_Interpretation:238
10:12:46.451 -179.999991348578 - Client - Client_Interpretation:237
10:12:46.451 0.000008651422209050171 - Client - Client_Interpretation:238
10:12:46.468 -179.999991348578 - Client - Client_Interpretation:237
10:12:46.468 0.000008651422209050171 - Client - Client_Interpretation:238
10:12:46.484 -179.999991348578 - Client - Client_Interpretation:237
10:12:46.484 0.000008651422209050171 - Client - Client_Interpretation:238
10:12:46.502 -179.999991348578 - Client - Client_Interpretation:237
10:12:46.502 0.000008651422209050171 - Client - Client_Interpretation:238
10:12:46.518 -179.999991348578 - Client - Client_Interpretation:237
10:12:46.519 0.000008651422209050171 - Client - Client_Interpretation:238
10:12:46.534 -179.999991348578 - Client - Client_Interpretation:237
10:12:46.534 0.000008651422209050171 - Client - Client_Interpretation:238
10:12:46.551 -179.999991348578 - Client - Client_Interpretation:237
10:12:46.551 0.000008651422209050171 - Client - Client_Interpretation:238
10:12:46.568 -179.999991348578 - Client - Client_Interpretation:237
10:12:46.568 0.000008651422209050171 - Client - Client_Interpretation:238
10:12:46.585 -179.999991348578 - Client - Client_Interpretation:237
10:12:46.586 0.000008651422209050171 - Client - Client_Interpretation:238
10:12:46.602 0.000008651422209050171 - Client - Client_Interpretation:237
10:12:46.602 -179.999991348578 - Client - Client_Interpretation:238
10:12:46.619 0.000008651422209050171 - Client - Client_Interpretation:237
10:12:46.619 -179.999991348578 - Client - Client_Interpretation:238
10:12:46.651 0.000008651422209050171 - Client - Client_Interpretation:237
10:12:46.651 -179.999991348578 - Client - Client_Interpretation:238
10:12:46.668 0.000008651422209050171 - Client - Client_Interpretation:237
10:12:46.668 -179.999991348578 - Client - Client_Interpretation:238
10:12:46.684 0.000008651422209050171 - Client - Client_Interpretation:237
10:12:46.684 -179.999991348578 - Client - Client_Interpretation:238
10:12:46.702 0.000008651422209050171 - Client - Client_Interpretation:237
10:12:46.702 -179.999991348578 - Client - Client_Interpretation:238
10:12:46.719 0.000008651422209050171 - Client - Client_Interpretation:237
10:12:46.719 -179.999991348578 - Client - Client_Interpretation:238
10:12:46.735 0.000008651422209050171 - Client - Client_Interpretation:237
10:12:46.735 -179.999991348578 - Client - Client_Interpretation:238
10:12:46.752 0.000008651422209050171 - Client - Client_Interpretation:237
10:12:46.752 -179.999991348578 - Client - Client_Interpretation:238
10:12:46.768 0.000008651422209050171 - Client - Client_Interpretation:237
10:12:46.768 -179.999991348578 - Client - Client_Interpretation:238
10:12:46.785 0.000008651422209050171 - Client - Client_Interpretation:237
10:12:46.786 -179.999991348578 - Client - Client_Interpretation:238
10:12:46.818 -179.999991348578 - Client - Client_Interpretation:237
10:12:46.818 0.000008651422209050171 - Client - Client_Interpretation:238
10:12:46.834 -179.999991348578 - Client - Client_Interpretation:237
10:12:46.835 0.000008651422209050171 - Client - Client_Interpretation:238
10:12:46.851 -179.999991348578 - Client - Client_Interpretation:237
10:12:46.851 0.000008651422209050171 - Client - Client_Interpretation:238
10:12:46.868 -179.999991348578 - Client - Client_Interpretation:237
10:12:46.868 0.000008651422209050171 - Client - Client_Interpretation:238
10:12:46.884 -179.999991348578 - Client - Client_Interpretation:237
10:12:46.884 0.000008651422209050171 - Client - Client_Interpretation:238
10:12:46.901 -179.999991348578 - Client - Client_Interpretation:237
10:12:46.901 0.000008651422209050171 - Client - Client_Interpretation:238
10:12:46.918 -179.999991348578 - Client - Client_Interpretation:237
10:12:46.919 0.000008651422209050171 - Client - Client_Interpretation:238
10:12:46.934 -179.999991348578 - Client - Client_Interpretation:237
10:12:46.935 0.000008651422209050171 - Client - Client_Interpretation:238
10:12:46.951 -179.999991348578 - Client - Client_Interpretation:237
10:12:46.951 0.000008651422209050171 - Client - Client_Interpretation:238
10:12:46.968 -179.999991348578 - Client - Client_Interpretation:237
10:12:46.968 0.000008651422209050171 - Client - Client_Interpretation:238
10:12:46.984 -179.999991348578 - Client - Client_Interpretation:237
10:12:46.985 0.000008651422209050171 - Client - Client_Interpretation:238
10:12:47.001 0.000008651422209050171 - Client - Client_Interpretation:237
10:12:47.001 -179.999991348578 - Client - Client_Interpretation:238
10:12:47.020 0.000008651422209050171 - Client - Client_Interpretation:237
10:12:47.020 -179.999991348578 - Client - Client_Interpretation:238
10:12:47.051 0.000008651422209050171 - Client - Client_Interpretation:237
10:12:47.052 -179.999991348578 - Client - Client_Interpretation:238
10:12:47.086 0.000008651422209050171 - Client - Client_Interpretation:237
10:12:47.086 -179.999991348578 - Client - Client_Interpretation:238
10:12:47.102 0.000008651422209050171 - Client - Client_Interpretation:237
10:12:47.102 -179.999991348578 - Client - Client_Interpretation:238
10:12:47.118 0.000008651422209050171 - Client - Client_Interpretation:237
10:12:47.118 -179.999991348578 - Client - Client_Interpretation:238
10:12:47.135 0.000008651422209050171 - Client - Client_Interpretation:237
10:12:47.135 -179.999991348578 - Client - Client_Interpretation:238
10:12:47.167 0.000008651422209050171 - Client - Client_Interpretation:237
10:12:47.168 -179.999991348578 - Client - Client_Interpretation:238
10:12:47.184 0.000008651422209050171 - Client - Client_Interpretation:237
10:12:47.185 -179.999991348578 - Client - Client_Interpretation:238
10:12:47.202 0.000008651422209050171 - Client - Client_Interpretation:237
10:12:47.202 -179.999991348578 - Client - Client_Interpretation:238
10:12:47.217 0.000008651422209050171 - Client - Client_Interpretation:237
10:12:47.218 -179.999991348578 - Client - Client_Interpretation:238
10:12:47.235 -179.999991348578 - Client - Client_Interpretation:237
10:12:47.235 0.000008651422209050171 - Client - Client_Interpretation:238
10:12:47.252 -179.999991348578 - Client - Client_Interpretation:237
10:12:47.252 0.000008651422209050171 - Client - Client_Interpretation:238
10:12:47.268 -179.999991348578 - Client - Client_Interpretation:237
10:12:47.269 0.000008651422209050171 - Client - Client_Interpretation:238
10:12:47.285 -179.999991348578 - Client - Client_Interpretation:237
10:12:47.285 0.000008651422209050171 - Client - Client_Interpretation:238
10:12:47.301 -179.999991348578 - Client - Client_Interpretation:237
10:12:47.301 0.000008651422209050171 - Client - Client_Interpretation:238
10:12:47.318 -179.999991348578 - Client - Client_Interpretation:237
10:12:47.318 0.000008651422209050171 - Client - Client_Interpretation:238
10:12:47.334 -179.999991348578 - Client - Client_Interpretation:237
10:12:47.334 0.000008651422209050171 - Client - Client_Interpretation:238
10:12:47.353 -179.999991348578 - Client - Client_Interpretation:237
10:12:47.353 0.000008651422209050171 - Client - Client_Interpretation:238
10:12:47.368 -179.999991348578 - Client - Client_Interpretation:237
10:12:47.368 0.000008651422209050171 - Client - Client_Interpretation:238
10:12:47.384 -179.999991348578 - Client - Client_Interpretation:237
10:12:47.384 0.000008651422209050171 - Client - Client_Interpretation:238
10:12:47.404 -179.999991348578 - Client - Client_Interpretation:237
10:12:47.404 0.000008651422209050171 - Client - Client_Interpretation:238
10:12:47.420 0.000008651422209050171 - Client - Client_Interpretation:237
10:12:47.420 -179.999991348578 - Client - Client_Interpretation:238
10:12:47.436 0.000008651422209050171 - Client - Client_Interpretation:237
10:12:47.437 -179.999991348578 - Client - Client_Interpretation:238
10:12:47.458 0.000008651422209050171 - Client - Client_Interpretation:237
10:12:47.459 -179.999991348578 - Client - Client_Interpretation:238
10:12:47.468 0.000008651422209050171 - Client - Client_Interpretation:237
10:12:47.468 -179.999991348578 - Client - Client_Interpretation:238
10:12:47.486 0.000008651422209050171 - Client - Client_Interpretation:237
10:12:47.486 -179.999991348578 - Client - Client_Interpretation:238
10:12:47.502 0.000008651422209050171 - Client - Client_Interpretation:237
10:12:47.502 -179.999991348578 - Client - Client_Interpretation:238
10:12:47.518 0.000008651422209050171 - Client - Client_Interpretation:237
10:12:47.519 -179.999991348578 - Client - Client_Interpretation:238
10:12:47.535 0.000008651422209050171 - Client - Client_Interpretation:237
10:12:47.535 -179.999991348578 - Client - Client_Interpretation:238
10:12:47.557 0.000008651422209050171 - Client - Client_Interpretation:237
10:12:47.557 -179.999991348578 - Client - Client_Interpretation:238
10:12:47.568 0.000008651422209050171 - Client - Client_Interpretation:237
10:12:47.568 -179.999991348578 - Client - Client_Interpretation:238
10:12:47.584 0.000008651422209050171 - Client - Client_Interpretation:237
10:12:47.584 -179.999991348578 - Client - Client_Interpretation:238
10:12:47.603 -179.999991348578 - Client - Client_Interpretation:237
10:12:47.603 0.000008651422209050171 - Client - Client_Interpretation:238
10:12:47.617 -179.999991348578 - Client - Client_Interpretation:237
10:12:47.618 0.000008651422209050171 - Client - Client_Interpretation:238
I couldn’t be bothered to delete all the time and stuff.