31 enero 2011

Cómo capturar imágenes para hacer un remake


Vamos a ver los pasos básicos para capturar imágenes de juegos clásicos, de forma que las podamos aplicar a crear un “remake” con un ordenador moderno, respetando la estética del juego original.

Los pasos serán:
  • Lanzar el juego desde un emulador.
  • Capturar las pantallas que nos interesen.
  • Redimensionar hasta la resolución del equipo actual.
  • Extraer los fragmentos que nos interesen.
  • Hacer “transparentes” las imágenes.

Como herramientas gráficas usaremos:
  • XnView para casi todos los pasos, porque permite capturar múltiples imágenes con facilidad, redimensionar varias a la vez, recortar la zona que nos interese...
  • GIMP para añadir transparencia (los otros pasos, que también se pueden dar con GIMP, son más sencillos con XnView, pero este último paso, por el contrario, es más “visual” y potente en GIMP que en XnView).

Lo aplicaremos a un remake de la versión de Manic Miner para Amstrad CPC, que convertiremos a modo gráfico 800x600 puntos.

Vamos allá...

1.- Lanzar el juego desde un emulador.

Para hacer capturas de un juego de Amstrad CPC, el emulador que más me gusta es CPCE, porque captura las imágenes tal como eran en el original, “pixeladas”, mientras que otros emuladores como WinApe, “suavizan” los contornos al exportar las imágenes, lo que supone que pierda algo de estética retro y que sea más difícil conseguir una transparencia perfecta en los contornos.
Los pasos concretos dependen de la distribución que se use. Por ejemplo, en CpcGamesCd se muestra la lista de juegos, y al lanzar uno de ellos (con Intro o con doble clic) se abrirá el emulador y luego el juego; el riesgo puede ser que se lance un emulador que no es el que queremos, pero eso es fácil de solucionar: desde el menú Emulador, escogemos el que nos apetezca emplear.

Si se usa el emulador CPCE directamente, habría que pulsa F7 para abrir una imagen de disco (un fichero con extensión DSK, quizá comprimido en un fichero ZIP). En la mayoría de los casos, el juego se pondrá en marcha automáticamente.

2.- Capturar las pantallas.

Podemos usar herramientas de captura en Windows (XnView o cualquier otra), o bien la propia tecla ImprPant para luego pegar en algún programa de manipulación de imágenes, pero si queremos una imagen más fiable, lo ideal será pedir a nuestro emulador que sea él quien guarde la pantalla. Desde CPCE, esto se consigue pulsando la tecla F12, y se irán creando imágenes con nombres 0001.BMP, 0002.BMP y sucesivos.

Estas imágenes tendrán tamaño 768x576, que corresponden a 640x400 + borde de pantalla, si nuestro CPCE está configurado para trabajar a doble tamaño (si aparece IMAGE_DOUBLE=1 en el fichero CPCE.INI), o bien 384x288 (320x200 + borde) si está a tamaño normal (IMAGE_DOUBLE=0 en CPCE.INI)

3.- Redimensionar hasta la resolución del equipo actual.

Se podría casi usar cualquier programa de manipulación de imágenes, desde alternativas gratuitas como XnView, Paint.net o GIMP hasta aplicaciones profesionales como Photoshop.

Yo usaría XnView, que es gratis, de pequeño tamaño, muy cómodo como visor y para manipulaciones simples, y además permite hacer dichas manipulaciones a muchas imágenes a la vez, “en lote”.

Para redimensionar desde XnView la imagen que estamos viendo, podemos entrar al menú “Imagen” y escoger “Cambiar tamaño” (o usar la tecla rápida Mays+S). Veremos algo como esto:



Podemos elegir el nuevo tamaño en píxeles o en porcentaje. Si partimos de una imagen de 320x200 (o 384x288 incluyendo borde), que queremos redimensionar para usarla en un juego de 800x600, deberíamos usar un 250% como tamaño final. Si el original era de 640x400 (o 768x576 con borde), deberíamos redimensionarlo en un 125%, para obtener una zona de juego de 800x500.

Y si queremos que no se suavicen los bordes, para conservar el estilo retro y para que nos sea más fácil conseguir el efecto de transparencia, deberíamos decirle que el método de redimensionar sea el de “Mayor proximidad”:


Si usamos GIMP, la opción equivalente se llama “Escalar imagen”, dentro del menú “Imagen”, y, al igual que XnView, nos permite indicar el tamaño final en píxeles o en porcentaje, y distintas formas de interpolar la imagen (“inventar” los puntos nuevos que aparezcan), de las cuales nos interesaría la llamada “ninguna”:



4.- Extraer los fragmentos que nos interesen.

Nuevamente, bastaría cualquiera cualquiera los programas mencionados. En XnView bastaria con “pinchar y arrastear” con el ratón sobre la imagen para seleccionar la zona que nos interesa, y luego hacer clic en el botón de Recortar (y guardar los cambios, claro):


Para conseguirlo en GIMP, comenzaríamos por escoger la herramienta de recorte (la que tiene una imagen que recuerda una cuchilla). Después pincharíamos y arrastraríamos con el ratón para seleccionar la zona que queremos conservar, y haríamos doble clic para completar la operación.



5.- Hacer “transparentes” las imágenes.

Este paso depende de la librería gráfica que usemos: en Allegro, que en su versión más extendida utiliza imágenes en formato BMP, las zonas transparentes se indican rellenándolas con un “color clave”, un color especial que luego no se dibujará en pantalla. Por el contrario, en SDL, que permite usar imágenes en formato PNG, es más razonable usar la transparencia propia de este formato.

Crear un PNG con transparencia es más incómodo y menos versátil en XnView que en GIMP: si usamos XnView tendremos que ir al menú “Archivo” y escoger la opción “Guardar como”. Si escogemos el formato PNG, podremos indicar cual de los colores de la paleta queremos que se convierta en transparente:



Esto tiene dos inconvenientes: por una parte, tendríamos que saber cual es el color que “sobra” (nos puede ayudar el menú “Imagen”, en la opción “Modificar mapa de color”, pero si hay varios colores parecidos, puede no ser de gran ayuda). Por otra parte, todo ese color se volvería transparente, y quizá eso no nos interese, sino que queramos que unas zonas sean transparentes y otras no.

Es más cómodo y más potente hacerlo desde GIMP, porque podemos hacer que ciertas zonas sean transparentes y otras no lo sean. Pero los detalles concretos merecen otra entrada, así que quedan pospuestos hasta otro día...