How to fix odd interpolation issues in Unity

Hi there,

I’m currently at the tail end of a game project creating 3d assets for export to Unity.

I am trying to export animation (cut scenes , animation states ) from 3ds max to Unity and have come across a strange issue regarding interpolation / curves in Unity.

To give an example of this issue. In 3ds max, I have a flat 2D character who rotates 180 degrees over 1 frame, so he can seamlessly flip and change directions (No interpolation). I have exported this animation as a FBX and brought it into unity.

All the animation loads perfectly except for one recurring issue. I have noticed that for some reason Unity is changing the curves and adding interpolation to the frames that are animated on ones in 3ds max. So instead of flipping over 1 frame as it is in 3ds max, the character turns over 6 frames in Unity.

It has nothing to do with our rig, as I have tested a simple box from 3ds max, and it has the same problem.

Now, ill be honest, I am pretty much a new comer to Unity, and am only using it to test the assets before sending them the coders…

I am sure this is an easy fix but I need to resolve it as quickly as possible and I would appreciate any help from the community.

Cheers.

My guess would be to check out the tangents on the keyframes in your max scene and set them to stepped (or whatever Max has), so there is no interpolation between the frames (even if you have a keyframe on frame 1 and another one on frame 2 there is infinite amount of subframes in between of those two and it’s usually used to render motion blur).

So if you’re running your animation in Max in let’s say 30 fps, then you won’t see the interpolation happening, but since you’re importing it to Unity and it runs at variable fps it will show the interpolation then.

Use the Animation window to view and edit all keyframes. When you select a keyframe, click the elipsed icon right after the node’s name and change the keyframe’s interpolation to ‘constant’, which is the equivalent to 3ds max’s steped interpolation.

The elipsed icon i’m referring is the cyan/magenta/yellow colored icon as shown on the page below:
http://docs.unity3d.com/Documentation/Manual/UsingAnimCurves.html

actually I found this answer and it helped me to solve exactly the problem of auto-interpolation of imported keys.