How do I make smooth animations?

  • First of all sorry for bad english.

    Hi there! How to make a smooth animation in C2? For example I want to make a Visual Novel system and want to add a character smooth animation I made with meshes, bones etc. How to import it? Frame-by-frame will be like 70+ frames and I have to make like 10-15 this kind of character animations so it will be kinda not optimized. I tried frame-by-frame with 70+ frames in one animations and when I was testing the game my CPU was 99% and game was eating 4GB of ram to run that fbf animations. Reducing frames to 15-20 will make it looks very bad and laggy. Exporting animation as video will not give me opportunity to place that character animation anywhere I want.

    How to import smooth transparent animation in Consctruct 2 and keep it CPU/GPU friendly?

  • 99% CPU? How large is each frame?

  • 99% CPU? How large is each frame?

    Each frame was around 1-2 Mb in 1920x1080 because of complicated art.

  • 15 animations of 70 frames of 1920x1080. Yeah that's not ideal for 2D game development

  • 15 animations of 70 frames of 1920x1080. Yeah that's not ideal for 2D game development

    And how I'm supposed to make a good animated character?

  • Why do you need a character 1920x1080 pixels in size? This is insane. Please read this article:

    construct.net/en/blogs/construct-official-blog-1/remember-not-waste-memory-796

  • Which bone animation tool are you using? Spriter Pro allows you to import the animation to construct - this way you don't need each frame as an image, you just need your base image and construct will do the bone movements like Spriter Pro would do.

    1920x1080 is like the whole screen. Are you doing full screen scenes? Just animate individual obects in your tool and compose them to a scene in construct, that way is much more efficient. Otherwise you will have redundant image data in you game (like the same huge background image saved in every one of the 70 frames of an animation).

  • Try Construct 3

    Develop games in your browser. Powerful, performant & highly capable.

    Try Now Construct 3 users don't see these ads
  • You will have to split your animations into passes/layers. All good 3D programs have this ability, just may call it differently. Have a single frame background pass/render that is 1920 x 1080, but then render animated characters in separate passes.

    So you have only one 1920 x 1080 background frame and much smaller 70+ frame animations for each character which you can then layer on top of that background.

    Obviously you may have a problem of matching character movements to the background which will now be a static single frame, depending on what exactly is going on there. You may have to move your sprites using events if they are walking, running ( walk animation frames play, while you move them via events across your background ).

  • I'm using Moho 12. Managed to make it 500x1000, but same 70 frames per each animation. Now each frame is 250kb. But now I figured that I have to make 16 animations with 3 variations each one, so 48 animations. Each animations is like 16-17mb. 48x17= 816Mb of animations in one object. Isn't it too much for one object?

  • With 816 MB of graphics memory, your game will only run on desktop computers. What is the usual RAM size of video cards nowadays? 2 GB? 4 GB? Consider about half of that as your upper limit for a project. If your game is supposed to run on tablets or phones, aim for 100-400 MB max for the whole project (and not for each object).

    Animation tools basically move, resize, warp and twist sprites. Construct can do the same, no need to store a large sprite over and over in a series of huge images. The key is to import the "move, resize, warp and twist"-commands from your animation tool into Construct. This can be done with Spriter, not with Moho.

    You should consider to either switch to a programming tool that does support Moho exports (like Unity) or to an animation tool that is supported by Construct, like Spriter.

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

    https://www.slant.co/versus/5514/17370/~spriter_vs_moho-12

  • With 816 MB of graphics memory, your game will only run on desktop computers. What is the usual RAM size of video cards nowadays? 2 GB? 4 GB? Consider about half of that as your upper limit for a project. If your game is supposed to run on tablets or phones, aim for 100-400 MB max for the whole project (and not for each object).

    Animation tools basically move, resize, warp and twist sprites. Construct can do the same, no need to store a large sprite over and over in a series of huge images. The key is to import the "move, resize, warp and twist"-commands from your animation tool into Construct. This can be done with Spriter, not with Moho.

    You should consider to either switch to a programming tool that does support Moho exports (like Unity) or to an animation tool that is supported by Construct, like Spriter.

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

    https://www.slant.co/versus/5514/17370/~spriter_vs_moho-12

    it's not 816 Mb of graphics memory. It's more like RAM, because each 17 Mb animation raises RAM usage for 40~ Mb's. So, 48 animations will be like 2-3 Gb's of RAM, not GPU, because those frames data located in RAM when object is on the layer. I decided to make 48 objects, each one have each animation set, so it will eat only 40 Mb's of RAM and if I want to switch animation just delete previous one object and put the other one. This is only solution I found how to import complicated animations with good framerate with minimum quality lost and maximum optimisation.

  • Yeah sure, but it's faster to store those in VRAM. If VRAM is to small, the system will load it from the regular RAM of course, which could be laggy.

    This is only solution I found how to import complicated animations with good framerate with minimum quality lost and maximum optimisation

    If importet boneanimations don't run as smooth as larger frame-by-frame clips, personally I think your problems are elswhere. Did you preload the animation sprites in the layout (like they exist ofscreen while starting the layout or something). Creating huge, non preloaded objects right before the animation starts surely could cause lag.

    But listen - if it works for your use case the way you are currently doing it, thats's totally fine. If you run into any performance/memory problems with that, you should reconsider your conclusions. But most importantly - go on with it and see what works and waht doesn't.

Jump to:
Active Users
There are 1 visitors browsing this topic (0 users and 1 guests)