Hello my dear Blender experts!
The title sums it up pretty well. Whenever I try to export my animation from blender to Unity all I get is the first frame of the animation. I've been bugging with this issue for a solid 3 days now and I'm completely out of ideas. I've tried a million different combinations of settings when exporting, all resulting in the same result or no animation being exported at all.
EDIT: I figured out that the animation exports fine when setting the Frame Rate of the scene to anything that isn't 30 FPS. Unfortunately it obviously has the wrong speed then, 60 makes it twice as fast which is not what I want. In theory I could export it as a 60 FPS animation and slow it down back in Unity but obviously that's not a forever-solution. Figuring out that it's related to the scene's frame rate is a good start though, I guess. Any idea why only 1 frame get's exported in 30 FPS?
If you have any idea on what could be happening, any help is appreciated. In case you want some more context, here's some info:
SETUP - My blender scene consists of:
- The character mesh
- The character armature (which is the actual skeleton that the mesh is parented to)
- And a control armature (which contains things like IK bones, extra bones for heel roll etc., anything that's not needed on the actual skeleton. I believe another term is meta-rig but I'm not sure)
Each bone of the character armature has a "Copy Transform" constraint with the corresponding bone of the control armature as a target, so any motion from the control armature gets applied to the character armature. Animating (and thus keying) is all done on the control armature. The plan was to bake the animation onto the character armature once I'm done with the animation, as this was my usual workflow back when I used Maya.
The Skeleton and Skinned Mesh have already been exported as a seperate file as I like to have the rig and animations seperate. Both the blender files for the rig and animation are identical though, the animation just gets exported without the mesh as to not clutter the project with unnecessary/duplicate data.
So far this setup worked perfectly fine so I hope it's not part of the problem.
EXPORT FLOW - This is what I tried to export the animation:
- Select my character armature in object mode
- Switch to pose mode and press "a" to select all bones of the character armature
- Open the Bake Action window via Pose > Animation > Bake Action
- "Start Frame" is set to 0 and "End Frame" is set to 20 (as the animation is 20 frames long), "Frame Step" is set to 1
- Select the following settings:
- Press OK
- The animation of the control armature has successfully been baked onto the character armature
- Press "a" key to select all bones of the character armature again in pose mode
- Go to File > Export > FBX (.fbx)
- Setting the following settings:
- Press "Export FBX"
- Setting up the FBX file in Unity
Now here's where my journey ends. The animation is only 1 frame long but also only 1 FPS... which lead me to believe that it's a problem with the Sampling Rate but like I said, I basically checked every export setting there is to see if it has any other result but unfortunately nothing changed.
Here's some of the things that I tried already that didn't help:
- Exporting both the animation and the mesh instead of the animation only
- Add the action to the Non-Linear-Animation table
- In- and decreasing the "Sample Rate" in the > Bake Animation Tab
- In- and decreasing the "Simplify" amount
- Exporting the whole scene, not just "Selected Objects"
- Baking the character armature in object mode instead of the bones in pose mode
- Deleting all unnecessary objects from the scene, leaving only the character armature (which still animates perfectly fine)
Again, any help is appreciated. If you can think of anything, I'd love to hear from you. Thanks in advance! (And sorry for the wall of text, I'd just rather have too much info than too little)