How do I use extremely large animation files?

  • Hi all. I was just looking for some advice on using very large amounts of animation files as I know Construct 2 isn't particularly optimised for it.

    I'm working with 3D sprites rendered as 2D png image sequences(they're big chunky sprites as it's a fighting game) each roughly around 200px² in size then converted into sprite sheets (many, many sprite sheets as they're very fluidly animated through motion capture). Probably around 30 individual character sprites with around 30/40 fighting moves each and the animation length for each move being between 20 and 100 frames. Example https://66.media.tumblr.com/f6015d4ecbf09f182cae5da82e094c08/tumblr_psk0pcrcAi1ryvddto1_250.gif

    So we're looking at easily 100,000+ individual image files at around 200px² each. I know this is absurd and obviously isn't going to work but I was wondering if anyone knew any hints, tips or plugins for getting even close to this many sprite images into a C2 game somehow?

    All help appreciated thanks in advance.

  • You figure out how much ram per layout you want to target for use, then you look at the files size on disk, and double that to know how much you can load per layout since C2 does layout loading, layout by layout.

    Keep in mind that the editor, and previews take up ram as well. You may have to plan on multiple exports, as a series if you go up in to the gigs.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • Thank you newt. Not entirely sure I follow. How would multiple exports work? Also not sure how I'd figure out how much ram I'd target (is as little as humanly possible an option?). If I do a rough sum of how much all the animation sequences would add up to together it's something crazy like 10GB (they're about 800kb each but that's before compression).

    Apologies, I'm not the most technically minded C2 user, I'm primarily a graphics/animation guy.

  • You figure out how much you plan to have in each layout based on your target audience, and platform, the total amount of size on disk is not relevant.

    You do have to figure out how it's going to be distributed if it is close to 10 gigs.

  • So sorry if I appear dense newt I'm not sure if I follow you? This is a commercial project with plans for digital distribution for PC. Not sure how else I'd distribute a project of this scale?

  • The other ways of distribution are part of the "series" or episodic export(part one, part two, etc) I talked about earlier.

    That may also be an option if you are using lower spec hardware for editing.

  • Thanks for the suggestion but that's not really something I'm considering as it's a Beat Em Up/Fighting Game with multiple selectable characters. It wouldn't really fit into an episodic format.

    My other option at the moment is to visually replicate an old system like the Gameboy or ZX Spectrum using good old pixel art as I'm not too shabby. I can't forsee any real problems building that in C2 but my heart isn't in it.

    I kinda feel like the 3D rendered voxel characters with mo-cap movement may be a bit more marketable, so I'm asking the question about how to get as many image files in as possible in order to make that happen in Construct 2. Just doesn't seem realistic or doable but hopefully somebody knows some hints or possible plugins that may make it work?

  • Christmas

    I would seriously consider using something like Spriter. That way you define all the action sequences with bones, and can then apply character maps for all the different looks you want.

  • Thank you AllanR I have used spriter in the past and it is fantastic software. It's definitly something I will use if I do end up going the pixel art route as I have the Spriter plugin for Construct 2.

    I am looking for solutions on how to use my 3D models rendered into 2D sprites because I can use Mo-cap to animate them which is a huge time saver for me and also I have put a lot of work into making these models.

    I am particularly looking for solutions, hints and tips, on how to get extremely large amounts of image files into Construct without having serious performance hits. I know it's a big ask but it's something I really want to do.

  • You should probably think about video, or just go 3d.

  • I'm considering trying video for the backgrounds thanks newt, wouldn't really work for the character sprite animations unless the backgrounds were a static colour. It might work if Construct 2 can read .mov files which can be exported with an alpha channel for transparent backgrounds.

    Afraid I'm not in a position to spend months to years learning Unity or other 3D game engines as I've invested far too much time building a complex Beat Em Up system for Construct 2. I'm way too invested in this to quit now.

    Still looking for suggestions, links to plugins, or any hints on how to optimise excessive amounts of image files for animation in Construct 2.

  • Have you tried to estimate the memory usage? So each character will have about 1000-2000 frames. Add 2000 images to a sprite, run the project, see how long does it takes to load the layout and how much memory it uses. I'm guessing you only need to display and load images for two characters at a time, so it may not be that bad. You'll need a separate sprite object for each character and create it on layout start.

  • Thanks dop2000. It'll take a lot of work to export and edit all the sprite sheets but what I'll do is duplicate the few animations I already have ready a ridiculous amount of times, as many times as the finished product will need, and then see how the layout loads.

    I'm hoping to have at least 4 characters on screen (more if possible) as it's more of a Beat Em Up/Arena Fighter like a wrestling game than a one on one Fighter (I have quite a cool AI pattern that makes multiple enemies circle and attack you like in Streets of Rage).

    Sure I heard of something a while ago that was a plugin that uploaded images from a webspace when needed? If anyone has any suggestions or solutions for something like that I would love to hear it.

  • You can test with some dummy images, you don't need to export and edit real character images.

    I found a few somewhat relevant plugins, don't know if any of them can actually help:

    c2rexplugins.weebly.com/rex_sprite_animation_loader.html

    c2rexplugins.weebly.com/rex_gifjs.html

    scirra.com/store/construct2-plugins/mmpreloader-layout-preloader-3620

  • This may be a problem ( maybe somebody has a solution )

    Hope this will make sense

    Even though you only have 2 characters fighting at any given time, the way Construct is set up and how you select players all of the other characters will still be in the same sprite and have to be loaded in RAM.

    I usually have one sprite called Player and each character and all its animations will be appended a number like walk0, walk1, walk2 hit0, hit1, hit2 and so on, and a global variable called selected will be assigned those numbers 0,1,2,3 depending on which character is chosen so when doing my events I only need to use a single event for all characters Player > play animation "hit"&selected.

    Of course, you could have each character as its own sprite and/or spread them over a number of layouts, but with Construct how do you trigger animations without having events for each sprite. It is much more efficient if everything is in a single sprite, but then you may have memory problems of course.

    With Flash it was easy, just because you could rename sprites on the fly. Player > play animation "hit"&selected would still work with any sprite/character, because whatever character you select gets renamed to Player

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