gSkinner - Home

Zoë: Export SWF Animation as EaselJS SpriteSheets

Posted on February 8, 2011 by Grant Skinner

Alongside the release of EaselJS v0.3 we’re also releasing the first version of Zoë, a free Adobe AIR application for exporting SWF animations as sprite sheets (single images containing a grid of animation cells), including frame data for use with EaselJS.

This means you can use Flash Pro to lay out your animations then very easily prep them for use with EaselJS and the HTML5 canvas element.

We used an early version of Zoë to prep all of the animations for the Pirates Love Daisies game we released a few weeks ago, which let our illustration team work with a tool they felt comfortable with, using tweens, skeleton constraints, and graphic symbols.

Here’s a quick feature overview:

  • Exports a single sprite sheet image, or individual frames
  • Reads frame labels in the swf to generate frame data.
  • Writes frame data as JSON or EaselJS files
  • Calculates the frame dimensions automatically based on the animation content
  • Saves profiles to make it easy to re-export when art changes



And a screenshot:

You can grab Zoë from easeljs.com/zoe.html. It’s currently not open source, but we’ll likely release the source once we have a chance to fix any major issues that arise with the public release and clean up the code.

Follow @gskinner on Twitter for more news and views on interactive media.
26 Comments

[...] This post was mentioned on Twitter by Grant Skinner, Manfred Weber, Kay Siegert, Stephane Roucheray, Geoff Sowrey and others. Geoff Sowrey said: RT @gskinner: First release of Zoë, a free tool for exporting SWF animations for use with EaselJS. http://is.gd/kXOwCR #EaselJS #HTML5 [...]

Posted by: Tweets that mention gskin… on Feb 8, 2011 10:56am URL: http://topsy.com/gskinner.com/blog/archives/2…

So... when are you gonna release your own HTML5 IDE? j/k, but this is awesome stuff and a great help to the community to bridge the divide. Keep it up Grant!

Posted by: JTtheGeek on Feb 8, 2011 1:02pm URL: http://www.dedoose.com

Clicking 'Export->' doesn't seem to do anything.

Posted by: jomifo on Feb 8, 2011 1:33pm

jomifo - this has been fixed in the latest build. It was a combination of a problem with the sample file and the app. Sorry for these teething problems. That's the risk we ran releasing an app that had been used internally in a specific way without adequate testing.

Posted by: Grant Skinner on Feb 8, 2011 2:15pm

Grant- latest build worked beautifully. Thanks for this tool. Great timesaver.

Posted by: jomifo on Feb 8, 2011 2:35pm

man, this is a great contribution to the community.

thanks a lot!

Posted by: mga on Feb 8, 2011 11:05pm URL: http://www.mauriciogiraldo.com/blog

Hi, Grant.

Inspiring work.

I found some minor bug regarding special chars. When clicked export, on the summary window, my directory special chars are being truncated. Also, on the output and input fields, the chars are being converted to HTML entities.

Thanks, G.
CaioToOn!

Posted by: CaioToOn! on Feb 9, 2011 3:53am

Cool, that is. My only concern is that if each frame is exported as a separate bitmap, it would lead to rather a lot of Kb to download for an Easel animation. I guess if you use a separate BitmapSequence for each character in your game or animation that would help a bit, as long as the animations were not that complex.

Would it be possible to export the individual symbols in the Flash animation as separate bitmaps which then get composited & animated dynamically in EaselJS? Then the JSON format would need to specify the positions of these sprites at each frame.

Posted by: bigfish on Feb 10, 2011 7:29am URL: http://dafishinsea.com

Will this work with actionscript(instead of timeline based) animations?

Posted by: Shaun on Feb 10, 2011 7:54am URL: http://forgeworldwide.com

@Shaun - In theory Zoe should work with Actionscript animations, but currently it uses the root timeline to gauge the length of the animation, so your main timeline would need to match the length you want to export.

Posted by: Wes on Feb 10, 2011 3:56pm URL: http://gskinner.com

@ bigfish "My only concern is that if each frame is exported as a separate bitmap"

I'm not sure if EaselJS supports sprite sheets, but most of the time game designers use TexturePacker or Zwoptex to create a sprite sheet from the individual bitmaps. This is how it works for iOS games I'm developping using Cocos2D.

