I imported an a character to Unity 2019.2.8 that I made in Blender 8.0, which was exported from that program in .FBX format. The animations play back the same (perceptually, but the keyframes are very messy and out of place by comparison.

What can be causing this? The animations in Blender and Unity are the same length (I checked) so what happened to the keys? How can I re-import these animations so that the keys match?

EXAMPLE: (this all happens in Blender 8.1)

In Blender, have a rigged and animated character ready:

enter image description here

These animations (this animation in particular, "Battle_Punch") was recorded with the Frame Rate set to 60fps. That may not be true for all of them (hope not) but it is for this one.

Prior to export, I select all the objects in under the Luigi collection. I do that by right-clicking the Armature object in the Collections panel and selecting "Select Hierarchy".

Then I use the following FBX export settings:

enter image description here

Of particular note should be the options to export only what is selected. I set the normals to "face" because once-upon-a-time, that worked well for me when the default did not.

Here are my FBX IMPORT settings inside Unity:


enter image description here


enter image description here

Animation (only change is Import Constraints-YES and Anim. Compression-NONE):

enter image description here

(I'm sure the Materials settings are unimportant for this)

Here are they keyframes I get with Anim. Compression set to NONE:

enter image description here

...and here is what I get with the default setting (Reduced Keyframes). This result is the same as if I select OPTIMAL:

enter image description here

You can compare this to the keyframes in the first image and see that this outcome resembles shotgun fire better than it resembles my keyframes.

Now, an observation: Tinkering with the translation/rotation/scale error settings under Reduced Keyframes in the Animations import settings will give me more keyframes, but I can't confirm this is more consistent with what I started with because it will insert a keyframe for every position, not just where the original keyframes were.

How do I get keyframes ONLY where my original keyframes were?

  • \$\begingroup\$ Can you walk us through the steps required to set up an animation that demonstrates this problem, so we can reproduce the issue in a new project? My best guess is that you're using a form of interpolation, IK, or other animation control in Blender that's not natively supported by Unity or the FBX format, so it has to bake out the results to simpler interpolation primitives — meaning generating additional keyframes automatically. \$\endgroup\$
    – DMGregory
    Dec 29, 2019 at 21:57
  • \$\begingroup\$ Yes, I have updated my question with a complete walkthrough, including images. \$\endgroup\$ Jan 2, 2020 at 1:24


You must log in to answer this question.

Browse other questions tagged .