Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411518 Posts in 69380 Topics- by 58436 Members - Latest Member: GlitchyPSI

May 01, 2024, 01:50:41 PM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsDeveloperArt (Moderator: JWK5)SPARTAN - Small Pixel Art Animator (now with procedural tile generator)
Pages: [1] 2
Print
Author Topic: SPARTAN - Small Pixel Art Animator (now with procedural tile generator)  (Read 10509 times)
Paul Jeffries
Level 3
***



View Profile WWW
« on: August 28, 2014, 11:51:00 AM »

About a year ago, I was trying out a bunch of different pixel art tools, but didn't find any that really clicked with me.  So, because I have very little common sense, I decided to make my own little pixel art animation tool set up in exactly the way I wanted.  The result of that is SPARTAN (Small Pixel ART ANimator). It started out as a simple little tool only for my own personal use and then as time went on I got a bit carried away with adding things to it and decided it might be worth releasing to the community.  So, if you feel like giving it a go, here it is:

EDIT: Latest version: http://www.vitruality.com/2014/11/spartan-v1-2-procjam-edition/

http://www.vitruality.com/2014/10/spartan-v1-1/
http://www.vitruality.com/2014/08/spartan-v1-0-small-pixel-art-animator/



As well as the standard boring drawing stuff, SPARTAN has...

A splotchy freestyle palette with colour mixing:



A multi-mode colour picking interface:



The ability to save and organise sprite data in a Sprite->Animation->Direction->Frame->Layer hierarchy:



Spritesheet generation with efficient packing.  Allows multiple animated sprites to be placed on the same spritesheet:



Different preview tools including tiling, onion-skinning, quick-toggle to 100% zoom etc.:



The ability to preview animations and modify them at the same time - lets you record mouse movements as a guide for natural animated movements:



The ability to link frames and/or layers, so that changes on one are automatically applied to the other.  This can even be done between different sprites, allowing for easy creation and maintenance of variants:



So far development has been solely based around my own selfish whims, needs and workflow, but if this is useful (or can be made useful) to other people that would be great.  I'm very interested to get feedback on it from pixel artists who are less mediocre than I am!
« Last Edit: November 17, 2014, 02:06:41 PM by Paul Jeffries » Logged

www.vitruality.com | SPARTAN - Small Pixel Art Animator and procedural tile generator
Alicecomma
Level 0
**



View Profile
« Reply #1 on: August 29, 2014, 08:16:43 AM »

Some suggestions;

- Circle, rectangle, triangle, etc. brushes, optionally resizable versions of those
- Dithering versions of above brushes
- Possibility to add custom brushes (brushes folder)
- Custom quickzoom presets (not only 1:1), or a way to customize it in an option menu
- (Customizable) hotkeys for tools
- Custom generated outline colour
- Options to put generated outlines on the same layer
- Options to not set "Replace Colour" to the active colour

And minor things;

- Canvas window's elements are scaling to the window size
- Closing (cancelling) the custom canvas size window creates the sprite anyways
- Colour picker window doesn't remember your previous tab choice


Amazing tool, feels very responsive already. I'd purchase it in a slightly more refined shape.
Logged
DangerMomentum
Level 3
***



View Profile WWW
« Reply #2 on: August 29, 2014, 08:39:41 AM »

This looks really impressive. I'm definitely going to give this a shot when I get home.
Logged

Paul Jeffries
Level 3
***



View Profile WWW
« Reply #3 on: August 30, 2014, 02:12:41 PM »

Some suggestions;

- Circle, rectangle, triangle, etc. brushes, optionally resizable versions of those
- Dithering versions of above brushes
- Possibility to add custom brushes (brushes folder)
- Custom quickzoom presets (not only 1:1), or a way to customize it in an option menu
- (Customizable) hotkeys for tools
- Custom generated outline colour
- Options to put generated outlines on the same layer
- Options to not set "Replace Colour" to the active colour

And minor things;

- Canvas window's elements are scaling to the window size
- Closing (cancelling) the custom canvas size window creates the sprite anyways
- Colour picker window doesn't remember your previous tab choice


Amazing tool, feels very responsive already. I'd purchase it in a slightly more refined shape.

Thanks Alicecomma, that's a good list of suggestions.

