In the attached project, when we initially add a control rig track for the actor with multiple skeletal mesh components, we add the control rig for the correct component because FControlRigParameterTrackEditor::AddTrackForComponent iterates over all components until one is found with a default rig.
However, on restarting the project and re-opening the level sequence, we attempt to add the control rig to the wrong skeletal mesh component. This then breaks the sequence so the control rig no longer drives the mesh of the actor. It seems this is because FControlRigObjectBinding::GetBindableObject will return the first skeletal mesh component found which may, or may not, be the one referencing the control rig. It also seems that FindComponentByClass is non-deterministic, when the project is run in 5.1 the second skeletal mesh comp is returned but in 5.2 the first mesh comp is returned (which contains the reference to the control rig).
Changing FControlRigObjectBinding::GetBindableObject to iterate over all the mesh components until a default animating rig is found seems to resolve the issue but this doesn't feel like the correct fix.
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-182358 in the post.
0 |
Component | UE - Anim - Rigging - Control Rig |
---|---|
Affects Versions | 5.1 |
Target Fix | 5.6 |
Created | Apr 4, 2023 |
---|---|
Updated | Sep 19, 2024 |