Animation Editor Project

'Sup everyone, I finally made it here.

So taking a bit of inspiration from @Temp, and taking advantage of my “oh right I was going to install VS on the new computer anyway” moment, I got myself started on a new project. It’s going to be an editor for battle animations - instead of having to draw each frame out fully and have the code figure out where everything goes, you’ll be able to drag around sprites from a spritesheet. The goal is to support arbitrarily-sized “sprites” that are cut into GBA-friendly chunks internally for normal sprites, but also allow for transformed sprites using up to a 32x32 base (with some decently intelligent interface for transforming it in the editor).

Done so far:

  • There’s a 240x160 “gallery” window that zooms to integer multiples (everything is drawn without anti-aliasing and aligned, so it’s as WYSIWYG as possible) where you can add sprites (currently just 32x32 smiley faces, lol).

  • You can resize the window and everything stays laid out intelligently; the gallery gets scrollbars added automatically as needed yadda yadda.

  • You can click and drag sprites around in the gallery; moving them out of bounds makes them go poof. Clicking a sprite also brings it to the top of the pile.

  • WASD keys (I can’t make arrow keys work for some reason) move the topmost sprite (unless you just trashed it) a pixel at a time for precise positioning.

  • The trackbar at the bottom of the window controls the rotation of the topmost sprite (again unless you just trashed it).

  • Everything is double-buffered and pretty and correctly rendering and yes.

Upcoming:

  • A “workshop” window where you can drag a marquee and cut sprites out of a spritesheet.

  • A “roster” window showcasing the available sprites, allowing you to pick one to add to the “gallery”.

  • Clicking empty space in the gallery to add a sprite? (not sure if this is the best idea interface-wise)

  • More transformation controls

  • Some kind of interface for actually stepping through multiple animation frames, and playing a preview of the animation

  • Oh yeah, and some kind of code to actually save the data :wink: The thinking is that I’ll make some kind of JSON dump that nm3 will be able to insert. Details extremely fuzzy right now.

  • Probably a million other things that I’m forgetting. Help will likely be appreciated at some point in the future.

Where to get it etc.

  • If you have access to the shared Dropbox, it’s in “Zahl’s hax”.

  • I’ll probably put the source up on my Github sometime soon, for those of you with Visual Studio (or some other decent way of dealing with a C# Winforms project).

6 Likes

So a related idea I had here this morning, while thinking about the long-term plan for burying improving on FEditor. My grand plan for a while has been to have some kind of suite of “content creation” tools that use a GUI (except for things like text scripts, since an ordinary text editor is just fine there), and then do the actual fun work of inserting and ripping separately by feeding the created “resource” files to another tool cough nm3 cough. My thinking is that conceptually separating “create the data” from “interact with the ROM” as much as possible, will allow for cleaner design.

What I’m thinking now is that a full suite of “FE graphics content creation” tools could be pieced together from a combination of

  • This project

  • @BwdYeti’s FE Recolor

  • @Nintenlord’s GBAGE (probably keeping the bit that extracts graphics from ROMs, but skipping the part that writes them back)

  • Some simple pixel-level editing tools

  • An FEditor-inspired portrait viewer (instead of having the 128x112 spritesheet format, I was thinking of having it just take in several pictures showing all the mouth/eye variations, and having it automatically detect the differences, create mouth/eye sprites and pack together a sheet).

The idea being that each tool would save some kind of resource dump (likely involving JSON) that included the necessary palette and bitmap binary data (maybe with some human-readable encoding) and enough metadata to figure out what’s what.

The especially convenient part here is that the first three things on the list are already c# VS projects.

1 Like

THE ORIGINAL WIZARD RETURNS.

I approve the hell out of this. (Though I’m still super in love with GraphicsGale for FE stuff.)

A minor functionality question - Markers for standard important points? Well, most notably, a standing position for the enemy.

1 Like

Ooh, good idea. Not sure exactly what form it would take. I already have it planned so the background of the editor window can be set to a picture of your choosing, so you could pre-prepare an FE background with an enemy sprite on it or something for reference. (For copyright etc. reasons I don’t want to distribute any images that come from the ROM, especially if this is going up on GitHub. The test sprite I’ve been using is a smiley face from Wikimedia Commons that I drew a red border around, lol.)

I just put an update in the shared folder. First versions of workshop and roster windows are done, and the sprites now properly handle transparency (this part was absurdly annoying/tricky to set up, thanks Obama Winforms).

Merry xmas and such.

I-is this implying a random mug generator? Or is this like an auto-mouth/eye frame creator, or something else?

the latter

1 Like

Auto frame creator. Draw full versions of the face that include all the mouth/eye variations, and it figures out where the mouth/eyes are, cuts out aligned sprites and prepares all the data for insertion.

Damn, that’ll really help out the hacking fandom.