We’re rewriting our Unreal Engine integration to deliver significantly better performance, and it’s already showing a 4x speed boost. To focus on this effort, we’re temporarily pausing support and no longer recommending the current version of the Rive Unreal plugin, which was released as an experimental preview. More details here.
This page is for those using the legacy version of the plugin.
This page is for those using the legacy version of the plugin.
If you’re unfamiliar with Rive’s Data Binding feature, please see Data Binding to get an understanding of the fundamental concepts.
🔧 Data Binding Overview
The Rive Unreal Plugin integrates the Rive ViewModel architecture into Unreal Engine, enabling dynamic data-driven content and interaction. Through data binding, you can expose gameplay variables, user input, or UI state directly to your Rive animations using a declarative model.🔩 Core Components
URiveViewModel
: Represents a Rive-defined schema with properties and instance templates.URiveViewModelInstance
: Holds runtime values for a ViewModel. Wrapsrive::ViewModelInstanceRuntime
and provides typed property accessors.URiveViewModelInstanceValue
: Base class for all runtime properties. Derived types include:URiveViewModelInstanceBoolean
URiveViewModelInstanceNumber
URiveViewModelInstanceString
URiveViewModelInstanceColor
URiveViewModelInstanceEnum
URiveViewModelInstanceTrigger
- Nested ViewModels:
URiveViewModelInstance
- Binding Targets: Instances can be bound to:
URiveArtboard
– sets the data context for a Rive artboard and it’s associated state machine.FRiveStateMachine
– synchronizes ViewModel data with state machine inputs and outputs and binds it to the state machine’s artboard.
🔄 Lifecycle
-
Load ViewModel via
URiveFile
: -
Create Instance:
-
Bind to Artboard:
-
Interact with Properties (e.g. trigger a state or update text):
-
Respond to Changes:
⚙️ Architecture Highlights
- Properties and ViewModel Instances expose typed getters/setters in both C++ and Blueprints.
- ViewModelInstances can contain nested ViewModel instances.
- Callbacks are tracked and invoked safely via
HandleCallbacks()
(called per-frame byURiveArtboard::AdvanceStateMachine()
).