Discrepancy in animations between Blender and Unity.

I’m still in the learning process for the Blender>Unity workflow, and still feel reasonably new to both programs individually anyway, so this could just be me not knowing an obvious setting, etc.

The character I’ve rigged and animated in Blender has a tail, and I’ve been using Spline IK to create realistic ‘swishy’ movement for it. This works very well, looks nice, etc, etc.

But as soon as I export it, (I’m doing so as .fbx,) and throw it into my Unity project, the tail movement is broken. More accurately, the movement of the last bone in the tail is broken, randomly twisting to the side for half the loop - not something it does in Blender.

In Blender:

In Unity:

These are from the same frame of the animation, but in Unity, the twisting occurs. I have a hunch that this in some way comes from the Spline IK, since this is the only place I use that constraint, and the only place the error occurs.

Suggestions welcome.

I’m betting you are right about the Constraint. Blender won’t export a lot of stuff it does internally for itself (or its own use) to .FBX, which is a lot of it’s Bone Constraints and such things as drivers and python… (duh though, if only you could). Your Basic IK will work as it bakes correctly and “I think” you can get some others to work, but I usually just stick to the basic IK and nothing else. That goes for modifiers and really anything. You should really only have the mesh(es), armature, animations, and the armature modifier in your .blend file before using it or exporting it to .FBX.

The other thing I suggest would be trying different Chain Scaling options. Export sometimes changes the outcome of these since it’s not really keeping the Constraints but trying it’s best guess at Baking them into the animation.

Using Blender with Unity can be a hassle. It took me about a year to get it working smoothly. I’m not an expert in the particular matter but I’ve been using Blender since the turn of the century. I try my best to help anyone solve their Blender+Unity related problems as I’ve had many of my questions go unanswered so I assume there must be a need for more info on the matter.

Quite simply make sure to Apply Location rotation and Scale. Check the ‘Roll’ or your bones and particularly that z axis or joints are aligned and pointing in the direction of movement.

Also check for loose geometry and Mis-Weight-Painted vertices (easy to do).

I’ll give you my personal advice for this, since you’re still starting:

From my own experience, as well as other people’s I’ve talked to, mixing Blender with Unity is like adding chocolate syrup to salted fish. You’ll likely spend days fighting with problems and getting pissed at using the 247 exporting options for Blender, with most of them not working at all in Unity, or seemingly working, until the one day they don’t anymore.

I’d suggest using a different software (like 3D studio max, or Maya). Both of them have student/learning editions which you can use until you get accustomed. Or, go with Blender and prepare for the two cringiest weeks in your life.

It used to work better several years ago, but the last time I tried exporting something from Blender to Unity (last year), it was jumbled mess, I lost hours of work, and I ended up never figuring it out, and going back to other programs.

So my advice, as crappy as it may sound, would be: Don’t bother and switch while you still can.

My (lame) two cents.