For dithering, I was thinking of adding the option to have different kinds of dithering 'masks' that would make only certain patterns of cells editable - so you would draw as normal but the mask would result in dithered drawing.  The main reason I haven't implemented it yet is because I haven't thought up a way of getting it to work with the current flood-fill algorithm.

I also have a plan for hotkeys, which is actually part of a larger plan to include an AutoCAD/Rhino3d-style command-line interface (For example, "DRAW 10,15" would fill in the pixel at 10,15).  You could then assign commands to hotkeys or even a list of commands to be performed sequentially.

The generated outline should already use the currently selected colour.  Was that not working correctly?
Logged

www.vitruality.com | SPARTAN - Small Pixel Art Animator and procedural tile generator
Alicecomma
Level 0
**



View Profile
« Reply #4 on: August 30, 2014, 11:47:58 PM »

On hotkeys: Are you gonna add hotkeys like "Draw | Pick color (P)", "Line | Pick color (L)" etc. with customizable hotkeys though?
On the generated outline: You're right, it works.


And some more;

- The manual zoom levels are mixed up; View>Zoom>25% shows 2500% zoom, View>Zoom>50% shows 500% zoom.
- The selection tool can't start outside of the canvas, but it can end there, resulting in interesting selection areas.
- The selection tool's bounding box is overlapped by the tile -1,-1 from the box' top left corner.
- The circle/ellipse tool only updates the layer, not the frame or sprite (previews), so you have to draw with the Draw tool to update the sprite for horizontal/vertical tiling.
- The canvas outline is still shown in tiling mode, which makes it hard to make see-through tiles.
- Flip X offsets the sprite border by one to the right, and Flip Y offsets the sprite border by one to the bottom. Looks like it somehow switches positions 1-31 instead of the 0-31 I assume the canvas uses.
- Using Replace Colour replaces your previous Ctrl+Z
Logged
BarchKing
Guest
« Reply #5 on: August 31, 2014, 02:53:18 AM »

this is a real neat program!

do you reckon you could get the program to work with its auto creating dithering instead of blend modes?

another thing would be custom brushes!
Logged
nikki
Level 10
*****


View Profile
« Reply #6 on: August 31, 2014, 03:40:36 AM »

nice!, I havent tested it, but from the screenshots it looks like you can optimize the spritesheet packing much further. (saving x and y offsets and crop all original transparancy around them)
Logged
Paul Jeffries
Level 3
***



View Profile WWW
« Reply #7 on: September 01, 2014, 04:17:18 AM »

On hotkeys: Are you gonna add hotkeys like "Draw | Pick color (P)", "Line | Pick color (L)" etc. with customizable hotkeys though?

Yes; there will be a 'SET TOOL' (or something) command which you can bind to, and I'll also set up defaults for all the standard tools using this.  As I may not get around to the whole command system for a while I might add in some hard-coded hotkeys as a stop-gap in the meantime.

- The manual zoom levels are mixed up; View>Zoom>25% shows 2500% zoom, View>Zoom>50% shows 500% zoom.
- The selection tool can't start outside of the canvas, but it can end there, resulting in interesting selection areas.
- The selection tool's bounding box is overlapped by the tile -1,-1 from the box' top left corner.
- The circle/ellipse tool only updates the layer, not the frame or sprite (previews), so you have to draw with the Draw tool to update the sprite for horizontal/vertical tiling.
- The canvas outline is still shown in tiling mode, which makes it hard to make see-through tiles.
- Flip X offsets the sprite border by one to the right, and Flip Y offsets the sprite border by one to the bottom. Looks like it somehow switches positions 1-31 instead of the 0-31 I assume the canvas uses.
- Using Replace Colour replaces your previous Ctrl+Z

Good catches, I'll work my way through fixing these.  Are you sure about the zoom levels, though?  They seem to work as expected for me - i.e. at 25% zoom the sprite is 25% of the size it would be at 100%.  There is an adjustment factor in the zoom to account for Windows DPI scaling settings, so it's possible that something is going horribly wrong there - what version of Windows are you using?

do you reckon you could get the program to work with its auto creating dithering instead of blend modes?

That would be cool.  I'll have to think about how to implement it, though...

nice!, I havent tested it, but from the screenshots it looks like you can optimize the spritesheet packing much further. (saving x and y offsets and crop all original transparancy around them)

