Using Lerp on CFrame.lookAt()

How can I lerp CFrame.lookAt()? This question sounds stupid. But can I do it? Or is there an alternative way?

You may just be able to get the CFrame that was made from LookAt and Lerp it from there, but for TweenService, I think you can do this:

TweenService:Create(Instance, Info, {CFrame = CFrame.lookAt(Pos, OtherPos)}):Play()

You can lerp between two CFrame directly so all you need to do is construct one using lookAt and call Lerp from the other.

local originCFrame = ... -- your starting CFrame
local targetCFrame = CFrame.lookAt(a, b) -- your lookAt call

local lerpedCFrame = originCFrame:Lerp(targetCFrame, i)
1 Like

What do you want to achieve? If you want to lerp CFrame.lookAt() use the method shown by @woot3.

If you only want to lerp position or direction you can do this:

local function lerp(a, b, c)
     return a + (b - a) * c

local cfr = -- path to your CFrame

local pos =, 5, 0)
local target_dir =, 10, 0)

cfr =, lerp(, target_dir, alpha))

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.