0
\$\begingroup\$

What's the best way to make a sprite sheet (texture atlas) from a video?

In my case, I have videos of animated character expressions (e.g., smiling, frowning, sad, excited), which I intend to use as frames on quads in my app. I have video sized for retina 2x of a small character, so it's approx 150px square for a 75px character, with alpha/transparency. My animator can output any common format. I'll have 50-100 frames. I do not need a power-of-two size output, any rectangle is ok. I'm working on MacOS.

Is the best workflow still: video -> folder with PNGs -> TexturePacker

Or is there any smarter way to do this? I'll be having a lot of iterations, so I'd like to make it as easy and fast as possible.

There are two older questions from 2010 and 2012 about making sprite sheets.

\$\endgroup\$
  • \$\begingroup\$ As a general guideline, workflow operations should be doable with a single command, like "make sprites" (run by a makefile) "ant sprites" or part of an Xcode or Visual Studio target. If you're doing more than a click or two to build your project, there's much opportunity for error. \$\endgroup\$ – david van brink Aug 26 '15 at 16:35
  • \$\begingroup\$ Do you know of a way that we can include a movie file in our Xcode project, have it processed into a sprite sheet, in preparation for compiling -- i.e., so we don't process the video by the actual consumer's running app? \$\endgroup\$ – some ideas Aug 26 '15 at 18:39
  • 1
    \$\begingroup\$ Ideally, texture packer has a command-line invocation that you can run in a script phase... Can also look for a command-line tool called "qt_proofsheet" which can decompose a movie to a single-sheet of frames. (Disclosure -- I wrote it. Works last time I tried it...) omino.com/sw/qt_tools \$\endgroup\$ – david van brink Aug 26 '15 at 18:51
  • \$\begingroup\$ qt_proofsheet looks perfect. At a quick glance, I can set --framesize=150 --framesperrow=10 for my needs? and it would generate 1500 px wide, and however high it needs for all the frames within --duration=end-time ? ... QUESTION: Can it handle alpha/transparency? \$\endgroup\$ – some ideas Aug 26 '15 at 19:46
  • \$\begingroup\$ I confess: I don't know what it does with alpha, never tried it. I think there's also something to do with borders/margins to set to 0. \$\endgroup\$ – david van brink Aug 26 '15 at 21:10

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.