Yes, good idea.  I'm actually working on adding cropping/resizing tools at the moment, so it should be fairly easy to add an automatic step to spritesheet building to do that.  I'll make it an option, though, since it requires you to handle the size change in whatever you're using the spritesheet in.
Logged

www.vitruality.com | SPARTAN - Small Pixel Art Animator and procedural tile generator
Alicecomma
Level 0
**



View Profile
« Reply #8 on: September 01, 2014, 06:29:02 AM »

Are you sure about the zoom levels, though?  They seem to work as expected for me - i.e. at 25% zoom the sprite is 25% of the size it would be at 100%.  There is an adjustment factor in the zoom to account for Windows DPI scaling settings, so it's possible that something is going horribly wrong there - what version of Windows are you using?

Windows 7 SP 1, 1920x1080, 96 DPI (100%)

At 25% zoom (selected through View>Zoom>25%) the canvas is a bit bigger than its 2000% state (selected through View>Zoom>2000%).
Logged
Paul Jeffries
Level 3
***



View Profile WWW
« Reply #9 on: September 04, 2014, 04:28:52 AM »

At 25% zoom (selected through View>Zoom>25%) the canvas is a bit bigger than its 2000% state (selected through View>Zoom>2000%).

Hmmm... that's really bizarre.  So I take it that 2000% looks about right and it's only the 25% and 50% levels that are weird?  In that case I don't think it can be a DPI adjustment thing since it sets that factor once when the main window is loaded and should scale all zoom levels by the same amount.

- Canvas window's elements are scaling to the window size

Does that mean that when you resize the window, the contents of the canvas scale up to match (rather than staying the same size, but the workspace getting bigger)?  That shouldn't be happening (and doesn't for me) so perhaps it's a related problem.  Is it just the canvas itself or do other controls scale up too?
Logged

www.vitruality.com | SPARTAN - Small Pixel Art Animator and procedural tile generator
Alicecomma
Level 0
**



View Profile
« Reply #10 on: September 04, 2014, 05:09:29 AM »

- Canvas window's elements are scaling to the window size

Does that mean that when you resize the window, the contents of the canvas scale up to match (rather than staying the same size, but the workspace getting bigger)?  That shouldn't be happening (and doesn't for me) so perhaps it's a related problem.  Is it just the canvas itself or do other controls scale up too?

File > New sprite > Custom
Logged
eigenbom
Level 10
*****


@eigenbom


View Profile WWW
« Reply #11 on: September 04, 2014, 06:31:18 PM »

Woah looks great Smiley
Logged

Paul Jeffries
Level 3
***



View Profile WWW
« Reply #12 on: October 02, 2014, 01:39:28 PM »

I just released an update:
http://www.vitruality.com/2014/10/spartan-v1-1/

