How can animation be evaluated at a specific frame rate?

I am trying to prototype a game where all my animations are respecting the specific frame rate at which they have been created. To simplify my explanation, let’s take the example of a 10 fps animation. In essence, that means that if the engine is running at 60 fps the animation should only be evaluated 6 times.

In a content editor like Maya, the natural behavior is to playback animations at a specified frame rate. On the other hand, in a game engine like Unreal the data is evaluated as many times as possible, therefore, revealing sub-frame data that was not meant to be exposed. To summarize, animations will become extremely fluid instead of preserving their more choppy nature. A successful implementation of such concept would be this Unreal Engine 4 game.

I would really be grateful if anyone knows an existing solution or maybe has an idea for a way to implement such update mechanism?

Unfortunately I don’t have a clean way to achieve that look, but maybe you can use this workaround:

  1. In Maya, bake your animation with the desired number of frames.
  2. Scale up the baked animation curves to about 10x the original length. (It must have enough frames to exceed your FPS in UE4 so the engine can’t interpolate between frames.)
  3. Change the interpolation of your keys to “step tangents”, bake again and export as FBX.
  4. In Unreal, set the “Rate Scale” to 10.

Of course doing all those steps manually is a pain if you’re working with a large amount of animations, but maybe you can write a MEL script to take care of that.

It’s OK because since currently I already have a script that converts my scene in 120 FPS before it plots and exports. With the high frame rate FBX you do not have to set your “Rate Scale” to something different and the animation is played a little more faithfully than exported at 30 FPS. That being said this is not perfect, it still looks somehow smooth because it still ends up evaluating in between frames. So I am going to change my script in order to try what you are suggesting above and let you know how that works. Thanks.

OK… I tried your technique which works, but then, to be sure I also tried my technique but exporting the FBX at 240 FPS this time. That works too and is probably more elegant since you do not need to change the “Rate Scale”. So basically the more key-frames you can stick in there the best it will preserve your stepping. I still think this is a pretty bad technical solution as it makes file way heavier but it is visually satisfying so I’ll stick with that until someone comes up with a way to limit how many times the animation is updated per second.

The problem is solved by this pull request on GitHub.
Seems that Epic is interested in the feature so it might make it into the official release.

The link does not work :frowning:

Sry I have just found out, that in order to access the above link which still works, you need to connect your Epic games account with a github account and than accept an automatically generated invitation on github to join epic games group.

see this tutorial to do so