Attach tracks lose attachment if subsequence asset is moved

Moving a level sequence asset that contains actors that are being referenced as a subsequence in an attach track causes the references to drop, even though the subsequence reference is correctly updated. Notably, moving the file BACK to the original location restores the references.

[Attachment Removed]

Steps to Reproduce

  1. Create two level sequences, e.g. “Inner” and “Outer”
  2. In the “Inner” one, place any actor, e.g. InnerActor; optionally add some transform keys to animate it
  3. In the “Outer” one, place the “Inner” one as a subsequence
  4. In the “Outer” one, place another actor, add an attach track to it, and attach it to the InnerActor inside the Inner subsequence (this e.g. would represent rigging a camera to an animated actor)
  5. Once everything is saved and working, move the Inner sequence asset in the Content browser to another folder

Result: While the Outer LS retains the reference to the Inner LS subsequence, the attachment disappears.

The repro project illustrates this cleanly:

  1. Open project
  2. Open the OuterSeq level sequence in the sequencer; observe that the camera is attached to the Cube actor, and that moving the playhead shows in the viewport that it’s correctly mounted to the cube.
  3. In the Content Browser, drag and drop the InnerSeq asset to move it to any other folder.
  4. Returning to the sequencer, the attachment to Cube is now gone, and the attach track clip no longer has a reference.
    [Attachment Removed]

Hey there,

Thanks for the excellent repro. I’ve logged an issue that you can follow here: https://issues.unrealengine.com/issue/UE-360880

Currently, this is a bit by design as we don’t have a mechanism to fix up the constraint ID on reload of the parent asset. It’s a local guid stored in the parent sequence, and when the subsequence asset is moved, we destroy and recreate that asset (a fundamental design of Unreal).

Unfortunately, there’s not much of a workaround at the moment as well.

[Attachment Removed]

It’s not much of a workaround, but what I’ve been doing to mitigate this is to just 1. duplicate the subsequence 2. move the duplicate to the new location and then 3. update the references manually while they’re still valid (i.e. you can see which actor they’re referring to).

It’s tedious, but it’s the least tedious method I could find right now.

[Attachment Removed]