Author Topic: Objecty gets boned  (Read 2973 times)

Offline skn3

  • Mc. Print
  • *
  • Posts: 21
    • View Profile
Objecty gets boned
« on: 2012-Apr-26 »
I posted about my app Objecty a while ago now and just thought I would post an update as I made something exciting this afternoon!

I have been hard at work in the last 3 or so months since my previous post. I have been building up the framework that Objecty uses. Its got to the stage now where I can really quickly add things and have everything interact.

Objecty is amazingly powerful and really easy to use. Here's a little example with pictures:

I can add a texture node and add some image nodes to it



I can define any number of hotspots on my image nodes



I can then create a sprite node which is for working with pixel based animations. To that sprite node I can add animation nodes and reuse the image nodes that were already added to the texture node.



Or if I want to be adventurous I can build an actor node out of image nodes with a bone structure. This allows me to piece together a larger "character" out of smaller bits and animate it using keyframing and/or tweening.



The bone editor has been coded in the last 2 or 3 hours (from scratch) so there is not much detail to it yet. This was incredibly satisfying as the hard work with the Objecty framework is starting to pay off!

Well that's all for now :D

Offline kaotiklabs

  • Dr. Type
  • ****
  • Posts: 313
  • Spain is diferent
    • View Profile
Re: Objecty gets boned
« Reply #1 on: 2012-Apr-26 »
Sounds really promising!
Vote Cthulhu! Because the stars are right!!!!
Ia Ia Cthulhu F' tang!

Offline Wampus

  • Prof. Inline
  • *****
  • Posts: 1004
    • View Profile
Re: Objecty gets boned
« Reply #2 on: 2012-Apr-26 »
Stirling work. I use Texture Packer and have been following the progress of Spriter. Your software appears to do much of the work that both these tools do combined into one package.

I have a couple of questions:-

1) Is there or will there be an 'extrude' option for the edges of sprites to be spread out beyond their normal borders? This is important for creating sprite sheets that can tile seamlessly while scaling and moving.

2) Is there GLBasic specific code for support of the sprite sheets and animation yet? If not, will you need some assistance with that?

Offline skn3

  • Mc. Print
  • *
  • Posts: 21
    • View Profile
Re: Objecty gets boned
« Reply #3 on: 2012-Apr-26 »
Thanking you both :)

Stirling work. I use Texture Packer and have been following the progress of Spriter. Your software appears to do much of the work that both these tools do combined into one package.

I have a couple of questions:-

1) Is there or will there be an 'extrude' option for the edges of sprites to be spread out beyond their normal borders? This is important for creating sprite sheets that can tile seamlessly while scaling and moving.

2) Is there GLBasic specific code for support of the sprite sheets and animation yet? If not, will you need some assistance with that?

1) There is edge bleeding which you can apply to specific image nodes or you can select them all and apply bleeding to all at once.


2) There is no specific GLBasic code yet. I am waiting to nearer release and then I will write the exporters. Objecty uses a lua based api so anyone can write their own exporters if they want. Any help would be great, perhaps I can email you if I get stuck when it comes to the GLBasic side of things?

