Sorry your browser is not supported!

You are using an outdated browser that does not support modern web technologies, in order to use this site please update to a new browser.

Browsers supported include Chrome, FireFox, Safari, Opera, Internet Explorer 10+ or Microsoft Edge.

AppGameKit/AppGameKit Studio Showcase / SpriteFX WIP - Animation system / spritesheet maker

Author
Message
baxslash
Valued Member
Bronze Codemaster
17
Years of Service
User Offline
Joined: 26th Dec 2006
Location: Duffield
Posted: 29th Jun 2012 18:04
Quote: "I thought it would be nice to have per limb"

How would that be used exactly?

Quote: "Also when I try to delete a limb I get a crash."

There was in issue in the last version. The next version should be much more stable.

Thanks for the feedback!


this.mess = abs(sin(times#))
DennisW
15
Years of Service
User Offline
Joined: 15th Jun 2008
Location: Ohio
Posted: 29th Jun 2012 19:08 Edited at: 29th Jun 2012 19:27
What I was thinking is kind of like the depth when you select sendback then select the limb you want. Do the same for zoom in or out.Then maybe have zoom in or out for whole Character.
Edit: Or would that be called sizeing.

Ham and Eggs Breakfast
The Chicken was involved the Pig was Committed
baxslash
Valued Member
Bronze Codemaster
17
Years of Service
User Offline
Joined: 26th Dec 2006
Location: Duffield
Posted: 29th Jun 2012 22:49
Yes, I think you mean scaling.


this.mess = abs(sin(times#))
DennisW
15
Years of Service
User Offline
Joined: 15th Jun 2008
Location: Ohio
Posted: 29th Jun 2012 23:33
Ok Thats it thats why you write it and I use it.

Ham and Eggs Breakfast
The Chicken was involved the Pig was Committed
3d point in space
14
Years of Service
User Offline
Joined: 30th Jun 2009
Location: Idaho
Posted: 1st Jul 2012 04:15 Edited at: 1st Jul 2012 04:17
hay backslash do you mind if I use your play/stop/rewind/fast forward buttons. I am getting closer to getting this done try my example program. I give baxslash my free program once if i get done. . Maybe I get the majority of my program done at least.

Developer of Space Chips, pianobasic, zipzapzoom, and vet pinball apps. Developed the tiled map engine seen on the showcase. Veteran for the military.
baxslash
Valued Member
Bronze Codemaster
17
Years of Service
User Offline
Joined: 26th Dec 2006
Location: Duffield
Posted: 1st Jul 2012 14:57
Quote: "hay backslash do you mind if I use your play/stop/rewind/fast forward buttons"

Sure, no problem. They were free from the internet anyway I think...


this.mess = abs(sin(times#))
DennisW
15
Years of Service
User Offline
Joined: 15th Jun 2008
Location: Ohio
Posted: 1st Jul 2012 15:16
I have a set of icons that microsoft gave away when vs2008 came out if you need them.

Ham and Eggs Breakfast
The Chicken was involved the Pig was Committed
3d point in space
14
Years of Service
User Offline
Joined: 30th Jun 2009
Location: Idaho
Posted: 2nd Jul 2012 19:49 Edited at: 2nd Jul 2012 19:52
Denis i need two more tool bars for my application one for tile map layers and one for box2d layers. So if you have ideas what you want on the toolbars it will be good to use.

Developer of Space Chips, pianobasic, zipzapzoom, and vet pinball apps. Developed the tiled map engine seen on the showcase. Veteran for the military.
DennisW
15
Years of Service
User Offline
Joined: 15th Jun 2008
Location: Ohio
Posted: 2nd Jul 2012 21:23
Here are some that I use that where free from microsoft and a couble that I mod Hope you can use some of them. Or anybody

Ham and Eggs Breakfast
The Chicken was involved the Pig was Committed

Attachments

Login to view attachments
3d point in space
14
Years of Service
User Offline
Joined: 30th Jun 2009
Location: Idaho
Posted: 5th Jul 2012 07:14 Edited at: 5th Jul 2012 16:04
I had too rewrite all my code from arrays to vectors_ know I am not getting memory leeks. My previous download used arrays and if you noticed if you loaded the 2 3 and 4 sprite my program magically picked up numbers that where not in there array vectors for Uv values this is when I noticed my arrays where to large. I was also only limited to 6000 sprites and 6000 frames in my old program know I am limited to 60000 sprites with dark gdk and a very large int about 4.3 billion frames for how many frames that can be declared.

this is the last version with 6000 frames and 6000 sprites. No saving yet.
https://forumfiles.thegamecreators.com/download/2368059

Developer of Space Chips, pianobasic, zipzapzoom, and vet pinball apps. Developed the tiled map engine seen on the showcase. Veteran for the military.
baxslash
Valued Member
Bronze Codemaster
17
Years of Service
User Offline
Joined: 26th Dec 2006
Location: Duffield
Posted: 5th Jul 2012 13:36
Did you start a WIP thread yet 3d? I'd like to follow your progress...


this.mess = abs(sin(times#))
3d point in space
14
Years of Service
User Offline
Joined: 30th Jun 2009
Location: Idaho
Posted: 14th Jul 2012 02:12 Edited at: 14th Jul 2012 08:10
if someone wants to help with the parser this is the xml file that will be produced by my program.
mostly I need a tier 1 parser. I can do the c++ parser.




let me explain the format if you are confused the encoding data for the file is grouped in 0 separated commas there are as many 0's as frames of the animation. If this format looks familiar look at tiled file format I used something simular.

Developer of Space Chips, pianobasic, zipzapzoom, and vet pinball apps. Developed the tiled map engine seen on the showcase. Veteran for the military.
baxslash
Valued Member
Bronze Codemaster
17
Years of Service
User Offline
Joined: 26th Dec 2006
Location: Duffield
Posted: 14th Jul 2012 11:19
Would you mind making your own thread? I've hinted quite a few times now...


this.mess = abs(sin(times#))
Cliff Mellangard 3DEGS
Developer
18
Years of Service
User Offline
Joined: 20th Feb 2006
Location: Sweden
Posted: 14th Jul 2012 12:59
Quote: "if someone wants to help with the parser "

3d point in space you are hijacking bax thread

Be carefull as alot of people are not as friendly as bax when they feel there thread are getting hijacked.

Create your own thread please
FakeBlood
21
Years of Service
User Offline
Joined: 18th Nov 2002
Location: Alabama, United States
Posted: 20th Jul 2012 18:52
Wow baxslash, this is really awesome. I would definitely use this!
baxslash
Valued Member
Bronze Codemaster
17
Years of Service
User Offline
Joined: 26th Dec 2006
Location: Duffield
Posted: 20th Jul 2012 20:31
Thanks, I want to finish this off in my own time as my TGC work doesn't leave me any room for this at the moment


this.mess = abs(sin(times#))
7RS
11
Years of Service
User Offline
Joined: 10th May 2012
Location:
Posted: 7th Sep 2012 16:28
So Bax no way to see this project finished and working ? we was thinking to use this tool for some new projects.
baxslash
Valued Member
Bronze Codemaster
17
Years of Service
User Offline
Joined: 26th Dec 2006
Location: Duffield
Posted: 7th Sep 2012 19:01
Not in the immediate future. I am being kept far too busy by TGC at the moment!

I really want to get it working for my next TGC project as it could be really useful but I have a feeling I'll probably end up using Spriter as it's closer to being finished... perhaps I could share the source code and someone else could use the benefit of my experiences in making this to the state it's currently in?


this.mess = abs(sin(times#))
7RS
11
Years of Service
User Offline
Joined: 10th May 2012
Location:
Posted: 7th Sep 2012 19:33
Bad news !!! Your project was a good thing, maybe yes, someone could be interested to continue what you made.

About spriter i haven't found any news to know when it will be released and also at the end a parser to read their format will always be necessary because i doubt they will support AGK.
baxslash
Valued Member
Bronze Codemaster
17
Years of Service
User Offline
Joined: 26th Dec 2006
Location: Duffield
Posted: 7th Sep 2012 20:31
Whichever I end up using on my next project you can be sure I'll share my code for getting it to work...


this.mess = abs(sin(times#))
bjadams
AGK Backer
16
Years of Service
User Offline
Joined: 29th Mar 2008
Location:
Posted: 7th Sep 2012 23:46
my next project will be html5 based and since Spriter is going to support this as on of its main plugins i will have to go with Spriter. Also most of the artists i know want to work with Spriter.

I asked the Spriter guys if they would be interested to support AppGameKit, maybe TGC can work with them to put in Spriter specific commands (like they put in box2d commands) in one of the next versions. It would make life easier for everyone, and after all AppGameKit started as a 2d toolset and would be a perfect fit with Spriter.
3d point in space
14
Years of Service
User Offline
Joined: 30th Jun 2009
Location: Idaho
Posted: 9th Sep 2012 03:04 Edited at: 9th Sep 2012 03:52
i am finding it hard to put box 2d in my sprite engine I keep on getting error after error on creating new objects. I wish it was a-lot easier then what it is. Hard to create a gui based box2D specific sprite engine with box2D, and plus I am currently going to college you guys probably. I would also need help with box 2D its really not that easy to work with. Spriter should also be able to import TMX tiled files it is really not that hard to implement. I hope Autodesk makes a decession on weather or not they will make a sprite engine simular to spriters but a little more complex. I have tried to get more information about this but, there seems to be not very much information. It might have been a rumor that I saw on the internet that was false information.

Developer of Space Chips, pianobasic, zipzapzoom, and vet pinball apps. Developed the tiled map engine seen on the showcase. Veteran for the military.
baxslash
Valued Member
Bronze Codemaster
17
Years of Service
User Offline
Joined: 26th Dec 2006
Location: Duffield
Posted: 1st Oct 2012 22:22
I started checking out the new file format for Spriter and frankly it isn't very sensible or easy to understand. The order and amount of data it will eventually cover might well make for some impressive stuff but it's overkill for the game I just started.

What that amounts to is that the nearly working version of this tool is now being worked on to get something I can use in an actual app. I figure it will be quicker and more useful in the short term. I will make a version of this available here but there's a chance TGC might end up selling a more feature rich version later. For now I will certainly publish the beta version I use for the game I'm on and it will have to be relatively stable for my own purposes.

Watch this space if you're after a basic / free tool like this. Now back to it!


this.mess = abs(sin(times#))
bjadams
AGK Backer
16
Years of Service
User Offline
Joined: 29th Mar 2008
Location:
Posted: 2nd Oct 2012 00:02
I contacted the Spriter guy, and for now there are no plans to work with TGC and have embedded Spriter commands in AGK.

What a pity

As a 2D tool, TGC should have eaten up this opportunity and gain some marketing from this.
baxslash
Valued Member
Bronze Codemaster
17
Years of Service
User Offline
Joined: 26th Dec 2006
Location: Duffield
Posted: 2nd Oct 2012 00:16
Quote: "I contacted the Spriter guy, and for now there are no plans to work with TGC and have embedded Spriter commands in AGK."

I contacted him too but he hasn't got back yet. It's one of the reasons I'm working on this...

Anyway, attached is a small example of a working animation project using CW. Here's the code used to run the animation. Other than this you just need to include the CW agc file in your project:


The commands are incomplete at the moment as I need some position / angle / flip code putting in but finally I can export and import an animation!! Once I've added the rest of the basic command set loading exported animations is also working I'll upload a usable version with the sample code. Part of the command set I want in is tweening between animations so that the character flows between animations (like when he runs then starts walking for example) rather than just flicking from one animation to the next. This works really well in Enhanced Animations and is a must for CW in my opinion!


this.mess = abs(sin(times#))

Attachments

Login to view attachments
JimHawkins
14
Years of Service
User Offline
Joined: 26th Jul 2009
Location: Hull - UK
Posted: 2nd Oct 2012 09:20
That animates beautifully. But where is cwinclude.agc? - it's not in the zip.

How is the timing achieved? Is timer-based or dependent on the sync rate?

-- Jim DO IT FASTER, EASIER AND BETTER WITH AppGameKit FOR PASCAL
baxslash
Valued Member
Bronze Codemaster
17
Years of Service
User Offline
Joined: 26th Dec 2006
Location: Duffield
Posted: 2nd Oct 2012 10:30
I'll post the include file when the command set is complete. The timing is currently independent of the sync rate but I would like to add an option for timer based movement. It's just a case of changing the current incremental value to the value returned from getFrameTime... Literally a one line change


this.mess = abs(sin(times#))
baxslash
Valued Member
Bronze Codemaster
17
Years of Service
User Offline
Joined: 26th Dec 2006
Location: Duffield
Posted: 2nd Oct 2012 16:40
I have some new commands working:
cw_setCharacterPosition(charID,x#,y#)
cw_setCharacterAngle(charID,x#,y#)
cw_setCharacterFlip(charID,flipH,flipV)

Next I'll be making transitions between animations.

I tried running a number of characters at once and due to the number of tweening calcs going on I can't run more than about 7 or 8 characters without going below 60fps. That's fine for my current game as it only need about three or four characters at a time (max) but I'd have to create spritesheets or use a positioning system without tweening for any games that need more than that.

I did come up with a slightly better bit of code for calculating distances. I was using sqrt() before but this function is twice as fast. I ran 100,000 iterations of sqrt and my version to test for speed:



this.mess = abs(sin(times#))
baxslash
Valued Member
Bronze Codemaster
17
Years of Service
User Offline
Joined: 26th Dec 2006
Location: Duffield
Posted: 3rd Oct 2012 16:00 Edited at: 3rd Oct 2012 16:01
Update:
Attached is a sample of the animation code with tweening between animations.

Use the arrow keys to move left/right and rotate (up/down).

There is a small cumulative error if you flip backward / forward a lot which I still have to sort out but it gives you the idea

The editor is working much better now too loading and exporting animations properly at last.

Nearly ready for general consumption!

Edit: Excuse my second rate art and animation skills...


this.mess = abs(sin(times#))

Attachments

Login to view attachments
3d point in space
14
Years of Service
User Offline
Joined: 30th Jun 2009
Location: Idaho
Posted: 3rd Oct 2012 21:13 Edited at: 3rd Oct 2012 21:32
I am in graduate school so I have had little time to spend on the engine I did backslash, but if you like I can show you what I have done. Maybe someone can fix the program that I have currently. I am so busy right know its not funny. Just too let every one know I have put my current engine out for free so you can use it. If you download the current version it has a great feature of importing TMX(tiled files) I did get this part to work pretty good the user just needs to save the tiled file to the right format: which is base 64 code. I was trying to get box 2d on it but I need help with that too. I wish that I could help you in your program I think I have pretty good ideas in my engine so far.

That guy that is making spritter didn't want to talk to me either he is a little stuck up if you know what I mean. I was trying to tell him he needed to have tiled file import in his code. I guess he ignored the comment.

The biggest problem I have with box2d is that it is hard too set up in my huge program. I have to look at box twod more before I continue. There is a lot of commands that seem to be hard to use in box2d as well and I got a little fustrated so I took a break to concentrate on homework.

Well back to writting paper yuck. APA rules suck to high heaven. If you want I can show you where I am stuck and maybe it might help in the development.

Developer of Space Chips, pianobasic, zipzapzoom, and vet pinball apps. Developed the tiled map engine seen on the showcase. Veteran for the military.
baxslash
Valued Member
Bronze Codemaster
17
Years of Service
User Offline
Joined: 26th Dec 2006
Location: Duffield
Posted: 3rd Oct 2012 21:49
3d point in space, sounds like you are very busy. I'd love to help with any specific problems you are having. Just post them on the AppGameKit forum and I'll help as and when I can. Did you like my demo?


this.mess = abs(sin(times#))
baxslash
Valued Member
Bronze Codemaster
17
Years of Service
User Offline
Joined: 26th Dec 2006
Location: Duffield
Posted: 3rd Oct 2012 22:34 Edited at: 3rd Oct 2012 22:42
I just had a little fun and added some test code for creating ragdolls from characters. Attached is the full source code for the test project. Some of the include code is temporary and flipping characters vertically doesn't work yet but you can at least see the kind of code that needs to be included and more importantly how it works.

Have fun throwing the zombie around!

Edit: Oh, you can try adding multiple characters if you like but it might not work, I haven't tested it in a while...


this.mess = abs(sin(times#))

Attachments

Login to view attachments
bjadams
AGK Backer
16
Years of Service
User Offline
Joined: 29th Mar 2008
Location:
Posted: 3rd Oct 2012 23:37
Tiled is for building levels.
Spriter is for animating characters.

I don't see the connection why Spriter should import Tiled levels!
3d point in space
14
Years of Service
User Offline
Joined: 30th Jun 2009
Location: Idaho
Posted: 3rd Oct 2012 23:44 Edited at: 4th Oct 2012 00:08
It is dark gdk question actually and not in the scope of AGK. So I don't know if you could help me with the problem baxslash. Not saying you could just saying it’s not agk.

I think that Spriter is incomplete without tiled. Just for the simple fact that Tiled is currently used more then Spriter for developing apps. I think it would be nice if he included a way to import Tiled maps just so you can do things that may be harder to do with out an import. For instance what if you want an enemy to move around in a tiled based map it would be almost imposible in Spriter currently.

I think he should consider it because tiled is a very popular program. I am currently trying to get help from techlord because he has used box2d before. I wrote a separate program that uses box 2d, but to include it in my engine is harder then I thought it would be. Baxslash you said you would help me if I needed help, well there is this paper that I need too do that is APA style. Just kidding, but if you have time can you write my papers its only has words that are linked up to form a thesis not like it is a app or anything. Come on if you can write an app you should surely be able to help me write a paper, couff, couff.

Developer of Space Chips, pianobasic, zipzapzoom, and vet pinball apps. Developed the tiled map engine seen on the showcase. Veteran for the military.
bjadams
AGK Backer
16
Years of Service
User Offline
Joined: 29th Mar 2008
Location:
Posted: 4th Oct 2012 00:38
Spriter is an ANIMATION tool!
It's not meant to be a tool to build a whole game with!!!

You need to use other toolsets, liked Tiled to build the levels, AppGameKit as an engine to glue everything together, etc...

It's like wanting Tiled to have an audio editor included so that you can edit your game sfx from within Tiled!

This is why many people use Unity, because it has all the basic tools incorporated
baxslash
Valued Member
Bronze Codemaster
17
Years of Service
User Offline
Joined: 26th Dec 2006
Location: Duffield
Posted: 4th Oct 2012 00:42
Wow, I'm really pleased you all like the demo...


this.mess = abs(sin(times#))
3d point in space
14
Years of Service
User Offline
Joined: 30th Jun 2009
Location: Idaho
Posted: 4th Oct 2012 01:21
Yea, I did like it was something new. You have great demos.

Developer of Space Chips, pianobasic, zipzapzoom, and vet pinball apps. Developed the tiled map engine seen on the showcase. Veteran for the military.
baxslash
Valued Member
Bronze Codemaster
17
Years of Service
User Offline
Joined: 26th Dec 2006
Location: Duffield
Posted: 4th Oct 2012 12:06 Edited at: 4th Oct 2012 15:21
Here's a video of the demo in action. I'm now improving the editor a little so you don't have to load the animations, you will just be able to flick between any saved animations for the character.



...and here's the animation selection in action already.



Next I'm adding limb naming, essential if you want to be able to change the limb image (IE. give your character a different head).

...and here it is added.




this.mess = abs(sin(times#))

Attachments

Login to view attachments
baxslash
Valued Member
Bronze Codemaster
17
Years of Service
User Offline
Joined: 26th Dec 2006
Location: Duffield
Posted: 4th Oct 2012 18:49 Edited at: 4th Oct 2012 19:09
Now I have multiple characters working and can delete / turn any character into a ragdoll:


Here's a quick video so you can see them all animating indipendently:


Edit: it does run at 60fps here but fraps slows it down.


this.mess = abs(sin(times#))

Attachments

Login to view attachments
7RS
11
Years of Service
User Offline
Joined: 10th May 2012
Location:
Posted: 4th Oct 2012 20:41
Hi baxslash, so you are again working on your sprite editor ? i'm glad to know and to use it in a new project as soon as your functions are ready. Do you think to add support for T2 ? we only use native also because we have our own map editor who make us able to put everything inside including small piece of code and all work in cpp. Your spriter version would be a good added value to our games to save a lot of gfx.

I have tested your demo, always nice job.
baxslash
Valued Member
Bronze Codemaster
17
Years of Service
User Offline
Joined: 26th Dec 2006
Location: Duffield
Posted: 4th Oct 2012 21:32
I wasn't planning on making any tier 2 commands but it shouldn't be too hard to translate. I have very little experience in C++ let alone any of the other native languages. Luckily we have a very helpful community and I'm sure someone might be willing to share a translation...


this.mess = abs(sin(times#))
7RS
11
Years of Service
User Offline
Joined: 10th May 2012
Location:
Posted: 5th Oct 2012 13:30
I can help you to make the class.
baxslash
Valued Member
Bronze Codemaster
17
Years of Service
User Offline
Joined: 26th Dec 2006
Location: Duffield
Posted: 5th Oct 2012 13:39 Edited at: 5th Oct 2012 13:39
Quote: "I can help you to make the class."

That would be very helpful, thanks a lot once the code is released you can take a look and see how much work is involved?

I'm very close to releasing the current version. I'm just killing the cumulative error bug (had a flash of inspiration regarding that while feeding the baby at about 3am) and adding single frame export for spritesheet creation. It will be basic and not very editable at the moment but should be relatively usable. It will export individual sprite images for animating at 30fps, this will be editable later along with having a common origin for all spritesheet images.

Here's a taster of what the app currently calculates from each animation. The fairly clear area around the character is the minimum size of the image that can encapsulate the full animation. The red area is a power of two size image that can encapsulate the full animation.



this.mess = abs(sin(times#))

Attachments

Login to view attachments
baxslash
Valued Member
Bronze Codemaster
17
Years of Service
User Offline
Joined: 26th Dec 2006
Location: Duffield
Posted: 5th Oct 2012 17:23 Edited at: 5th Oct 2012 17:24
I've now got the frame export working, here's an example that I've turned into a spritesheet using my image joining tool as a test. There's a slight issue with alphas overlapping (as you can probably see) that I need to take a look at but for now this is good enough for me:


Also here's a video of the process:



this.mess = abs(sin(times#))

Attachments

Login to view attachments
Zwarteziel
13
Years of Service
User Offline
Joined: 22nd Jan 2011
Location: Netherlands
Posted: 5th Oct 2012 18:18
Hi baxslash,

while I'm not skilled enough to actually contribute to your product in a meaningful way, I just wanted to say: thank you for your brilliant work and dedication! This editor, along with the plethora of other programs and snippets you've posted are very helpful and welcome. I owe you a beer. Or... several, really!
baxslash
Valued Member
Bronze Codemaster
17
Years of Service
User Offline
Joined: 26th Dec 2006
Location: Duffield
Posted: 5th Oct 2012 18:21
I'm a great fan of dutch beer

I lived in Eindhoven for a couple of years when I was a boy and I've been back a couple of times since.

Glad to help. Just one bug to fix and I think I'll pop a version on the first post, maybe later today but more likely in the morning...


this.mess = abs(sin(times#))
baxslash
Valued Member
Bronze Codemaster
17
Years of Service
User Offline
Joined: 26th Dec 2006
Location: Duffield
Posted: 5th Oct 2012 19:39 Edited at: 5th Oct 2012 19:39
Update
I think I've got this to a stage I'm happy with for now.

Let me know what you think and if you have any problems!

The download has the "Character Workshop" and the zombie demo I've been testing with:
Character Workshop Beta V1.0.1


this.mess = abs(sin(times#))

Attachments

Login to view attachments
JLMoondog
Moderator
15
Years of Service
User Offline
Joined: 18th Jan 2009
Location: Paradox
Posted: 5th Oct 2012 19:53
Downloading! I'm going to have fun with this.
leo877
16
Years of Service
User Offline
Joined: 6th Mar 2008
Location: san antonio, tx
Posted: 5th Oct 2012 19:54
baxslash

i gonna try you beta out but i just want to comment on your zombie sprite sheet...looks like those wooden dolls that are connect to strings you move with sticks, but this zombies don't have the stick or strings attach to him...


baxslash
Valued Member
Bronze Codemaster
17
Years of Service
User Offline
Joined: 26th Dec 2006
Location: Duffield
Posted: 5th Oct 2012 20:37
Yes Leo, that's the alpha issue I was talking about.


this.mess = abs(sin(times#))

Login to post a reply

Server time is: 2024-05-03 02:31:25
Your offset time is: 2024-05-03 02:31:25