Today I used the Windows Phone SDK v7.1 for the first time. This includes a fix for the FBX importer so that multiple animations can now be imported from one FBX file.
This is great but a friend of mine managed to find a bug with the process already! I have also carried out some tests.
Whatever the length of the first animation in the FBX file is the length of all animation imported from that FBX file. I only have access to FBX files exported myself from Blender.
To try to explain a bit better, if your first animation has 30 frames and your second take has 60 frames, the second animation in XNA will only play 30 frames instead of 60! It is also a problem the other way round. If the first animation is 240 frames and the you have an animation that should loop at 60 frames unfortunately it will pause after the 60th frame and not loop until it gets to 240 frames!
With that knowledge it is possible to create separate files with all the same length animations in each file, or just export one action per file as I already do.
As far as I can tell the Blender FBX file lists the correct number of frames and times for each action. I would like to know if this affects other exporters, such as 3DS. Unless I have a sample FBX file that does work with multiple takes in XNA with the first being a different length to the others then there is little chance of me being able to create a script that works round this peculiarity!
For myself I am already used to exporting individual animations so I will continue to do so.
== Follow up ==
I posted a question on the XNA forums to see if it is a problem for others:
I had a very nice reply from one of the XNA developers who confirmed that they see the same problem and it will now be reported as a bug.
I have a project that may help some people. It includes methods for splitting FBX files and allows loading of one animation at a time for testing:
I keep my animations separate from the model anyway so they can be shared but if you want to merge them all together the following article explains how: