[4.7.6] Animation always interpolated

When using animation with step curves, that is stop-motion like animation, the animation is interpolated between key-frames. But as I’m using the step curves, the animation shouldn’t be interpolated, but should stay “same” for the whole frame duration.

Here is a .fbx I’m using for the testing http://www.megafileupload.com/1YXl/walking_soldier_u.zip.

I’m exporting it from the maya, with baked animations.

edit: See also No interpolation between frames in animation - Character & Animation - Epic Developer Community Forums

Hi Trigve,

I had some issues downloading your example fbx. 7zip and Windows couldn’t unzip your file. Also, did you mean to link to the entire animation forum page or a specific thread?

Anyways, even without the example asset, I’ve gone about importing a blank animation with a morph target and controlling it through the curves editor. I set each point to have a “Constant” interpolation(stepped), but it appeared to behave as expected (no gradual interpolation from one point to another, but instead it jumps from one value to the next over one frame).

Can you provide some screenshots or maybe new example content?

-.

Hi,
Thanks for the reply and sorry for the bad thread link. Here is the right one No interpolation between frames in animation - Character & Animation - Epic Developer Community Forums .

Also, sorry for the .zip. It is actually the .fbx file so just rename the extension to “.fbx”. I must have thinking it is actual zip.

Hey Trigve,

Sorry for the delayed response on this. The way that the editor handles animation playback is why you’re seeing this issue. Whereas Maya/Max actually jump from one frame to the next, Unreal actually plays “through” each frame…so to speak. There isn’t really a way to get stepped curves to work exactly the way you’re looking for.

A way to mask that interpolation would be to export your animations at 60fps, hiding it with a quicker transition.

-.

Thanks for the answer.

I do think that I have wrongly formulated the problem :slight_smile:

As first I’m not pointing how the Maya/Max are playing animations. If I get it right, you’re saying that if we’re playing some animation in unreal and the animation current time ‘t’ “isn’t aligned to some frame”, the unreal interpolate the animation. Am I right? Because if I’m right, then the unreal animation system would read the curve value at given ‘t’ and it would find the same value as the previous frame time because of const curves. But it looks like the unreal is always interpolating curves by some predefined method, regardless what is written in fbx.

I may be (and possible am) wrong :slight_smile:

As for the workaround, does it means that the animation is played at MAX 60 fps?

Thanks

Hello,

There are two problems here.

  1. When we import, we sample curves to frames, meaning we don’t get the curve data from FBX. If you have step curve, it won’t get imported. We just go through each frame, evaluate the curve and save it.
  2. Second, when this gets played in game, please note that our engine doesn’t run on fixed frame by default. Your delta time for each frame can vary. When you have animation with interval of 0.2, and when your delta time is 0.3, you’re between frames of 0.2 and 0.4, so we interpolate of two keys. This is why you’re seeing the interpolation of the curves.

The solution suggested will mitigate the issue, but you’re likely still see the problem. You can go really high fps to make it better.

What I’d do is to create blueprint with playing each frame and stop. You can set IsPlaying(false) to just pause and not move forward. Basically you’re re-simulating step with blueprint.

We do have fixed frame mode, which you’ll have to run game with that option, but that means your physics simulation can be mismatched. We use this mode for matinee video capture.

Thanks,

–Lina,

In addition to Lina’s response, I just wanted to send this along as an example of importing FBX’s that were originally baked at 60fps and 120fps to show how much closer they are to your desired look than the original 30fps version that you sent to us.

ExampleProject

Included in the root of the project are 2 fbx files as well.

This is really awful by the way - stepping is used to hide all kinds of things that can’t make sense with animations and limited component parts or objects.

Where is Unreal getting the interpolation from to blend, is it adding frames? Surely if an object snaps from one point to another within 1 frame, there is no extra time information to blend, so is it messing the with animations?

Horrible :frowning:

Here’s an example of playing each frame of a 24fps animation using the method mentioned above to avoid interpolation:

The skeletal mesh “UV Warp Test” is set to have a playback speed of 0.