Convenient curve functions to ease a value between a start and end, like positions, scales, colors, anything you want to smoothly change.
NsTween is a small yet powerful tweening framework for Unreal Engine. It allows smooth interpolation of floats, vectors and quaternions using a rich set of easing functions. Tweens can be controlled entirely through C++ or Blueprint nodes.
Float, Vector, Vector2D, Rotator, Quaternion, Transform and Color values.Looping, Delays and Ping-Pong behaviours.Forward or BackwardUnreal Engine 5.2+
NsTween folder into your projectβs Plugins directory.Below is a minimal C++ example showing how to move an actor along the X axis using the fluent tween helpers built into FNsTween:
#include "NsTween.h"
void AMyActor::BeginPlay()
{
Super::BeginPlay();
FNsTween::Play(
/**Start*/ 0.f,
/**End*/ 100.f,
/**Time*/ 2.f,
/**Ease*/ ENsTweenEase::InOutQuad,
/**Update*/ [this](float Value)
{
SetActorLocation(FVector(Value, 0.f, 0.f));
});
}
The library also exposes Blueprint nodes for the same functionality if you prefer a visual approach. Below is a slightly more advanced snippet showing how to make an item float up and down while spinning for 10 complete loops
#include "NsTween.h"
void AFloatingItem::BeginPlay()
{
Super::BeginPlay();
// Float continuously
FNsTween::Play(
/**Start*/ GetActorLocation().Z,
/**End*/ GetActorLocation().Z + 40.f,
/**Time*/ 1.f,
/**Ease*/ ENsTweenEase::InOutSine,
/**Update*/ [this](float Z)
{
FVector CurrentLocation = GetActorLocation();
CurrentLocation.Z = Z;
SetActorLocation(CurrentLocation);
})
.SetPingPong(true)
.SetLoops(-1); // infinite loops
// Rotate and print 10 times the Loop
FNsTween::Play(
/** Start */ 0.f,
/** End */ 360.f,
/** Time */ 2.f,
/** Ease */ ENsTweenEase::Linear,
/** Update */ [this](float Yaw)
{
SetActorRotation(FRotator(0.f, Yaw, 0.f));
})
.SetLoops(10) // 10 full spins
.OnLoop([this]()
{
UE_LOG(LogTemp, Warning, TEXT("Spin finished"));
});
}
FNsTween β Runtime tween state tracking easing, wrap modes, delegates, and pause behavior.FNsTweenBuilder β Fluent setup handle chaining specs, callbacks, activation, and control forwarding.UNsTweenSubsystem β Game-instance subsystem ticking live tweens, processing commands, and allocating easing curves.FNsTweenSpec / FNsTweenCommand / FNsTweenHandle β Blueprint-ready structs describing playback options, delegate hooks, queued commands, and handles.UNsTweenSequence β UObject sequence asset storing ordered tween specs for content-driven playback.UNsTweenBlueprintLibrary β Central Blueprint library spawning tweens, exposing ease presets, and forwarding subsystem controls.UNsTweenAsyncAction (base) β Shared async action base normalizing inputs, binding events, and managing lifecycle cleanup.FNsTweenPolynomialEasing β Polynomial easing evaluator covering sine, expo, elastic, bounce, and back presets.FNsTweenBezierEasing β Cubic Bezier easing solver inverting time with Newton steps before sampling output.FNsTweenCurveAssetEasingAdapter β Adapter wrapping UCurveFloat assets to drive easing while falling back gracefully.Use the following map when you need to dive deeper than the high-level feature overview. Each entry mirrors the folder layout inside the plugin so you can jump straight from prose into the exact file that owns the logic.
Source/NsTween/Public/NsTween.h β contains FNsTween::Play and the templated BuildT<T> helpers that every example in the docs references.Source/NsTween/Public/NsTweenTypeLibrary.h β enums, delegates, and light-weight structs.Source/NsTween/Public/Interfaces/ITweenValue.h β the strategy contract implemented by each type-specific value driver.Source/NsTween/Public/Templates/ β interpolators and callback strategies.Source/NsTween/Private/NsTween.cpp β documents the lifetime of an active tween, including pause/cancel semantics and wrap modes.Source/NsTween/Private/NsTweenBuilder.cpp β shows how specs become runtime objects before entering the subsystem.Source/NsTween/Private/NsTweenSubsystem.cpp β central tick loop and allocation strategy for live tweens