ARKit facial curves break when retargeting in UE 5.8

Summary

IK Retargeter’s “Copy All Source Curves” option produces corrupted animation curve values on export in UE 5.8. Curve values progressively increase over the duration of the clip, reaching magnitudes in the thousands on curves whose source values are normalized 0–1. The retarget preview displays correct values; only the exported Animation Sequence is affected. Using explicit “Curves to Remap” pairs instead produces correct output. The same setup built from scratch in 5.7.4 exports correctly.

What Type of Bug are you experiencing?

Animation

Steps to Reproduce

  1. Import an FBX containing body animation and ARKit facial blendshape curves (52 shapes). Source: Rokoko Studio [add suit/face capture hardware].

  2. Verify the imported Animation Sequence on its own skeleton — body and facial curves are correct, curve values within 0–1.

  3. Import a target character with matching ARKit morph target names [add avatar source].

  4. Create an IK Retargeter between source and target (hand-authored or via the 5.8 auto-retargeter — both reproduce).

  5. In the Retarget Stack, select the Remap Curves op. Confirm “Copy All Source Curves” is enabled and “Curves to Remap” is empty (default state).

  6. Observe the retarget preview — facial animation is correct.

  7. Export the animation via Export Selected Animations.

  8. Open the exported Animation Sequence and inspect facial curve values in the curve editor.

Expected Result

Exported curve values match the source animation, remaining within their source range of 0–1. Facial animation on the target matches the preview.

Observed Result

Exported facial curve values bug out like crazy, reaching values in the thousands by the end. Playback shows severe facial distortion. The body retarget is unaffected.

Additional findings that may help isolate this:

Disabling the entire Remap Curves op via its “Enabled” property removes facial animation from the preview but the export still contains the corrupted curves. This suggests the exporter does not read the op’s enabled state and falls back to copy-all behavior.
Unchecking “Copy All Source Curves” (op left enabled) correctly results in no facial curves in the export, confirming the exporter does read this property.
With “Copy All Source Curves” unchecked and explicit source→target pairs added to “Curves to Remap” (identical names on both sides), exported values are correct. The explicit remap path is unaffected; only copy-all is corrupted.
Reproduces on two different ARKit-compatible target avatars.
Reproduces with a retargeter generated by 5.8’s built-in auto-retargeter, so migrated/upgraded assets are not a factor.

Affects Versions

5.8

Platform(s)

Windows

Additional Notes

This was not an issue on 5.7.4.