Control Rig

Rig and Animate characters in real-time with Control Rig.

Windows
MacOS
Linux

Control Rig allows you to create custom controls on your imported skeletal mesh in which you can generate new, or modify existing animations within the Unreal Editor. This document provides an overview of the Control Rig editor and how to create animations with your rig.

Prerequisites

  • You must enable the Control Rig plugin. To do this, navigate in the Unreal Editor menu bar to Edit > Plugins and search for Control Rig. Ensure the plugin is enabled and restart the editor.

    control rig plugin

  • You have imported a Skeletal Mesh asset into your project.

  • You have some experience using the Unreal Sequencer tool.

Create a Control Rig Asset

You can choose to create a control rig for a skeletal mesh in a couple of different ways.

In the first method you can right-click on your Skeletal Mesh Asset and select Create Control Rig. This creates a new Control Rig asset with your skeletal mesh already assigned. The asset will automatically name itself after the Skeletal Mesh and apply the suffix _CtrlRig.

create control rig

The second method is to create a Control Rig manually. You can do this by right-clicking in the content browser and select Animation > Control Rig. In the context menu, select ControlRig and click Create.

create control rig 2

After the asset is created, double-click it in the Content Browser to open it.

If you create a control rig this way, you will need to manually add the skeleton to your control rig asset after opening.

The Control Rig Editor

Once you've opened the Control Rig asset, you will see the Control Rig editor. The following is an overview of its main areas.

image alt text

  1. Toolbar

  2. Viewport

  3. Rig Hierarchy

  4. Execution Stack

  5. Rig Graph

  6. Details / Preview Scene

  7. My Blueprint

Toolbar

image alt text

The Control Rig Toolbar contains buttons and settings used to control the preview behavior and control rig construction. The buttons with specific Control Rig functionality are as follows:

Compile

image alt text

You are required to Compile whenever changes are made to the Rig Hierarchy. This can include adding, removing, reparenting, renaming controls, bones or spaces. You also need to recompile when you create variables.

The Compile button can also be used as a way to reset your controls.

compile reset

Event Mode

The Event Mode tool is used to switch between different graph event chains. Each option is associated with a Rig Graph event node.

image alt text

Setup Event will fire the Setup Event node chain, as well as activating the Setup mode which enables you to manipulate the initial positions of Bones, Controls and Spaces.

Forwards Solve will trigger the Forwards Solve node chain. Moving controls in this mode affects their current position only and is temporary.

Backwards Solve will fire the Backwards Solve node chain. You can use this mode to have the bones drive the controls, instead of the other way around, in order to allow for the Bake to Control Rig functionality in Sequencer.

Backwards and Forwards will fire first the Backwards Solve chain, then the Forwards Solve chain. Typically you would use this if you want to validate both chains are working together well sequentially.

Auto Compile

image alt text

Enable this to set compiling to automatically occur when you make changes in the Rig Graph. All other changes mentioned above will still require you to manually Compile.

Debug Object

image alt text

This drop-down menu allows you to link the Control Rig viewport to an active game session's character. This enables you to preview the current animation from that session in the Control Rig viewport.

control rig debug object link

Class Settings

image alt text

Most of the items here are ordinary Blueprint properties. Class Settings within Control Rig Blueprints contain the Gizmo Library, which you can use to edit the various Gizmos that controls use to define their shapes.

image alt text

Viewport

The viewport is where you can interact with your control rig nodes, as well as set different preview modes and display settings.

control rig viewport

Control Rig options are located within the View Options panel. Display Spaces enables/disables the drawing of the local axis for any Space objects in the scene. Display Axes on Selection will only draw the local axis if the Space is selected, and Axes Scale will scale the axis being drawn.

control rig view options

Rig Hierarchy

The Rig Hierarchy panel is used to view your current Skeleton and Control hierarchy in an outliner-type view. This is also the primary area to create new Bones, Controls and Spaces.

Create these elements by right-clicking in the panel and selecting New > Bone, Control, or Space. This will create a new control at 0,0,0.

create control space bone

Other context menu commands are:

Reset Transform / All Transforms

This command resets your currently selected node, or all nodes back to their initial transform.

control rig reset transform

Set Initial Transform from Current

Use this command to set the Initial Transform to the current location of your node. Resetting the transform will now reset it to this new location.

control rig initial transform

Set Initial Transform from Closest Bone

Using this command will snap your selected Control to the nearest bone and set that location as the Initial Transform. Useful for aligning your controls to bones.

control rig closest bone

Set Gizmo Transform from Current

If you are transforming your gizmo, performing this command will reset the Gizmo's pivot point back to its initial transform, but maintain the current visual position of the Gizmo. Useful if you want to customize your gizmo's visual position while keeping the pivot point the same.

control rig gizmo transform offset

Unparent

Unparent will remove the currently selected node and place it at the top of the hierarchy.

control rig unparent

Execution Stack

The Execution Stack panel allows you to preview the order of operations within your graph. This can be used to debug your nodes and evaluate the sequence of events.

Right-clicking on an execution node and selecting Focus on Selection will frame that current node in the Rig Graph.

control rig execution stack

Rig Graph

The Rig Graph is where you will primarily script the Control Rig's behavior.

Hierarchy nodes can be referenced into the graph by dragging and dropping them from the Hierarchy panel into the graph and selecting your desired reference type.

control rig graph

Nodes can also be created by right-clicking. Search or navigate the context menu for your desired node. Any node with an execution event will automatically hook itself into the previous node's execution event for convenience.

