Creating a Control rig For A Skeletal Mesh
Note: we learned from this page: https://www.versluis.com/2024/03/creating-a-control-rig-from-scratch-in-unreal-engine/
A Control rig is a Design time control you create that you can interact with the bone
You are essential assigning this control and mapping it to a existing bone,
from there you can move this control as you would the bone
Step 1: Choose some bones , Drag them to the Graph and select Create Item Array
Step 2:
With those Bones selected right Click New->Add Controls for Selected
Step 3: Expand the newly created controls if subcontrols were created
Here is a pic of the newly created controls unexpanded
And here are the same Controls expanded
Step 4: Drag the expanded controls(if they need expanding) to the graph and select Create Item array
1. Foward Solve is setting the Bones Transform to the Control Rig Transform
Forward solve requires a 1:1 mapping and dragging and dropping the controls and bone arrays even
if you selected them in the correct order won't typically have them match up, so you need to manually
do it
2. Backward Solve is setting the Control Transform to the bone Transform (The reverse of Foward Solve)
All your doing is Swapping the position on the Two Item arrays
Below are some quotes explaining why we need Backward Solve
UE needs a Backwards Solve to translate an animation into Control Rig information so we can adjust it.
-https://www.versluis.com/2024/03/creating-a-control-rig-from-scratch-in-unreal-engine/
you need the backward solve to bake the animation to control rig to have access to all the keyframes
-https://forums.unrealengine.com/t/cant-edit-animations-in-sequencer-because-cant-select-control-rig/756274
3. You can also Use Item Name search if you don't want to setup your arrays, this uses more compute
time, and you have to adjust your Node Run Limit, in class settings, to at least 702
You can also do it for Backwards Solve
Note this method is only shown for knowledge its recommended you use the Array mappings as it faster
4. You won't use the skeletal mesh anymore but the control rig you created for it, you can drag this into the level
or sequencer and use it as you would the skeletal mesh.
Bugs
1.If your getting compile errors Array index(1) out of bounds (count 4) than a possible fix is to close
the control rig editor window and reopen and recompiled.
I'm able to reproduce this bug if I Add a new Item array To a already existing and working forward/backward solve
Typically when I'm trying to add more bones and having to create new arrays
2. (Can't Edit The Control Rig, Controls Grey out)If you reference the Control rig in your level, than you can't edit the control rig, if you can't edit the control rig delete all references to the control rig, and
3.The Forward and backward Solve arrays require a 1:1 mapping of the bones, and for some reason control selecting them in order doesn't give a 1:1 order, you will typically have to manually set the 1:1 mappings yourself
Notes
At one point I thought I copied to many bones and it doesn't match the control array
however, the item array for the bones will always list all bones, and not just the ones copied
You can verify if you copied the right amount by matching the elements in the array
See Also
How to Create Functions in Control rig: https://dev.epicgames.com/documentation/en-us/unreal-engine/control-rig-function-libraries-in-unreal-engine