25. Cómo capturar imágenes para hacer un remake
El hecho de crear un "remake" de un juego ya existente, en vez de diseñar un nuevo juego desde cero es interesante cuando uno está aprendiendo a programar, por varios motivos:
- No hay que "diseñar una lógica de juego" desde cero, sino imitar algo ya existente.
- Precisamente, al tener algo que imitar, existe una serie de retos a superar: igualar cada una de las funcionalidades del juego original.
- Existe algo con lo que comparar: el juego estará más "terminado" cuanto más "se acerque" al juego original (lo que no impide que añadamos alguna posibilidadNo hay que "diseñar una lógica de juego" desde cero, sino imitar algo ya existente.
- No hay que "diseñar pantallas" ni "diseñar personajes", sino que se pueden "capturar" las imágenes del juego original, y centrarse en las tareas que son estrictamente de programación.
Por eso, 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, suavizar contornos, etc.
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 un juego de Amstrad CPC (con una resolución de 320x200 puntos), que convertiremos a modo gráfico 800x600 puntos, de modo que se aproveche más la resolución de un ordenador actual, pero que permita usarlo en un ordenador menos potente, como un "netbook", que suelen tener una resolución de 1024x600 puntos.
Los pasos que daremos serán:
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 el recopilatorio 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 tamaño 384x288 (320x200 + borde) si está a tamaño normal (IMAGE_DOUBLE=0 en CPCE.INI)
3.- Redimensionar hasta la resolución del equipo actual.
El tamaño obtenido (640x400 o, habitualmente, 320x200) es más pequeño que lo que queríamos para nuestro juego de destino, así que habrá que hacer la imagen más grande.
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.
Vamos a ver cómo hacerlo con 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", lo que puede ser una gran ganancia de tiempo si tenemos muchas imágenes que manipular.
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 arrastrar" 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.
Si guardamos esta imagen (con otro nombre, para no perder la original), ya tendríamos una imagen de nuestro personaje (o un enemigo, o un elemento del fondo...), a un tamaño adecuado para nuestro juego, que podríamos cargar (y mostrar) desde nuestro programa.
Ejercicio propuesto: Captura y recorta imágenes de un juego (de plataformas o de complejidad similar) que quieras imitar, para incluirlas en tu juego.