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 case | Try |
|---|---|
| UI panels sliding in | easeOutCubic, easeOutQuart |
| Buttons and pop-ups | easeOutBack (a little overshoot feels alive) |
| Camera moves | easeInOutSine, easeInOutCubic |
| Coins and pickups landing | easeOutBounce |
| Springy, cartoon motion | easeOutElastic |
| Fading audio or lights | easeInOutQuad, 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
Unity ↔ Unreal Converter
Convert positions, rotations and scale between Unity (meters, Y-up) and Unreal (centimeters, Z-up).
Open tool →Normal Map Generator
Turn a height map or texture into a normal map. DirectX for Unreal, OpenGL for Unity, seamless tiling.
Open tool →Texture Channel Packer
Pack AO, roughness and metallic into one texture: Unreal ORM, Unity URP and HDRP Mask Map presets.
Open tool →