x

Search in
Sort by:

Question Status:

Search help

  • Simple searches use one or more words. Separate the words with spaces (cat dog) to search cat,dog or both. Separate the words with plus signs (cat +dog) to search for items that may contain cat but must contain dog.
  • You can further refine your search on the search results page, where you can search by keywords, author, topic. These can be combined with each other. Examples
    • cat dog --matches anything with cat,dog or both
    • cat +dog --searches for cat +dog where dog is a mandatory term
    • cat -dog -- searches for cat excluding any result containing dog
    • [cats] —will restrict your search to results with topic named "cats"
    • [cats] [dogs] —will restrict your search to results with both topics, "cats", and "dogs"

Capping framerate of animations, while keeping game at high fps rate

I was wondering how i could cap the character animations to around 8-16 FPS to have an anime feeling, while keeping the frame-rates for the actual game at around 60-75FPS.

Product Version: Not Selected
Tags:
more ▼

asked Feb 09 '15 at 05:47 PM in Rendering

avatar image

BesuBaru
26 7 10 12

(comments are locked)
10|2000 characters needed characters left

2 answers: sort voted first

Framerates for an animation versus game framerates are two completely different concepts that simply use the same terminology.

The frame rate of your animation is determined by how many key frames are stored in the animation itself. To get the look you want for your animations, you wouldn't necessarily only have 8 - 16 frames, you could simply hold onto a specific keyframe for longer. In fact the easiest way to achieve this look would be to double the number of frames not reduce them. If you duplicate every frame so that it stays on screen longer, it would give the look of having less frames.

The framerate of a game is determined by the amount of information you are processing per draw call. A lot of different things factor into the game's FPS. Polycount, post processing effects, lighting, particles etc. Also each player's computer will give them a different degree of performance. The only way to guarantee a target FPS is to release your game on console where everyone has the same hardware running the game.

Finally everyone has the misconception that high FPS in games is the be all and end all when its really not. Consistent FPS is what matters. The human eye cannot see anything above 24 - 30 fps. In traditional animation, you're pretty much always going to get 24 fps because that's the number of frames they draw to give the smoothest presentation. In video games its different because everything is rendered in real time. You're not simply flipping through a series of static pages at a pre-determined frame rate. Every area of the game is going to have varying degrees of scene complexity and its that complexity that causes slowdown. Good design means that you can guarantee that the framerate on the vast majority of video cards is never going to drop below 24 frames per second. Higher is absolutely useless, its just means that your videocard is better than what you need to run the game. The only reason you want a video card capable of 60fps is to guarantee that it has so much power that you'll never dip below 24fps. A simple analogy would be the movie Speed staring Keanu Reeves and Sandra Bullock. There's a bomb on their bus that will go off if they drop below 50 miles per hour. For the entire movie they make sure they're driving at 60 - 70mph. In all honesty they could have driven at 51mph the entire time and technically they would have been safe but due to inconsistencies in the road like old ladies pushing baby carriages full of cans, they drive a lot faster than they should because they don't want to explode. FPS in games is like that. The extra speed gains you nothing, but its better to have more to guarantee you don't dip below 24.

more ▼

answered Mar 25 '15 at 12:20 PM

avatar image

TorQueMoD
1.1k 78 105 140

avatar image Douglas Lassance Apr 06 '15 at 09:17 AM

It's a detailed explanation but I don't think it answers the question. I asked a similar question here.

avatar image TorQueMoD Apr 06 '15 at 05:35 PM

I did answer that question though in the second paragraph.

The frame rate of your animation is determined by how many key frames are stored in the animation itself. To get the look you want for your animations, you wouldn't necessarily only have 8 - 16 frames, you could simply hold onto a specific keyframe for longer. In fact the easiest way to achieve this look would be to double the number of frames not reduce them.

I'm not an animator but I do have some experience with it. Its a visual look that you're trying to achieve not a technical one so do whatever is necessary to get it to look right in your software package. As I said, if you hold a frame for longer than you normally would, or do transitions more quickly it should give you the desired result.

Frame rates for the game are all based around the factors I detailed in the second part of my answer so if you keep that in mind, your game FPS will be high and won't affect the playback rate of your animations at all.

Think of your animation as a timeline rather than a frames per second. The rate at which it plays back doesn't change when the game's FPS changes. So if you have an animation that uses 60 frames, it will play back over a period of 2 seconds regardless of the game's FPS. A quick search on adjusting the playback rate of an animation gave me this result: https://answers.unrealengine.com/questions/41135/how-to-alter-the-animation-rate-of-a-given-animati.html

Also this is a good video to help explain things if that's easier for you https://www.youtube.com/watch?v=6rTx2MH-7qA

avatar image Douglas Lassance Apr 06 '15 at 06:37 PM

I see what you are saying but this is not the problem though. I do use stepped interpolation or duplicate key-frames to hold the poses longer on the DCC package. But whatever you do, Unreal will evaluate sub-frames between frames and therefore display stuff you do not want to see. Try it for yourself if you want. Make a cube, make it rotate from one pose to the next in a single frame, for example 4 to 5. Once it runs in the engine you will see a linear transition happen during the pose switch from 4 to 5. And I understand why this is happening, Unreal evaluates animation between frames of my DCC package, that being said this effect is not desired and instead we should be able to make the animation evaluate at the frame rate it was created.