control rig graph

Details / Preview Scene

The Details panel contains the information for your selected elements within the Control Rig Editor. These can include elements such as controls, bones, and graph nodes.

control rig details

The Preview Scene panel contains visual information for your viewport scene. You can change the skeletal mesh preview, adjust lighting, and other various visual settings here.

My Blueprint

The My Blueprint panel, similar to that found in normal Blueprints, houses your various Functions and Variables.

image alt text

Functions and Variables are added by clicking the Add buttons either in the top left of the panel, or on the respective headers.

image alt text

Variables in Control Rig are meant to be used within your Rig Graph as a way to drive logic, rather than being exposed directly to an instance in a level.

Create a Basic FK Control Rig

This section will cover how you can create a simple FK (Forward Kinematic) Control Rig. This example will use a relatively simple robotic arm with 5 main bones.

Start by creating the Control Rig Asset for your desired Skeletal Mesh. Right-click on the asset in the Content Browser and select Create Control Rig. Once this is done, open the asset.

create control rig

Create Controls

Now, create your first control, which likely will be the Root. Right-click in the Rig Hierarchy and select New > New Control. Controls created in this manner will be created at the 0,0,0 coordinates of the scene. You may want to rename this control after creation.

create control rig root

It is possible your control is not visible in the viewport, as is the case with this example. To change the Gizmo shape and color, select the control and navigate in the Details panel to the Gizmo category. The properties here will allow you to customize the control's shape, size, and color.

control rig gizmo shape color size

Now go ahead and create controls for the rest of the bones. One way to do this effectively is to right-click on your desired bones and select New > New Control. This way your controls will be created at the same transform as the selected bones, allowing for easier alignment.

create fk controls control rig

Parenting and Hierarchy

Once you've adjusted your Controls shapes and names, you should also unparent them from the Skeletal Hierarchy, and make your own hierarchy of controls separate from the bones. Do this by right-clicking on the control and select Unparent. Once all controls are unparented, make sure you delete the Space nodes, as they are no longer needed.

control rig unparent

Now you can re-create the Hierarchy on your controls. To do this, drag and drop a control in the Rig Hierarchy view to parent it to the target control. Do this for all controls.

Rig Logic

With your Rig Hierarchy ready, you can now start binding your controls to affect the bones.

Start by dragging the Root bone from the Hierarchy panel to the Rig Graph and select Set Transform, which will create a Set Transform node targeting that bone. Then drag and drop the corresponding control into the graph and select Get Control. Finally, connect the Transform pins from the Get Transform - Control node to the Set Transform - Bone node.

control rig set transform

Feel free to move your control to preview how it affects the bone. Enabling Propagate to Children on the Set Transform node will allow you to see the change propagate down the entire hierarchy from that bone.

control rig move control

Now go ahead and create a similar logic chain for the rest of your bones and controls. Connect each Control's Get Transform node to a corresponding Set Transform node on the Bone.

image alt text

Once completed, all your controls should manipulate their respective bones. Remember that you can use the Compile button as a quick way to reset your controls back to their initial transform.

control rig fk controls

Create a Basic IK Control Rig

This section will cover how you can create a simple IK (Inverse Kinematic) Control Rig. This example will use a relatively simple robotic arm with 5 main bones. It will also assume you have a Control Rig Asset already created with a Root control, as was covered earlier in this document.

Create Controls

Start by creating the end effector Control. Since this is only a relatively simple example, you only need to create a single IK effector control.

Right click on the desired bone (hand) and press CTRL+N to quickly create a new control on the selected bone. Then unparent it from that control by right clicking it and selecting Unparent. Delete the corresponding Space element as it is not necessary.

create control hotkey

Feel free to also name your control and set your desired color, size, and shape in the Details panel.

Rig Logic

In the Rig Graph, right-click and browse to Hierarchy > CCDIK. Select it to create this node. The CCDIK node is a type of IK node that will allow you to connect your various bones and effectors.

control rig ccdik

Next, create an Item Chain node. Do this by right clicking in the graph and selecting Collections > Item Chain. The Item Chain node is used to define your start and end bones in the IK Chain. Once defined, they will include all other bones in between them to form the entire chain collection.

In the First Item category, set the Name to your desired start bone. Do the same for Last Item Name as well.

image alt text

Finally, drag and drop your Effector Control from the Rig Hierarchy to the Graph and select Get Control. Hook up the Transform pin from the Get Transform - Control node to the CCDIK Effector Transform pin. Then hook up the Collection pin from I**tem Chain to the CCDIK Items** pin.

control rig ik ccdik item chain

Your IK Chain should now work. Move the Control in the viewport to see your results. You may also want to enable the Propagate to Children bool on the CCDIK node to allow the child bones to follow along.

control rig ik propagate

Animating in Sequencer

Once you have a completed Control Rig, you can animate it in Sequencer.

An easy way to do this is by dragging the Control Rig Asset from the Content Browser into your level. This will automatically create and open a new Sequencer Asset so you can start animating.

control rig level

To set keyframes on your controls, press either Enter (to key all), or the S key (to key transform only) with the control selected.

control rig sequencer keyframe

Your controls are located as child tracks under the primary Control Rig track. You can either view all keys set on all controls, or expand further to see individual controls with their associated keyframes.

control rig sequencer tracks

Continue animating your controls until you've achieved your desired animation.

control rig animate sequencer