This is a test exporter I have for outputting a css sprite sheet
Code: GLBasic [Select]
function export(atlas)
        --DebugLog("spaces = "..settings.class_names.spaces)

        -- get some properties
        atlasId = atlas:Attribute("id")
        atlasSheets = atlas:Attribute("atlas_sheets_total")
        atlasWidth = atlas:Attribute("width")
        atlasHeight = atlas:Attribute("height")
        atlasPath = atlas:Attribute("atlas_output_data_file")
       
        -- create the file for writting
        file = CreateFile(atlasPath)
        htmlFile = CreateFile(ChangePathExtension(atlasPath,"html"))
       
        -- css header
        file:WriteLine("/* Atlas '"..atlasId.."' exported by Objecty - www.skn3.com */")
       
        -- html header
        htmlFile:WriteLine("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en\" xml:lang=\"en\" dir=\"ltr\">\n\t<head>\n\t\t<link type=\"text/css\" rel=\"stylesheet\" media=\"screen\" href=\""..FileName(atlasPath).."\" />\n\t</head>\n\t<body>\n")
       
        -- loop through each page of the atlas
        for sheetIndex = 0,atlasSheets-1,1 do
                -- get filename for the image
                if atlasSheets > 1 then
                        -- multiple sheets
                        imagePath = ChangePathExtension(PostfixPath(atlasPath,"_"..sheetIndex),"png")
                else
                        -- single sheet
                        imagePath = ChangePathExtension(atlasPath,"png")
                end
               
                -- create the image for this sheet
                image = CreateImage(atlasWidth,atlasHeight)
               
                -- write comment header
                if atlasSheets > 1 then
                        file:WriteLine("/* Atlas '"..atlasId.."' sheet "..sheetIndex.." */")
                end
               
                -- loop through all atlas items
                for atlasItem in atlas:Children() do
                        if atlasSheets == 1 or atlasItem:Attribute("atlas_item_sheet_index") == sheetIndex then
                                -- paste image
                                image:Paste(atlasItem:Attribute("image"),atlasItem:Attribute("x"),atlasItem:Attribute("y"))
                               
                                -- make id
                                atlasItemId = atlasId.."_"..ValidId(atlasItem:Attribute("id"))
                               
                                -- add to file
                                file:WriteLine("."..atlasItemId.." { \n\tbackground: url('"..imagePath.."') no-repeat -"..atlasItem:Attribute("x").."px -"..atlasItem:Attribute("y").."px;\n\twidth: "..atlasItem:Attribute("width").."px;\n\theight: "..atlasItem:Attribute("height").."px;\n }")
                               
                                -- add to html
                                htmlFile:WriteLine("\t\t<div class=\""..atlasItemId.."\"></div>")
                        end
                end
               
                -- write end of sheet
                file:WriteLine("")
               
                -- save the image for this sheet
                image:Save(imagePath)
                image:Close()
        end
       
        -- html footer
        htmlFile:WriteLine("\t</body>\n</html>")
       
        -- close the output file
        file:Close()
        htmlFile:Close()
end

There is one little piece of info in that script which is the part talking about sheets. I should point out that it was requested on this forum for the texture to auto split onto multiple sheets. Well I added that feature a while back and as you can see multiple sheets  :good:
« Last Edit: 2012-Apr-26 by skn3 »

Offline Wampus

  • Prof. Inline
  • *****
  • Posts: 1004
    • View Profile
Re: Objecty gets boned
« Reply #4 on: 2012-Apr-27 »
Excellent. I like the option of edge bleeding applied to individual images or all at once. Very useful.

Feel free to email me about anything related to this. Next week I happen to be putting together some basic Spriter support in GLBasic. Much of the math and methods involved will be similar to supporting Objecty animation so I should be in a good position to get something working once you're ready to release.

Offline skn3

  • Mc. Print
  • *
  • Posts: 21
    • View Profile
Re: Objecty gets boned
« Reply #5 on: 2012-Apr-30 »
Excellent. I like the option of edge bleeding applied to individual images or all at once. Very useful.

Feel free to email me about anything related to this. Next week I happen to be putting together some basic Spriter support in GLBasic. Much of the math and methods involved will be similar to supporting Objecty animation so I should be in a good position to get something working once you're ready to release.

Thanks :D Im glad it seems like a worthwhile feature. Most apps just let you do it across the entire texture so thought it would be a nice little addition!

Awesome thanks for the help! I will definitely be contacting you at some point. So are you doing the spriter code officially for them or is that something you just wanted to do ?

Offline Wampus

  • Prof. Inline
  • *****
  • Posts: 1004
    • View Profile
Re: Objecty gets boned
« Reply #6 on: 2012-Apr-30 »
I want to and I need to. Its giving something back, etc. Also, my game artist kept pointing out animation tweening in games and asking if she could use similar techniques. By the time we're working on our next game that will be possible.

Offline Kitty Hello

  • code monkey
  • Administrator
  • Prof. Inline
  • *******
  • Posts: 10697
  • here on my island the sea says 'hello'
    • View Profile
    • http://www.glbasic.com
