ReImporting AnimationSequence doesn't work when using "takes"

Apologies in advance if this is a known error or has been fixed since 4.12 but I have spent over an hour looking online and in answers.unrealengine to try to get some info and I couldn’t find anything that was quite like this situation… so, here goes:

I have exported an FBX(binary 2014 format) from Maya 2016 and I have configured the scene so that it contains a single animated cylinder with TWO different animation “takes” (or “splits”)

The 1st “take” is named “look” and occurs over frames 0-240

The 2nd “take” is named “jump” and occurs over frames 240-480

When I export it to FBX I use: “Animation: ON, Bake Animation ON, Start:0, End:480, Step:1 and Resample All ON.” and I then end up with a single fbx file written out (“WeirdPipe.fbx”).

To test it has output what I want I can import this fbx back into a new, clean scene in Maya and it gives me the option to import one of THREE animation takes: “Take_001”, “look” and “jump”. This is slightly irksome but apparently normal, no matter how many anim takes/splits you define, the Maya FBX exporter always exports a “Take_001” which is the entire animation. I can live with this and it’s not related to my issue (afaik).

Anyway, if I test import either of the “look” or “jump” takes back into Maya I get exactly what I expect to see, just the “look” or the “jump” animations and nothing else. So the FBX seems to have output completely correctly and as expected.

If I then go to UE4 and Import this FBX it is all completely successful and I end up with 5 new assets (Create Physics Asset is OFF btw):

  • a skeletal mesh: WeirdPipe
  • a skeleton: WeirdPipe_Skeleton

and three Animation Sequences:

  • WeirdPipe_Anim_jump
  • WeirdPipe_Anim_look
  • WeirdPipe_Anim_Take_001

If I double-click any of the Animation Sequence assets to preview them in their editor they all work 100% correct. The entire process seems to have worked perfectly. I have two Animation Sequences named “jump” and “look” that are both reported as 241 frames long and they both play perfectly and match exactly their respective animations from Maya. I also have that irksome third Animation Sequence called Take_001 that is 481 frames long but I can just delete this as it’s not required.

Some relevant import options I used were:

  • Import as Skeletal ON
  • Import Mesh ON
  • Skeleton [ None ]
  • Import Animations ON
  • Animation Length [ Exported Time ]
  • Frame Import Range [Min 0] [Max 0]

There are other option ofc, but I don’t think any of the other options are relevant here. I didn’t set the Frame Import Range because I’m not using Set Range for Animation Length. If I try to change Animation Length to Set Range I get an import error (remember there are 3 separate anims in here anyway)

So, up to this point everything has worked perfectly. However, if I go back to Maya and edit any part of the animation then re-export the fbx it all falls apart when I try to ReImport an Animation Sequence.

Here’s what I do:

Edit the animation in Maya and re-export the fbx (all the same config as before). I can import the updated fbx into a new clean scene again to test it in Maya and it’s all still correct.

I come back to UE4 and right-click on the relevant Animation Sequence (e.g. WeirdPipe_Anim_jump) in the Content Browser and select ReImport. It says:

Successfully Reimported: WeirdPipe_Anim_jump (AnimSequence) from file (WeirdPipe.fbx)

And now if I try to preview the updated animation it’s reporting it as 481 frames long and it plays the entire look/jump animation. If I check the Output Log it reports this:

LogEditorFactories: Performing atomic reimport of [C:/Naughty/Work/projects/Test/Content/Objects/WeirdPipe/Geometry/WeirdPipe.fbx]
LogFbx: Loading FBX Scene from C:/Naughty/Work/projects/Test/Content/Objects/WeirdPipe/Geometry/WeirdPipe.fbx
LogFbx: FBX Scene Loaded Succesfully
LogFbx: =================================================
LogFbx: Dumping Node START [pCylinder1] 
LogFbx:     Total Deformer Count 963029696.
LogFbx:         [Node 1]  (Type Skin).
LogFbx: =================================================
LogFbx:     Attribute () Type (4).
LogFbx:         [Node Attribute Child 1] pCylinder1 (Type Mesh).
LogFbx: Dumping Node END [pCylinder1]
LogFbx: =================================================
LogFbx: Dumping Node START [pCylinder1] 
LogFbx:     Total Deformer Count 963029696.
LogFbx:         [Node 1]  (Type Skin).
LogFbx: =================================================
LogFbx:     Attribute () Type (4).
LogFbx:         [Node Attribute Child 1] pCylinder1 (Type Mesh).
LogFbx: Dumping Node END [pCylinder1]
LogFbx: Parsing AnimStack Take 001
LogAnimationCompression: Building Anim DDC data for AnimSequence /Game/NaughtyTests/WeirdPipe_Anim_jump.WeirdPipe_Anim_jump
LogEditorFactories: -- imported successfully

So I think the line: Parsing AnimStack Take 001 maybe highlights the problem… Does each AnimSequence store a record of which “take” was used to originally create it?

I saw another post about turning on “Set Range” for ReImport but this didn’t seem to have any effect in my case. In fact, I don’t even need to change the animation or fbx, if I do a ReImport on the new asset immediately after creation using the same original fbx the result has the same problem as this.

Has anyone else come across this issue, anyone have any workarounds?

Thanks, and sorry for the long read.

I’ve tested this in 4.15 and it seems to be fixed and working completely as expected!

Sorry for any confusion

1 Like