Mikey Séregon Posted January 6, 2012 Share Posted January 6, 2012 I'm making an animation, the script doesn't show me any error, but when I try to save the animation it shows me this: This is the script: /// - Mode 1 C03 C07 C4A 2 p- Ata01.png 2 p- Ata02.png 2 p- Ata08.png 2 p- Ata03.png 2 p- Ata08.png 2 p- Ata04.png 2 p- Ata08.png 2 p- Ata05.png 2 p- Ata08.png 2 p- Ata06.png 2 p- Ata08.png 2 p- Ata07.png 2 p- Ata08.png 2 p- Ata02.png 2 p- Ata08.png 2 p- Ata03.png 2 p- Ata08.png 2 p- Ata04.png 2 p- Ata08.png 2 p- Ata05.png 2 p- Ata08.png 2 p- Ata06.png 2 p- Ata08.png 2 p- Ata07.png 2 p- Ata08.png C3C 2 p- Ata09.png C05 L 3 p- Ata10.png 3 p- Ata11.png 3 p- Ata12.png C01 2 p- Ata09.png C06 C0D ~~~ /// - Mode 3 C03 C07 3 p- Crit01.png 3 p- Crit02.png 3 p- Crit03.png 3 p- Crit04.png 3 p- Crit05.png C28 3 p- Crit06.png 3 p- Crit07.png 3 p- Crit08.png 3 p- Crit09.png 3 p- Crit10.png C23 3 p- Crit11.png C4F 3 p- Crit12.png 3 p- Crit13.png 3 p- Crit14.png 3 p- Crit15.png 3 p- Crit16.png 3 p- Crit14.png 3 p- Crit17.png 3 p- Crit15.png 3 p- Crit18.png 3 p- Crit12.png 3 p- Crit19.png 3 p- Crit20.png 3 p- Crit21.png 3 p- Crit22.png 3 p- Crit23.png 3 p- Crit24.png 3 p- Crit25.png C25 3 p- Crit26.png 3 p- Crit27.png 3 p- Crit28.png C25 3 p- Crit29.png 3 p- Crit30.png C05 3 p- Crit31.png L 3 p- Crit32.png 3 p- Crit33.png C01 3 p- Crit34.png 3 p- Crit35.png 3 p- Crit36.png 3 p- Crit37.png C1B 3 p- Crit38.png C06 C0D ~~~ /// - Mode 5 C03 C07 C4A 2 p- Ata01.png 2 p- Ata02.png 2 p- Ata08.png 2 p- Ata03.png 2 p- Ata08.png 2 p- Ata04.png 2 p- Ata08.png 2 p- Ata05.png 2 p- Ata08.png 2 p- Ata06.png 2 p- Ata08.png 2 p- Ata07.png 2 p- Ata08.png 2 p- Ata02.png 2 p- Ata08.png 2 p- Ata03.png 2 p- Ata08.png 2 p- Ata04.png 2 p- Ata08.png 2 p- Ata05.png 2 p- Ata08.png 2 p- Ata06.png 2 p- Ata08.png 2 p- Ata07.png 2 p- Ata08.png C3C 2 p- Ata09.png C05 L 3 p- Ata10.png 3 p- Ata11.png 3 p- Ata12.png C01 2 p- Ata09.png C06 C0D ~~~ /// - Mode 6 C03 C07 3 p- Crit01.png 3 p- Crit02.png 3 p- Crit03.png 3 p- Crit04.png 3 p- Crit05.png C28 3 p- Crit06.png 3 p- Crit07.png 3 p- Crit08.png 3 p- Crit09.png 3 p- Crit10.png C23 3 p- Crit11.png C4F 3 p- Crit12.png 3 p- Crit13.png 3 p- Crit14.png 3 p- Crit15.png 3 p- Crit16.png 3 p- Crit14.png 3 p- Crit17.png 3 p- Crit15.png 3 p- Crit18.png 3 p- Crit12.png 3 p- Crit19.png 3 p- Crit20.png 3 p- Crit21.png 3 p- Crit22.png 3 p- Crit23.png 3 p- Crit24.png 3 p- Crit25.png C25 3 p- Crit26.png 3 p- Crit27.png 3 p- Crit28.png C25 3 p- Crit29.png 3 p- Crit30.png C05 3 p- Crit31.png L 3 p- Crit32.png 3 p- Crit33.png C01 3 p- Crit34.png 3 p- Crit35.png 3 p- Crit36.png 3 p- Crit37.png C1B 3 p- Crit38.png C06 C0D ~~~ /// - Mode 7 C02 6 p- Eva01.png C0E 16 p- Eva02.png C01 6 p- Eva01.png C0D ~~~ /// - Mode 8 C02 6 p- Eva01.png C0E 16 p- Eva02.png C01 6 p- Eva01.png C0D ~~~ /// - Mode 9 16 p- St01.png C01 ~~~ /// - Mode 10 16 p- St01.png C01 ~~~ /// - Mode 11 16 p- St01.png C01 ~~~ /// - Mode 12 C03 C07 C4A 2 p- Ata01.png 2 p- Ata02.png 2 p- Ata08.png 2 p- Ata03.png 2 p- Ata08.png 2 p- Ata04.png 2 p- Ata08.png 2 p- Ata05.png 2 p- Ata08.png 2 p- Ata06.png 2 p- Ata08.png 2 p- Ata07.png 2 p- Ata08.png 2 p- Ata02.png 2 p- Ata08.png 2 p- Ata03.png 2 p- Ata08.png 2 p- Ata04.png 2 p- Ata08.png 2 p- Ata05.png 2 p- Ata08.png 2 p- Ata06.png 2 p- Ata08.png 2 p- Ata07.png 2 p- Ata08.png 2 p- Ata02.png 2 p- Ata08.png 2 p- Ata03.png 2 p- Ata08.png 2 p- Ata04.png 2 p- Ata08.png 2 p- Ata05.png 2 p- Ata08.png 2 p- Ata06.png 2 p- Ata08.png 2 p- Ata07.png 2 p- Ata08.png C3C 2 p- Ata09.png C05 L 3 p- Ata10.png 3 p- Ata11.png 3 p- Ata12.png C01 2 p- Ata09.png C06 C0D ~~~ /// - End of animation Link to comment Share on other sites More sharing options...
CT075 Posted January 6, 2012 Share Posted January 6, 2012 It... means exactly what it says it does, there's an OAM data overflow. You either have too many frames or the frames are too complex. Link to comment Share on other sites More sharing options...
Mikey Séregon Posted January 6, 2012 Author Share Posted January 6, 2012 The animation uses 53 frames... Link to comment Share on other sites More sharing options...
CT075 Posted January 6, 2012 Share Posted January 6, 2012 or the frames are too complex. Link to comment Share on other sites More sharing options...
Mikey Séregon Posted January 6, 2012 Author Share Posted January 6, 2012 How to know if a frame is complex? These are the frames: http://www.box.com/s/g1rhn520kdqtbdki6m0b Link to comment Share on other sites More sharing options...
AstraLunaSol Posted January 6, 2012 Share Posted January 6, 2012 If there's too much on the frame. Too many sprites, etc. (Didn't DL the package) A way to get past this is to use Old FEditor, but the OAM Overflow may have some consequences that I don't know. Link to comment Share on other sites More sharing options...
CT075 Posted January 6, 2012 Share Posted January 6, 2012 Not gonna download the package, but I can tell you that this is too complex. Link to comment Share on other sites More sharing options...
Mikey Séregon Posted January 6, 2012 Author Share Posted January 6, 2012 Hmm... Perhaps that is kinda complex... Link to comment Share on other sites More sharing options...
CT075 Posted January 6, 2012 Share Posted January 6, 2012 That would probably be it. On the whole, though, those frames are huge and might overflow anyway. Link to comment Share on other sites More sharing options...
Celice Posted January 6, 2012 Share Posted January 6, 2012 Hold on a second... does the animation hacking right now just use each frame as its own image...? No wonder it's fucking overflowing O_O That's not efficient at all XD Link to comment Share on other sites More sharing options...
Mikey Séregon Posted January 6, 2012 Author Share Posted January 6, 2012 I see... Well, looks like I have to clip his wings... I hope that the beta animation won't give me problems Link to comment Share on other sites More sharing options...
CT075 Posted January 6, 2012 Share Posted January 6, 2012 Hold on a second... does the animation hacking right now just use each frame as its own image...? No wonder it's fucking overflowing O_O That's not efficient at all XD I'm not sure what exactly happens, but Hex did some tile data stuffs so to make things as tight as possible. IIRC, this is the same way the game does it (since we can dump the un-tilemapped frames and they look essentially the same). Link to comment Share on other sites More sharing options...
Crimson Red Posted January 6, 2012 Share Posted January 6, 2012 @Celice don't jump to conclusions :( The process is fine but a big animation is a big animation. There's a reason that the Fire Dragon and Demon King aren't just object frames but are a combination of those and background elements :P Link to comment Share on other sites More sharing options...
Celice Posted January 7, 2012 Share Posted January 7, 2012 I'm not sure what exactly happens, but Hex did some tile data stuffs so to make things as tight as possible. IIRC, this is the same way the game does it (since we can dump the un-tilemapped frames and they look essentially the same). If so, then that's fantastic. There's still a huge margin of error that the user can bring in, though, that's going to screw up the efficiency. Even being a row off vertically from the last frame will make the next frame have, most likely, no reusable tiles from the previous frame. So if the tilemap is as efficiently ordered as you suggest, maybe oracle can double-check that all the frames are setup as best as possible, to let the program recognize any reusable tiles? EDIT: And hopefully the editor is doing the logical thing and trying to get reusable frames for the entire set of frames, and not just each individual frame. @Celice don't jump to conclusions :( That's why I'm asking the questions :) Link to comment Share on other sites More sharing options...
CT075 Posted January 7, 2012 Share Posted January 7, 2012 If so, then that's fantastic. There's still a huge margin of error that the user can bring in, though, that's going to screw up the efficiency. Even being a row off vertically from the last frame will make the next frame have, most likely, no reusable tiles from the previous frame. So if the tilemap is as efficiently ordered as you suggest, maybe oracle can double-check that all the frames are setup as best as possible, to let the program recognize any reusable tiles? By Hextator's own admission, they way he set it up is waaaaay inefficient. I don't know enough about the game engine to give any real help, but generally if even one pixel that's not transparent in the 8x8 box (aka one tile) is counted as 'used'. On the other hand, it may not be the lack of reusable tiles but the fact that each individual frame uses a ton of tiles (which obviously requires a ton of OAM, which leads to overflow). EDIT: And hopefully the editor is doing the logical thing and trying to get reusable frames for the entire set of frames, and not just each individual frame. I know that it gets reusable tiles for the entire set, but I'm not the one to ask about that. Link to comment Share on other sites More sharing options...
zahlman Posted January 20, 2012 Share Posted January 20, 2012 Hold on a second... does the animation hacking right now just use each frame as its own image...? No wonder it's fucking overflowing O_O That's not efficient at all XD No. Basically: - it finds the bounding box of the contents of each frame (so big sparkly effects with tiny dots spread far apart are Bad) - those contents are chopped into pieces of the size that the GBA can actually use for sprites - it attempts to find a sheet that has room for all those sprites, while attempting to find and reuse identical sprites already on the sheet (this almost never actually works unless you are very careful with your animation because it really has to be an exact match) - if the sprites for a frame can't fit on a single sheet by themselves, or if the overall animation needs too many sheets, the whole process barfs Actually it's a little better than that; it can ignore empty space in the middle of the sprite... it tries to overlay sprites at various sizes, biggest to smallest, until it's set up enough to cover all the non-empty 'tiles' of the bounding box of the actual image. Big sparkly effects are still Bad, though. Trust me. It's nowhere near as efficient as it could be if you actually created sprites and then designed animation frames in some kind of editor, specifying a position and transform for each sprite. But it's not bad. Anyway, for debugging purposes, I suggest taking frames out until it fits, and then seeing just how bad it is. Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.