Objecty gets boned
« Reply #7 on: 2012-May-01 »
Doesn't "getting boned" mean something else?

Offline skn3

  • Mc. Print
  • *
  • Posts: 21
    • View Profile
Re: Objecty gets boned
« Reply #8 on: 2012-May-01 »
I want to and I need to. Its giving something back, etc. Also, my game artist kept pointing out animation tweening in games and asking if she could use similar techniques. By the time we're working on our next game that will be possible.

cool :D i am very surprised that no one has released something like that up until now! I just hope that there is enough space for two competing projects as I am currently filming a video to start an indiegogo campaign!

Doesn't "getting boned" mean something else?

Lol I should probably think HARDER about my forum topic titles ;)

Offline Wampus

  • Prof. Inline
  • *****
  • Posts: 1004
    • View Profile
Re: Objecty gets boned
« Reply #9 on: 2012-May-01 »
cool :D i am very surprised that no one has released something like that up until now! I just hope that there is enough space for two competing projects as I am currently filming a video to start an indiegogo campaign!

Oh yeah, do that. If you weren't already planning to do so, get a list of the game development groups in Canada and send them a press statement about Objecty once its up on Indiegogo. Indiegogo might be on a smaller scale than Kickstarter but Canada has a lot of game developers. Do it soon too, because you might see more competition spring up in time! Suddenly it seems crazy that tools like Objecty have only been available in-house before now.

Looks like there are considerable differences between your app and Spriter, so there should be space in the market. For example, to support Spriter in its current format I'm looking at having to include my own code for packing textures for speed since it saves every anim part as a separate png file. Your app takes care of that sort of thing already.

I'll have to wait to see what Objecty does but I'm guessing it will be better suited for quicker development cycles.

Offline skn3

  • Mc. Print
  • *
  • Posts: 21
    • View Profile
Re: Objecty gets boned
« Reply #10 on: 2012-May-02 »
cool :D i am very surprised that no one has released something like that up until now! I just hope that there is enough space for two competing projects as I am currently filming a video to start an indiegogo campaign!

Oh yeah, do that. If you weren't already planning to do so, get a list of the game development groups in Canada and send them a press statement about Objecty once its up on Indiegogo. Indiegogo might be on a smaller scale than Kickstarter but Canada has a lot of game developers. Do it soon too, because you might see more competition spring up in time! Suddenly it seems crazy that tools like Objecty have only been available in-house before now.

Looks like there are considerable differences between your app and Spriter, so there should be space in the market. For example, to support Spriter in its current format I'm looking at having to include my own code for packing textures for speed since it saves every anim part as a separate png file. Your app takes care of that sort of thing already.

I'll have to wait to see what Objecty does but I'm guessing it will be better suited for quicker development cycles.

All very good advice! I actually live in the UK. It's a shame that kickstarter doesn't support uk users as I would probably use that instead! As part of my preperation I am going to have to do a lot of research for different dev communities and companies me thinks!

Objecty will definitely provide a more overall solution to game assets! It really depends on how much support I can get before or after its released as this will help push some of the more interesting features ahead in the schedule.

Offline theprotocol

  • Mc. Print
  • *
  • Posts: 22
    • View Profile
Re: Objecty gets boned
« Reply #11 on: 2012-May-06 »
Doesn't "getting boned" mean something else?

lol.


Really impressive software, skn3! This is really neat. It seems so straightforward, whereas most software has a ton of bloat, yours seems to just make a beeline towards the best features.

Offline skn3

  • Mc. Print
  • *
  • Posts: 21
    • View Profile
Re: Objecty gets boned
« Reply #12 on: 2012-May-14 »
Hey thanks :D

Sorry for a slow reply I was out of the country! It has definitely been my focus to cut out all the bloat and just concentrate on what I hope is the core set of features. I'll probably add in some bloat later on but there are places I can tuck that bloat away hidden from general day to day use :)

I am currently shooting some video footage for an indiegogo campaign so will be posting more details about Objecty soon!