This new version fixes most of the bugs that people have reported (except for ones I can't reproduce like the zooming weirdness - I still don't know what's going on there) and adds a bunch of new features.  The biggest new additions are the different kinds of adjustable brushes (including user ones created by loading image files) and a library of different dithering patterns to go along with them:



There's also now support for cropping and resizing of frames and layers, layer offsets and animation hot-spots.  I've also added in some (temporarily hard-coded) hotkeys for the different drawing tools (see the readme for the key bindings).

Here's a full list of all the improvements:

Bugs fixed:
- Circle/Ellipse tools were not updating the combined preview image after use
- New Sprite->Custom will no longer create a new sprite if the size selection window is closed without pressing OK
- Flip X and Flip Y tools were incorrectly calculating flip bounds - was resulting in a one-pixel offset to the result
- Box selection is now limited to selected layer area
- Prevented mouse movement drawing when the mouse button was not initially clicked over the canvas
- Clearing selection using the delete key was not being correctly triggered
- Layout rounding was causing offset layers and selection areas to be displayed in slightly the wrong position

New Features:
- Display option to show bounds of selected Layer
- Showing frame border can now be toggled on or off
- Layers can now be assigned X and Y offsets from their parent frame
- Frame and Layer cropping/resizing
- Support for brushes added
- New round brush
- New square brush
- New 'rough' brush
- New brush selection/editing interface above colour selection
- Colour selection now has patchwork background to make colour transparency more obvious
- New ability to import/batch import images to be used as custom brushes
- Image brushes can use original image colours or use the image as a mask for the current colour
- Dithering, with a library of 12 different dithering patterns to choose from
- Default shortcut keys added for primary tools (see Readme for key bindings).
- Frame hot-spot support added
- Hot-spot data can optionally be written to output spritesheet markup
- Tooltips added to spritesheet generator options
- Option to display current frame with the view centred on its hotspot (for animation preview - not recommended for editing)
- Onion skinning displays next/previous frame using the differential offset between hot-spots
- Onion skinning now 'wraps around' when the active frame is the first or last in the animation
- Crosshair overlay for thick brushes
- Performance improvements for larger canvasses
- Colour picker now remembers and restores the last-used tab
Logged

www.vitruality.com | SPARTAN - Small Pixel Art Animator and procedural tile generator
wccrawford
Level 3
***



View Profile
« Reply #13 on: October 06, 2014, 10:10:13 AM »

Just finally seeing this.  Looks like you got a lot of nice features!  I've yet to really find a sprite editor that has the features I'm looking for, so here's hoping this is the one.  Smiley
Logged
Paul Jeffries
Level 3
***



View Profile WWW
« Reply #14 on: October 08, 2014, 11:07:27 AM »

Just finally seeing this.  Looks like you got a lot of nice features!  I've yet to really find a sprite editor that has the features I'm looking for, so here's hoping this is the one.  Smiley

Let's hope!  If you have any particular features that you'd like to see then I'm open to suggestions.

To update: currently I'm re-writing the selection system to allow for non-rectangular selection areas.  I'm hoping to then hook that into the drawing system so that you'll be able to 'paint' selection areas with exactly the same brush options that you can use for regular drawing.
Logged

www.vitruality.com | SPARTAN - Small Pixel Art Animator and procedural tile generator
Paul Jeffries
Level 3
***



View Profile WWW
« Reply #15 on: November 17, 2014, 02:06:06 PM »

I've just released a new version of SPARTAN for procjam:

http://www.vitruality.com/2014/11/spartan-v1-2-procjam-edition/

During the jam I added a new set of functionality to the tool to procedurally generate pixel art tiles.  Here are some examples of tiles produced solely using the generator:



There are a couple of pre-set tile types (bricks, stone, grass, water, lava etc.) included, but the generation is split down into modular components that can be manipulated and combined using a built-in visual editor in order to build up custom generators.



Here's the full changelist:

Bugs fixed:
- Brush crosshair only shows up when the equipped tool uses brushes

New Features:
- Ability to generate spritesheet with missing non-vertical directions automatically taken as mirrors of existing directions
- Selection system re-written to enable non-rectangular selection areas.

New PROCJAM Features:
- New Selection Menu with different fill options
- New Colour Range system and editing interface for specifying colour gradients
- New Generator system for procedurally creating pixel art tiles
- Visual editor for building generation algorithms
- A library of modular generation components
Logged

www.vitruality.com | SPARTAN - Small Pixel Art Animator and procedural tile generator
Gradir
Level 0
*


Arrr!


View Profile WWW
« Reply #16 on: November 25, 2014, 06:34:03 PM »

This is a great tool ! Good job man
Logged

tuaarita
Level 0
***


I can type here?


View Profile
« Reply #17 on: December 03, 2014, 09:08:10 AM »

v1.2 keeps crashing on launch, Windows 7 64 Sad
v1.1 works fine
Logged
Paul Jeffries
Level 3
***



View Profile WWW
« Reply #18 on: December 04, 2014, 02:45:52 AM »

v1.2 keeps crashing on launch, Windows 7 64 Sad
v1.1 works fine

Try redownloading now - I uploaded a new version last night that fixes a bug which caused crashes with certain regional settings.  Hopefully that will solve your problem.

Direct link: http://www.vitruality.com/wp-content/plugins/download-monitor/download.php?id=21
Logged

www.vitruality.com | SPARTAN - Small Pixel Art Animator and procedural tile generator
pmprog
Level 1
*


View Profile WWW
« Reply #19 on: December 04, 2014, 06:26:51 AM »

Ooh, this looks pretty neat, have to give this a play when I get some free time
Logged
Pages: [1] 2
Print
Jump to:  

Theme orange-lt created by panic