Users browsing this thread:
[APP][FINISHED] Sprite Sheet Editor
#1
[Image: SpriteSheetEditor.png]

Sprite Sheet Editor is a tool designed for managing sprite sheets, and exporting their contents as animated GIF files. The tool was initially created for personal use only. As I felt it could be useful to sprite artists to preview animations or simply for generating animated GIF’s in a fast and easy fashion I’ve touched it up slightly and put it online. Remember that at it’s core, it was designed for personal use. While I will listen to feedback given here, I probably won't be implementing further versions of the app, as it is just a side product of another project I'm working on. I'm throwing it out here as it may be useful to some of you to inspect your sprite sheets.

It may have a non-intuitive interface. If you examine it for a couple of minutes however, you should be able to get what you need, out of the program fast. I've made a 5 ~ 10 minute guide that will walk you through all the features of the program, so you can see whether it could be useful to you. The guide contains a lot of images, so I won't be posting it in here. I've uploaded the tutorial on my website, it can be found here: http://jellevancampen.co.cc/?p=45 (As forums tend to be leery of people posting links of their websites: I'm not trying to lure visitors to my site; I only have 2 articles on it. It's just more convenient than retyping the entire tutorial in a BBCode compatible form.)

Obligatory screenshot to prove it's real:
[Image: screen06.png]

You can download the app from the page on my website I posted above here, or use this direct download link: http://www.jellevancampen.co.cc/data/Spr...Editor.zip

The zip contains a .jar file. These can be compared to .exe files. Double clicking them will run the program. The file extension is ".jar" because the app was programmed in Java rather than a binary compiled language. Some examples are included as well, including a sprite sheet from SmithyGCN.'s 2ST project, because his sheets look amazing when animated. You can obviously use GIF's created with this program without crediting the program.

I've noticed a similar app called "Previous' GIF Animator" (PGA). I decided still to post this because there is feel there is a difference between the programs. While PGA methodologically starts from the concept of a GIF being a collection of individual images with delays attached to them, this Sprite Sheet Editor (SSE) starts from the concept of a sprite sheet. Therefore I'd recommend PGA for generating animations when you have all separate frames of the GIF available as separate files. I'd say SSE is more dedicated to prototyping game sprite sheets as it allows for mixing frames in any order to create animations, batch exporting an entire set of animations, color keying and in-application examination of individual frames or animations.

Once again, I will gladly answer questions and listen to constructive criticism. I probably won't be implementing c+c though.
Thanked by: Previous, Gaia
#2
That's quite alright :-P

It's a shame you don't want to continue work on it, though. There's quite some potential to expand on.
Thanked by:
#3
I strongly do not recomend people to create sprite animations in a sheet and then port them into a gif, mainly due to the reason that you lack any way to properly follow the animation's flow.

i supose this would work for someone working with an existing, premade sheet.

also, NOD32 flagged the download link as a virus.
Thanked by:
#4
Isn't that the whole reason that each sprite is arranged into boxes?
[Image: ndsMEF0.gif][Image: sig.gif]
Thanked by:
#5
That and this would be specifically for spritesheets, not animation. I suggest using Previous' gif animator for that job.
Thanked by:
#6
No, it's made for animation, but it approaches it differently.
This was covered in the OP. Unimpressed

This is made for making animations directly out of a sheet, while PGA is made for animating a string of different images.
[Image: ndsMEF0.gif][Image: sig.gif]
Thanked by: Garamonde
#7
i believe previous basically imports individual images into a GIF, while this does so from a single PNG image.

although im quite confused, and i ultimately do not think it is useful to do so, since most if not all sheets are not properly organized and or optimized for this.
Thanked by: Garamonde, Shinbs
#8
A-Actually, PGA has a neat Import feature which does just that: Take a sheet and cut frames out. It's the button with the green plus and the grey boxes.
However, as Jelleye pointed out, PGA handles only one animation at any time and recurring frames have to be copy-pasted and whatknot.

Also Meta, my sheets are usually neatly aligned with The Grid™ so thingies like SSE work :-)
Other's arent, sure. People can't even put system and game title on their sheets, let alone align animations properly. Welp!

Either way, for people creating animated sprites, these apps aren't the right tools, as Meta pointed out. Programs like Graphics Gale are much better to work on animations and see how things animate directly. SSE and PGE are rather directed at putting finished animaton frames into working GIFs.
Thanked by:
#9
Yup, it's indeed not a spriting program, but really just a sprite sheet manager. The main goal of the program for me,
is that the ".graphic" files it exports are serialized Java objects that can be directly loaded into a game engine. That
way, you can just tell the game engine to play eg. animation 2 or show eg. frame 5, and it'll know what do do, without
having to load in animated GIF's for every animation.

