Game Thread Rigs
Access Control Rigs contained in your animation blueprint from the game thread or blueprints for easy procedural animations in unreal engine 5.
Table of Contents
Where To buy
You can get the Game Thread Rigs Plugin for Unreal Engine 5 on Fab.com
Watch the video
Game Thread Rigs Features
What It Does:
Direct Animation Scripting:
Craft procedural animations right within your Actor Blueprint. No more switching between multiple blueprints or diving deep into control rig scripts—everything happens in one place.Hybrid Workflow:
Leverage the full power of your Animation Blueprint while directly modifying specific rig components from your Actor Blueprint, streamlining your creative process.Versatile Functionality:
The plugin comes equipped with a suite of functions that allow you to interact with any rig element (such as controls, bones, and more). Some of the key functions include:SetWorldLocation()
GetControlRig()
SetLocalTransform()
GetLocalTransform()
- …and many additional commands to suit your needs.
Unique Rig Targeting:
For Unreal engine 5 projects utilizing multiple Control Rigs within an Animation Blueprint, Game Thread Rigs introduces a unique rig distinction feature. This system allows you to specify and control individual rigs, ensuring that each is managed precisely as required.
How to use the GameThread Rigs Plugin
Lets help you get started. Once you’ve installed the Plugin, Navigate to its Content Folder and in there you’ll find a “Blueprints” folder containing an example or documentation Actor Blueprint. So the path is: GameThreadRigs Content/Blueprints/BP_AGameThreadRigExample

1. Add A Control Rig Node to the Animation Blueprint
Ensure the animation blueprint you’re using for your target Skeletal mesh has the Control Rig Node. The Control Rig Class/Node used in here will be read by the Game Thread Rig Component.

2. Add the GameThreadRigComponent
Go to the Actor Blueprint that has the Skeletal Mesh using the Anim Blueprint and add the GameThreadRigComponent to it.

3. Map The Skeletal To The GameThreadRig Component
We need to map the SkeletalMesh that contains our control rig to GameThreadRigComponent so that the component can control/access the rig.
To do this Call the “InitGameThreadRigComponent()” function on begin play.

4. Use the GameThreadRigComponent Functions
The component has a couple of functions you can call to modify control/bone locations. Use functions like SetWorldLocation() that will set a Control to a particular world location. Other Transform related functions are available. You can set transforms in World, Rig Space(Global) or Local.

5. Get Specific Control Rig
If you have more than 1 Control Rig node in your animation Blueprint and wish to get a specific one, you’ll need a way to ID it. Go to your ControlRig asset and create an FNAME variable, you can call it whatever but preferrably “EnhancedRigID” or “GameThreadRigID”.
Then set its name to whatever ID you wish. Like “Rig1”.
Configure the GameThread Rig component
On the details panel of the GameThreadRigComponent, you’ll need to fill the following fields to match your control rig asset.
“RigIdVariableName“
and
“RigID“.
If you filled these in correctly, the GameThreadRigComponent will find and target that specific control rig.
Bonus: Drive Control Animations Procedurally
You can drive bones procedurally using timelines or to make your life easier you can get the Dynamic Keyframes plugin which helps script procedural animations and provides procedural animation templates.