Posted by: stahlmanDesign on Feb 16, 2011 8:45am URL: http://www.stahlmandesign.com

[...] Daisies [2], and exports frame-based flash animations in a format, easy to utilize in Easel.js[1] http://gskinner.com/blog/archive...[2] http://pirateslovedaisies.com/Insert a dynamic date hereView All 0 CommentsCannot add comment at [...]

Posted by: Can I generate a continuo… on Feb 16, 2011 2:30pm URL: http://www.quora.com/Can-I-generate-a-continu…

I did an application with more features than this and more user frendly. Supports actionscript animations and empty main timelines.

Maybe you can use the code of my application to improve this one

Download installer or source code from here:

http://fermmm.wordpress.com/2011/02/04/swf-spritesheet-creator/

Posted by: fermmm on Feb 16, 2011 4:46pm

[...] この方法では下図のような画像ファイルが必要になりますが、これはアニメーションのSWFファイルがあれば、天才Grant Skinner作によるAIRアプリケーションのZoëで簡単に作成できます([Zoë: Export SWF Animation as EaselJS SpriteSheets])。 [...]

Posted by: AIR Androidアプリ作… on Feb 19, 2011 10:08pm URL: http://himco.jp/air-for-android/?p=2606

i can't set the quality of png.

Posted by: huangxz on Feb 21, 2011 7:58pm

Do you know if it's possible to dynamically generate Bitmap data in JS ? In which case it may be nice to add methods to BitmapSequence such as addBitmap so that we can create a sequence dynamically, not only from a static image.

Posted by: Alex.G on Feb 24, 2011 8:53am

[...] these. Furthermore there was a nice lineup of tools created by GS, his company and friends. EaslJS, Zoë Sprite sheet exporter and some impressive exporter from Flash to JavaScript. [...]

Posted by: FITC, day one « alo… on Mar 8, 2011 3:07pm URL: http://www.aloft.nl/2011/03/fitc-day-one/

[...] [...]

Posted by: Adobe Releases Flash-to-H… on Mar 9, 2011 6:31am URL: http://www.flashforum.de/forum/html-5/adobe-r…

[...] for faster drawing (see SWFSheet from Bit 101 or Zoë by Grant Skinner to aid creating [...]

Posted by: FITC, day two « alo… on Mar 10, 2011 1:57pm URL: http://www.aloft.nl/2011/03/fitc-day-two/

Hi,

Any idea when you plan on open sourcing your tool? We have some feature specific for our needs we would like to develop.

Here is what we'd like to develop

- FPS in exported data
- Other exported data format (XML, SQL, project specific)

Thanks for creating that great tool.

Posted by: Andre Q on Apr 15, 2011 12:37pm

Love the tool, but would love to edit the tool more: any idea as to when you will be releasing the source? I specifically need to adjust the number of columns on the exported .png sequence.

Appreciated!

Posted by: CP on May 2, 2011 11:20am

i can't set the quality of png.

Posted by: chintan on Jun 27, 2011 10:25pm URL: http://nextworldstudio.blogspot.com/

chintan - PNG32's are lossless (they don't have variable quality)

Posted by: Grant Skinner on Jun 27, 2011 10:38pm URL: http://gskinner.com/blog/

Hi Grant, I'm using Zoe v1.6 and I'm getting an issue with a stutter in my animation. As far as I can see its exporting frame 0 and 1 as the same image although they're different. I'm not using "resuse frames". I've tried exporting the animation using the Flash Professional export and the stuttering isn't there. Zoe has other advantages so it would be great to find a fix or workaround. I can send you the swf for testing if you'd like.

Cheers

Joe

Posted by: Joe Cutting on Dec 22, 2011 5:26am URL: http://www.joecutting.com

just wondering, but when you are finished exporting, how do you use the json file and the spritesheet within your browser?

Posted by: karen on Mar 3, 2012 6:48pm URL: http://noneasofyet

Hi Grant, thank you for Zoe, it's a great tool. I'm using it for an ActionScript project and I was wondering why the exported PNG is always on a 2048x2048 canvas? I might be wrong, but you could improve the portability by taking advantage of the power of 2 concept.

We could optimize the memory usage if we had more image format like 512x512 and 1024x1024.

Thanks!

Posted by: Jean-Bernard on May 4, 2012 5:47pm

Leave a Reply

Your email is never published nor shared.




You may use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">