Shop OBEX P1 Docs P2 Docs Learn Events
What is needed in a sprite Editor? — Parallax Forums

What is needed in a sprite Editor?

CassLanCassLan Posts: 586
edited 2009-07-09 22:00 in Propeller 1
Hey Graphics folks,

What is needed in a sprite editor?

Sprite File Should contain:
Sprite Frames (Pixel Color Info Rastered)
Sprite Dimensions
# of Sprite Frames
Sprite Palette

Sprite Editor Should be able to:
Edit the Sprite File
Edit the Palette
Play Animated Frames
Add/Remove Frames


I have wanted to get into graphical stuff but have not really done so yet, so please excuse the newbness of the question [noparse]:)[/noparse]
Am I missing anything?

Rick

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔


Prop Forum Search (Via Google)
320 x 240 - 20K

Comments

  • whickerwhicker Posts: 749
    edited 2009-07-09 15:38
    copy and paste between frames.
    a palette for different bit depths, that can be saved and recalled.
    a way to export to various output formats, including a CSV string so it can be put directly into a .data section.
  • CassLanCassLan Posts: 586
    edited 2009-07-09 15:49
    I got most of what you said, but not following on "a palette for different bit depths", is that an option for different palettes for different frames?

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔


    Prop Forum Search (Via Google)
  • Oldbitcollector (Jeff)Oldbitcollector (Jeff) Posts: 8,091
    edited 2009-07-09 15:56
    /me grabs the whip and points at Preditor.. [noparse]:)[/noparse] <SMIRK!>

    A sprite editor sounds good! What driver are you planning to support?

    OBC

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    New to the Propeller?

    Visit the: The Propeller Pages @ Warranty Void.
  • CassLanCassLan Posts: 586
    edited 2009-07-09 16:06
    @OBC - HAha I know I know.
    My brain just needed a break..editing a file with so many boundaries like a sprite is such a pleasure [noparse];)[/noparse]
    Drivers? well, the screen cap you see is using TVText Half height, and the blocks are space characters.
    It pulled the data from a CSV file.
    That does pose an issue about being able to see the sprite actual size while working on it, which I assume is very helpfull.
    I'm not really sure, I was just foolin around while on a break from preditor, just gathering some information.
    AIG can does pixel graphics and text right?

    Rick

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔


    Prop Forum Search (Via Google)
  • trodosstrodoss Posts: 577
    edited 2009-07-09 16:49
    CassLan said...

    AIG can does pixel graphics and text right?

    Rick
    AIG = AIGeneric?·
    Technically it is a 1bpp (1 bit per plane) graphics format of 8x8 characters (128).· The 'graphics' would be the font itself.·

    For your·"standard" 16x16 "sprite"·in 8x8, you would have to dedicate 4 characters per frame (without reuse certian 'characters').·

    [noparse][[/noparse]Edit:] Attached 2 frame example...

    Post Edited (trodoss) : 7/9/2009 4:55:08 PM GMT
  • Oldbitcollector (Jeff)Oldbitcollector (Jeff) Posts: 8,091
    edited 2009-07-09 16:56
    Rumor has it (again from UPEW, and from the horses mouth this time) that there
    will be an update to the engine which powers AIgeneric.

    We should be able to handle things like sprite much better, and certainly color.

    /me poke Potatohead with a stick.. [noparse]:)[/noparse]

    OBC

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    New to the Propeller?

    Visit the: The Propeller Pages @ Warranty Void.
  • CassLanCassLan Posts: 586
    edited 2009-07-09 17:08
    I'm a little lost on the terminology or at least I think I am.
    A Sprite as I think of it is a Collection of pixels with a distinct # of rows, columns & colors.
    People put multiples of these together end to end to make what? (I'm calling it a Frame).
    And the animation comes from multiple frames flipping through...or do some refer to the whole animation as a sprite?
    So if a smileyface animation has 6 frames, 4 sprites per frame = you need 24 sprites yes?

    I think I know what you mean by drivers now
    I was just going to write something to edit pixels..preview them animating and output to certain formats like whicker was saying, for DAT and stuff, (Although I think loading from SD inbetween levels would be a great way to save space and have loads of different animations)
    I wasn't planning on writing the drivers to read and use the sprite data in game...thats for Potatohead & OBC to do [noparse]:)[/noparse]

    I can have it output in whatever format is most convenient though, we just need a standard format...and if that already exists...my bad.
    But even several formats would be usefull...like if you spend all this time creating the artwork and formating the data of it for your game...then you have an AHA moment and comeup with a better way to read the data in your game...you could just open the sprite up again in the editor and save it in a different format for your new needs.

    @trodoss- Yep I meant AiGeneric when I said AIG. I can see the name of the attachment..but no link to view it.

    Rick

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔


    Prop Forum Search (Via Google)

    Post Edited (CassLan) : 7/9/2009 5:13:15 PM GMT
  • trodosstrodoss Posts: 577
    edited 2009-07-09 17:31
    @CassLan:

    "Sprite" seems to means a lot of different things to different people...so yes [noparse];)[/noparse]

    @OBC:

    If AIGeneric is redone by Potatohead, it should turn out great.


    [noparse][[/noparse]Edit:] Hopefully that attachment will work better...or this one?

    Post Edited (trodoss) : 7/9/2009 5:36:42 PM GMT
  • Oldbitcollector (Jeff)Oldbitcollector (Jeff) Posts: 8,091
    edited 2009-07-09 17:34
    trodoss said...
    @CassLan:


    [noparse][[/noparse]Edit:] Hopefully that attachment will work better.

    Nope, try putting a readme.txt in with it in a .zip file.
    This forum doesn't handle tiny files very well.

    OBC

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    New to the Propeller?

    Visit the: The Propeller Pages @ Warranty Void.
  • trodosstrodoss Posts: 577
    edited 2009-07-09 17:36
    Ok, trying it again...
  • trodosstrodoss Posts: 577
    edited 2009-07-09 17:39
    Oldbitcollector said...
    /me grabs the whip and points at Preditor.. [noparse]:)[/noparse] <SMIRK!>



    /me grabs whip and points at PropDOS [noparse];)[/noparse]

    ...but that is for another thread I suppose

    [noparse][[/noparse]Edit:] /me points at self and says, "Hey, aren't you supposed to be finishing up that game you started?" <sigh!>
    Not enough hours in the day.

    Post Edited (trodoss) : 7/9/2009 5:44:44 PM GMT
  • CassLanCassLan Posts: 586
    edited 2009-07-09 17:43
    LOL ok trodoss I got to see that image,
    So thats what you mean by 1 bit per plane?...like·1 color?



    boss_3_1.bmp

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔


    Prop Forum Search (Via Google)
  • trodosstrodoss Posts: 577
    edited 2009-07-09 17:52
    Yep, that would be it [noparse];)[/noparse]

    In the definition of the font, the main character looks like the following 8x8 characters where 0=blank, 1=drawn pixel:

    ······· byte byte %00000000···· ' ........ $03
    ······· byte byte %00000000···· ' ........
    ······· byte byte %11110000···· ' ####....
    ······· byte byte %00001000···· ' ....#...
    ······· byte byte %01010100···· ' .#.#.#..
    ······· byte byte %11101100···· ' ###.##..
    ······· byte byte %00000000···· ' ........
    ······· byte byte %10110010···· ' #.##..#.

    ······· byte byte %00000001···· ' .......# $04
    ······· byte byte %01111011···· ' .####.##
    ······· byte byte %11110101···· ' ####.#.#
    ······· byte byte %00000001···· ' .......#
    ······· byte byte %00100010···· ' ..#...#.
    ······· byte byte %00110000···· ' ..##....
    ······· byte byte %00010000···· ' ...#....
    ······· byte byte %00101100···· ' ..#.##..

    ······· byte byte %00000001···· ' .......# $05
    ······· byte byte %01111011···· ' .####.##
    ······· byte byte %11110101···· ' ####.#.#
    ······· byte byte %00000001···· ' .......#
    ······· byte byte %10010010···· ' #..#..#.
    ······· byte byte %10011000···· ' #..##...
    ······· byte byte %00110000···· ' ..##....
    ······· byte byte %00000000···· ' ........

    ······· byte byte %00100100···· ' ..#..#.. $06
    ······· byte byte %00100010···· ' ..#...#.
    ······· byte byte %00100001···· ' ..#....#
    ······· byte byte %00010000···· ' ...#....
    ······· byte byte %00000001···· ' .......#
    ······· byte byte %00000011···· ' ......##
    ······· byte byte %00000010···· ' ......#.
    ······· byte byte %00001101···· ' ....##.#

    ······· byte byte %00110100···· ' ..##.#.. $07
    ······· byte byte %00010010···· ' ...#..#.
    ······· byte byte %00011001···· ' ...##..#
    ······· byte byte %00000110···· ' .....##.
    ······· byte byte %00000000···· ' ........
    ······· byte byte %00000001···· ' .......#
    ······· byte byte %00000011···· ' ......##
    ······· byte byte %00000101···· ' .....#.#

    ······· byte byte %00100100···· ' ..#..#.. $08
    ······· byte byte %00010010···· ' ...#..#.
    ······· byte byte %00001001···· ' ....#..#
    ······· byte byte %00000000···· ' ........
    ······· byte byte %00000000···· ' ........
    ······· byte byte %00000001···· ' .......#
    ······· byte byte %00000011···· ' ......##
    ······· byte byte %00000101···· ' .....#.#

    ······· byte byte %00000000···· ' ........ $09
    ······· byte byte %00000000···· ' ........
    ······· byte byte %00000110···· ' .....##.
    ······· byte byte %00001110···· ' ....###.
    ······· byte byte %00011010···· ' ...##.#.
    ······· byte byte %00110000···· ' ..##....
    ······· byte byte %00100011···· ' ..#...##
    ······· byte byte %00100100···· ' ..#..#..

    ······· byte byte %00000000···· ' ........ $0A
    ······· byte byte %00000000···· ' ........
    ······· byte byte %00000000···· ' ........
    ······· byte byte %00001100···· ' ....##..
    ······· byte byte %00011010···· ' ...##.#.
    ······· byte byte %00110000···· ' ..##....
    ······· byte byte %00110011···· ' ..##..##
    ······· byte byte %00110100···· ' ..##.#..

    ······· byte byte %00000000···· ' ........ $0B
    ······· byte byte %00011000···· ' ...##...
    ······· byte byte %00101000···· ' ..#.#...
    ······· byte byte %00101100···· ' ..#.##..
    ······· byte byte %01000110···· ' .#...##.
    ······· byte byte %01000000···· ' .#......
    ······· byte byte %01000011···· ' .#....##
    ······· byte byte %01000100···· ' .#...#..
    162 x 84 - 1K
  • BaggersBaggers Posts: 3,019
    edited 2009-07-09 17:54
    Hey Rick,
    Alterable Sprite Width and Height is a MUST! lol
    What might be a good solution also, is to make your app do 256 colour sprites, that way, it won't matter how many bpp they are, they all get edited the same way,
    And just have different importers and exporters, that handle spewing them out to their own formats, like spectrum sprites 1bpp left to right pixels would be bits 7-0, 15-8, etc. or a new modified spectrum driver I've done for a game I'm working on in what little spare time I get, is 1bpp, and bits are 31-0, for long access, and easy rotation for fast X pixel positioning.

    Save 8bit BMP [noparse]:D[/noparse]

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    http://www.propgfx.co.uk/forum/·home of the PropGFX Lite

    ·
  • KyeKye Posts: 2,200
    edited 2009-07-09 17:58
    When I finish my file system driver I was thinking about making a simple program that allows you to use the mouse to paint on colors for a sprite and then save that to the disk as a bitmapfile and as a file compatible with my graphics driver for import.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Nyamekye,
  • trodosstrodoss Posts: 577
    edited 2009-07-09 18:01
    @Baggers,
    So true about alterable width/height [noparse];)[/noparse]
    I think in terms of old "Pattern tables" (fixed 8x8) with each block having color indexes....Not as portable as Bitmap for sure.
  • CassLanCassLan Posts: 586
    edited 2009-07-09 18:04
    Baggers, thats what I was thinking...edit it in an easy to use way...then save it whatever way would be needed.
    I can't start real work on this till preditor is done though.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔


    Prop Forum Search (Via Google)
  • BasilBasil Posts: 380
    edited 2009-07-09 20:49
    Not so much a requirement, but a neat feature would be onion skinning [noparse]:)[/noparse]

    http://en.wikipedia.org/wiki/Onion_skinning

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    -Alec

    Velden in N scale
  • BaggersBaggers Posts: 3,019
    edited 2009-07-09 22:00
    Rick, yeah, keep it simple, one editor fits all then, and you don't have to do bit manipulation with ALL variations of bit formats/layouts etc, will save you headaches later, not to mention the increased filesize [noparse]:D[/noparse] you could even have the input/output files done as overlay'd objects, ( isn't there an object loader somewhere about the forum? ) it'd be a bit like a DLL then lol, or if that's too hard, you could have a single COG that is compiled into a binary program, then your app loads it into a cog, and points it to the sprite details, ( hub-ram src, target buffer, sizes, etc. ) and people can then add their own converters, which does the conversion, and returns the filesize, your app then just writes the data out. [noparse]:)[/noparse]

    @trodoss, yeah deffo [noparse]:D[/noparse]


    oh, and Rick, 1bit per plane is two colours eg transparent + 1 colour, 2bpp = transparent + 3colours, 4bpp = transparent + 15colours, 8bpp = full 256 colours

    oh, and Basil, good idea on onion skinning, that's always good for doing animations,
    Rick, if you need any pointers on doing onion skinning, let me know [noparse]:)[/noparse]

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    http://www.propgfx.co.uk/forum/·home of the PropGFX Lite

    ·
Sign In or Register to comment.