Herramientas para empacar y desempacar sprites

lcd
Voting Day emplea este spritesheet.

Una de las técnicas modernas más comunes en el desarrollo de videojuegos 2D es empacar los sprites en un solo archivo.

Empacar sprites es una excelente técnica para reducir el tamaño de los archivos gráficos (cada archivo incluye sus propios metadatos que sumados aumentan el tamaño del juego), mejorar el desempeño a la hora de la carga (sólo hay que cargar un archivo), y a la hora de emplear la tarjeta gráfica (como en el caso de OpenGL) mejora muchísimo el desempeño, ya que la tarjeta no tiene que cambiar constantemente de textura en memoria, que es una operación costosa, sino que se limita a usar una textura, cambiando las coordenadas de la misma para dibujar.

Para empacar los sprites hace falta tener el archivo gráfico con todos los sprites juntos, y un archivo de texto que describa los sprites que están adentro, junto con las coordenadas que definen a cada uno. Uno de los formatos de texto más populares para el archivo es el formato .plist, o Property List, realizado por Apple, basado en XML y leído por cocos2d.

En teoría podríamos hacer el spritesheet a mano, copiando cada archivo, pegándolo en el archivo grande, y luego creando a mano el archivo de texto con los datos. Pero afortunadamente no hay que hacer eso, ya que existe software que lo hace automáticamente.

screenshot_shoebox3

 

texturepacker

Anteriormente hablé de un empacador de sprites, ShoeBox (para Adobe AIR), el cual es gratuito y parece que tiene lo necesario para trabajar los spritesheets. Digo parece porque el que yo uso es TexturePacker (Windows/Mac), que es comercial y existe desde antes de la aparición del primero. Otro empacador bien conocido (comercial también) es Zwoptex (Mac).

ryu

Por otro lado, hay veces en las que uno puede descargarse un spritesheet sin la información de las coordenadas (ejemplo, si vas a un archivo de sprites como GSArchives.net), o por algún accidente se pierde esa información. En estos casos viene bien tener una aplicación que dado un spritesheet te pueda generar los sprites en archivos separados. En este caso cae muy bien la aplicación Alferd Spritesheet Unpacker (Windows), que es gratuita. Aunque tiene sus defectos de interfaz gráfica, la herramienta hace lo que dice hacer, por lo que a veces salva vidas (en mi caso, lo ha hecho).

Estoy haciendo un tutorial de cocos2d-html5. Debido a la situación del país en los últimos días, el ritmo del tutorial bajó, pero sigo pendiente de escribir y publicar nuevas entregasi.

5 comentarios en «Herramientas para empacar y desempacar sprites»

Responder a S Alvaro MarquinaCancelar respuesta