The point in the pipeline I see this program being useful is after the sheet has been finished or when a first prototype
is finished. At that point it can be used to preview more complex animations, generate an overview of all animations,
inspect individual frames for mistakes, palette errors, ... . If you have a game engine that works with animated GIF's
(I think GameMaker has an option for this) you can batch generate those. If you want to showcase your sprite
animations, you can use the GIF's as they are browser compatible and are color keyed.

Having all poses of a character organized in a fixed grid is a good way to store an entire sets of animations in a single
image. Most sheets on TSR have all poses of characters randomly scattered across an image. By randomly, I mean
they may be grouped per animation, but they aren't pasted onto the sheet uniformly. Some frames are a couple of
pixels off to the left, some to the right, ... etc. This means, if you want to create an animation out of them, you need
to re-position every frame manually. Grid-like sprite sheets don't have this problem as the positioning of individual frames
has been done for you. SmithyGCN has a great sort-off intermediate way of organizing his sheets. While he doesn't
fully fill up the entire grid, he places one animation per row, and leaves redundant cells to the right of rows open.
This way all frames are aligned perfectly, and he can yet keep an overview of how the animations are grouped.

Grid-like sheets are also usable in games, while non-uniform ones aren't. You could technically, for every pose define
where it is located on the sheet. The graphics manager of your game would require a lot of computations and cutting
out of pixels however. Graphics manipulations are costly in a computational sense, so a grid might be better. If you
say "show frame 5" of a grid sheet, you can immediately grab the frame, on an unorganized sheet, it's more difficult.

So, I'm an advocate of grid-like sheets, but then again I'm a programmer, not a spriter :p .
Thanked by:
#10
not to nitpick, but all the images and links are marked as viruses over here.
Thanked by:
#11
I can guarantee your scanner is making a false virus report here. The only kind of operation in the source code that could be flagged as "dangerous" are text-file read/write operations. Aside from one class to read GIF metadata, all code is custom. I've inspected the non custom class and it certainly doesn't contain malicious code, only calls to native Java classes with non-dangerous arguments.

I'm also using a clean installation of the Netbeans IDE, so it can't be infected by a compile-time virus injector. Just to be sure I inspected the .jar file, and found no suspicious injected .class files.

The GIF files can't be virus-injected either. First of all, they aren't hidden executables. GIF files also don't allow for embedding of runnable code. To be certain, I also exported a very small GIF. This resulted in a 128 byte file. Considering the original graphic, the color LUT usage and the LZW compression algorithms used to compress the file, these 128 bytes are definatelly all dedicated to representing raw image data.

Worst case scenario, 10-ish bytes in the GIF have been reserved by a virus. Worlds smallest known functional virus is 41 bytes in size, in raw assembler code. It can't be injected in 10 bytes.

Not sure why you think I'm trying to hack everyone's computer here. But the above should reassure you.
Thanked by:
#12
its probably your whole hosting being flagged as dangerous by some antivirus services, wich in return blocks any attempt of hyperlink from them.

out of curiosity, does this allows reverse engineering a GIF file into an organized sheet?
Thanked by:
#13
Bump, and for a good reason.

Is it possible it could be from the filehost itself? You might want to change the host to mediafire.
Thanked by:
#14
I've looked into what could be the problem of the app not launching. The hosting shouldn't be
a problem as I've hosted it on my own server. I re-downloaded it several times myself and the
jar file always seems complete. When you download it, the actual .jar itself should be 128 kb
in size.

One problem could be that the JRE (Java Runtime Environment) isn't installed on your computer.
Java applications are ran by what is called a JVM (Java Virtual Machine). If this "machine" isn't
installed on your computer, or if it is outdated, it won't be able to run the files. The newest
version of the JRE can be found here, on Oracle's own site:

http://www.oracle.com/technetwork/java/j...37588.html

You can sort of compare it to those warnings your webbrowser gives you when you don't have
Flash installed. It'll say: "You don't have the latest version of Adobe Flash. Click here to upgrade
your installation."

____

As for the reverse-engineering, it can't do that, as this program can only edit meta-data for a sheet,
not the actual sheet itself. I personally find it easier to re-arrange sprites on a sheet, than to work
with GIFs, but I probably lack the right tools to work with them that way. One thing about the program
though, is that it can load in changes on the sheet in real-time. Meaning, you can have the app open
to inspect all frames, when you notice something off, you can change it in eg. GraphicsGale. Then if
you save the file, and make SSE reload the sheet by hitting "enter" in the "Resource File" field, the
sheet will immediately update (unless the graphics program takes exclusive reading permissions on
the file). So in that way it could work together with your paint program.
Thanked by:


Forum Jump: