New: 12 free tools for Unreal Engine and Unity developers.Try them →

Easing Functions & Curves

Preview every easing curve live and copy ready-to-use code for Unity C# and Unreal C++.

  • ✓ Free, no sign-up
  • ✓ Works for Unreal Engine & Unity
  • ✓ Runs in your browser

easeOutBack

How to use these functions

Every easing function takes a time value t from 0 to 1 and returns an eased progress value. Feed that value into a lerp:

  • Unity: transform.position = Vector3.LerpUnclamped(start, end, Easing.EaseOutBack(t));
  • Unreal: SetActorLocation(FMath::Lerp(Start, End, Easing::EaseOutBack(T)));

Here t is elapsed time divided by duration, clamped to 0–1. Use LerpUnclamped in Unity for Back and Elastic easings, so their overshoot is not cut off. In Unreal, FMath::Lerp does not clamp.

Download all easings as a single file with the button above: Easing.cs for Unity, Easing.h for Unreal or easing.js for web projects.

Which easing should I use?

Use caseTry
UI panels sliding ineaseOutCubic, easeOutQuart
Buttons and pop-upseaseOutBack (a little overshoot feels alive)
Camera moveseaseInOutSine, easeInOutCubic
Coins and pickups landingeaseOutBounce
Springy, cartoon motioneaseOutElastic
Fading audio or lightseaseInOutQuad, easeOutExpo

Rules of thumb

  • Ease out for things entering the screen (fast start, soft landing).
  • Ease in for things leaving (slow start, fast exit).
  • Ease in-out for things moving from one place to another on screen.
  • Keep UI animations short: 150 to 400 ms. Longer feels sluggish.
  • Use one or two easings consistently across your UI for a polished feel.

Built-in alternatives

  • Unreal: Blueprints have an Ease node, and Timelines with curve assets let you draw any curve.
  • Unity: AnimationCurve fields let you draw curves in the Inspector, and tween libraries such as DOTween use these same easing names.

Formulas follow the widely used Robert Penner equations, so names match most tweening libraries.

FAQ

What is an easing function?

A function that maps linear time (0 to 1) to a curved progress value. Feeding it into Lerp makes UI, cameras and objects speed up, slow down, overshoot or bounce instead of moving robotically.

How do I use these in Unity?

Copy the C# function and call it inside a coroutine or Update: transform.position = Vector3.LerpUnclamped(start, end, Easing.EaseOutBack(t)). Use LerpUnclamped for Back and Elastic so the overshoot is kept.

How do I use these in Unreal Engine?

Copy the C++ function and use it with FMath::Lerp, or in Blueprints use the built-in Ease node, which covers sinusoidal, exponential, circular and step easing. Timelines with curve assets are another option.

More free tools