Objecty gets boned

Previous topic - Next topic

skn3

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

kaotiklabs

Sounds really promising!
Vote Cthulhu! Because the stars are right!!!!
Ia Ia Cthulhu F' tang!

Wampus

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?

skn3

#3
Thanking you both :)

Quote from: Wampus 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?

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:

Wampus

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.

skn3

Quote from: Wampus 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.

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 ?

Wampus

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.

Kitty Hello

Doesn't "getting boned" mean something else?

skn3

Quote from: Wampus 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.

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!

Quote from: Kitty Hello on 2012-May-01
Doesn't "getting boned" mean something else?

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

Wampus

Quote from: skn3 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.

skn3

Quote from: Wampus on 2012-May-01
Quote from: skn3 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.

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.

theprotocol

Quote from: Kitty Hello on 2012-May-01
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.

skn3

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!