Playback & Blueprint
The deformation runs at play time. The dynamic materials that carry it are
created when the game starts, so the effect plays in PIE / Simulate (and, for
authoring, in the panel’s Live Preview). Scrubbing the Progress slider in
the editor at edit time does not animate the mesh.
There are three ways to drive it: auto-play, the playback API, or
setting Progress directly.
Auto-play
Section titled “Auto-play”The simplest path: set Auto Play on the component and it starts from the top
on BeginPlay. Pair it with Loop and Playback Duration for a
hands-off looping effect.
Playback API
Section titled “Playback API”Call these from Blueprint or C++:
| Function | What it does |
|---|---|
PlayFromStart() | Start (or restart) from the beginning. BeginPlay calls this when Auto Play is set. |
Pause() | Freeze in place, keeping the current deformation and expanded bounds. |
Resume() | Continue from where Pause() left off. |
Stop() | Halt playback and restore bounds. |
SetProgress(float) | Scrub directly to a normalized [0..1] position. |
GetProgress() | Read the current normalized progress. |
IsPlaying() | Whether the playhead is currently advancing. |
SetProgress() lets you drive the journey from anything (a timeline, a
gameplay value, player input) instead of the built-in clock.
// Drive the deformation from a gameplay value instead of auto-play.SplineJuice->SetProgress(FMath::Clamp(ChargeAmount, 0.f, 1.f));Events
Section titled “Events”Bind these BlueprintAssignable events to react to the animation lifecycle:
| Event | Fires when |
|---|---|
OnPlaybackStarted | A from-the-top start (PlayFromStart() or auto-play). |
OnPlaybackFinished | Once, when a non-looping animation reaches the end. Not fired by Stop() or while Loop is on. |
OnLoopCompleted | Each time a looping animation wraps back to the start. |