Как сделать линейную интерполяцию значения

Есть значение:

  local hp = ply:Health() or 0

нужно плавно менять (линейно интерполировать), и выводить.
Как такое сделать? Нашёл math.ease.OutExpo, но как использовать его так и не понял.

Если лень смотреть то:

local smoothHealth = 100

hook.Add("HUDPaint" , "hud" , function()
      smoothHealth = Lerp(0.01 , smoothHealth , LocalPlayer():Health())
      draw.RoundedBox(0,0,0, smoothHealth * 5,100 , Color(255,120,120,255))
end) 

Кажется что это совсем не то, и работает совсем криво.

Из-за качества не видно, напиши, что конкретно не так?

нужна плавная смена этого числа, как пример:
было 100 хп, => стало 50, и между ними нужен плавный переход.
А на видео видно что работает крайне криво, и финальное значение переменной smoothHealth, колеблется в районе 90 - 95, когда счётчик хп в районе 10.

upd: залил в хорошем качестве

Написал, вроде работает.
Попробуй


local smoothHealth = 0

local lastUpdateTime = 0

local updateInterval = 0.01

function updateSmoothHealth()
    local elapsedTime = CurTime() - lastUpdateTime
    if elapsedTime > updateInterval then
        smoothHealth = Lerp(0.01, smoothHealth, LocalPlayer():Health() or 0)
        lastUpdateTime = CurTime()
    end
end

hook.Add("HUDPaint", "hud", function()
    updateSmoothHealth()
    draw.SimpleText(string.format("%.0f", smoothHealth), "DermaLarge", 950, 100, Color(255, 120, 120, 255), TEXT_ALIGN_LEFT, TEXT_ALIGN_TOP)
end)
1 лайк