avatar image TorQueMoD Apr 06 '15 at 07:42 PM

Ok interesting. Yeah like I said, I'm not an animator specifically - jack of all trades mostly. Maybe we can get an answer from one of the guys at Epic. Changing the playback rate obviously won't help either then as that's just going to make it look like slow motion or fast forward.

What happens if you get your animation looking the way you want using the method I suggested of having it hold on specific poses for longer and then place a keyframe at every frame so UE can't really affect the overall look? You'd essentially be baking down your animation rather than leaving any open frames.

avatar image Douglas Lassance Apr 07 '15 at 12:10 PM

What you suggest is actually my current half-successful workaround. Although my animation has less key-frames than a normal one what I do is I actually plot and export all my animations as 120 fps to reduce the chances for the engine to fall on a sub-step, that seems to produce slightly better result but it still interpolates. Also, it is loads of data.

avatar image spyro Dec 07 '15 at 09:40 AM

The human eye cannot see anything above 24 - 30 fps.

Er, no...?

http://testufo.com/#test=framerates

In traditional animation, you're pretty much always going to get 24 fps because that's the number of frames they draw to give the smoothest presentation.

Sorry, but that's just not true. This is just because of old cinema projectors and because celluloid was very expensive. They compensate that with motion blur in movies but even that can't hide the strobing when moving the camera horizontaly.

Good design means that you can guarantee that the framerate on the vast majority of video cards is never going to drop below 24 frames per second.

No, it's not. The display the game is running on is running with a fixed refresh rate of 60 Hz in almost all cases. 24 does not only lead to high input latency, it will lead to stuttering movements.

Higher is absolutely useless, its just means that your videocard is better than what you need to run the game. The only reason you want a video card capable of 60fps is to guarantee that it has so much power that you'll never dip below 24fps.

Jesus.

https://www.youtube.com/watch?v=QksH65BmjK4

(comments are locked)
10|2000 characters needed characters left

Ok guys so I did a test myself going with the assumption that the default settings weren't working and found that there are some extra import options(Animation Length) when importing an animation that might help you. Also want to mention I'm running the latest update on 4.7.

alt text

At the end however it turns out the default settings worked fine as well so I'm not sure what problem you're having but here's a video showing my setup and results: https://youtu.be/C4XLp5GJ08w

more ▼

answered Apr 06 '15 at 08:46 PM

avatar image

TorQueMoD
1.1k 78 105 140

avatar image Douglas Lassance Apr 06 '15 at 10:51 PM

Thanks for taking the time TorQueMod. What you show is working indeed, but this is not exactly what we are talking about. The issue we are talking about is quite subtle. I am attaching a ZIP file for you with a couple of FBXs ready for engine and a MAX scene. You will notice that you can actually see or feel the cube rotating from pose to pose compared to how it behave in the DCC package. It is even more obvious if you change the rate or scrub using the timeline. This effect sadly is even more noticeable on a full character.

avatar image TorQueMoD Apr 07 '15 at 12:05 AM

Apologies for not knowing the terminology but what do you mean the DCC package? Do you mean in max? Maybe its because I'm not an animator, but it looks fine to me when I import it into UE4. It looks exactly the same as it does in the max file. The cube rolls forward through all of the frames until between keys 50 and 60 where it rotates backward. Is this the issue?

avatar image Douglas Lassance Apr 07 '15 at 12:19 AM

DCC = Digital Content Creation. A way to encapsulate Max, Maya, Softimage, Blender in a single word. No the issue is that if you look carefully it will not go from one pose to the other in a single frame, it will display some in betweens, subtle but noticeable. If you want to see the effect in a very obvious manner just set the rate scale of that animation to 0.1 in UE4.

avatar image TorQueMoD Apr 07 '15 at 12:34 AM

Ahh ok DCC now makes sense :) Well yeah buts its creating those in-betweens inside max as well to make creating an animation less time consuming. That's why I suggested baking down your animation so that there's no chance of anything changing. The other option is to manually place keys at every frame, but I'd imagine the bake animation option of the FBX exporter would solve the issue.

avatar image Douglas Lassance Apr 07 '15 at 12:52 AM

Max will always evaluate at a specific frame rate. No other frames than the ones you see on the timeline will make it to the screen. In Unreal regardless of whether or not the animation is baked per frame there is always a chance that the animation is evaluated and rendered in between Max frames and therefore displaying something you do not wish to see. This is what I am trying to solve. If a sequence is exported at 30 fps it means each pose should last at least 33 milliseconds, I need to find a way for the engine to not evaluate the rig transforms more often then that.

avatar image TorQueMoD Apr 07 '15 at 01:15 AM

Definitely going to need someone from Epic to take a look at the post then. Hopefully they'll notice it now. I'd say give them 24 hours.

avatar image TorQueMoD Apr 10 '15 at 06:24 AM

Ok so maybe it'll take more than 24 hours for someone at Epic to notice.

avatar image Douglas Lassance Apr 10 '15 at 08:07 AM

In the meantime, workaround explained here.

(comments are locked)
10|2000 characters needed characters left
Your answer
toggle preview:

Up to 5 attachments (including images) can be used with a maximum of 5.2 MB each and 5.2 MB total.

Follow this question

Once you sign in you will be able to subscribe for any updates here

Answers to this question