10 noviembre, 2015

Sobre los gráficos 2D que uso en mi engine (y de porqué cada vez que publico una foto parece un juego diferente)

Mientras dura el desarrollo de Living paper source debo ir probando sus capacidades y correcto funcionamiento, para ello cargo una serie de gráficos, items y scripts y creo con ello mapas y actores, lo que viene a ser un juego de prueba. Al principio todos los gráficos que usaba venían de internet y en mayor parte de recursos gratuítos para plataformas como rpgmaker o alter engine, pero con el tiempo me cansé de que los gráficos se parecieran tanto a todo lo hecho sobre estas plataformas.

Por otro lado las primeras versiones del engine eran muy limitadas y estaban muy mal optimizadas, por lo que los gráficos eran menos y más pequeños, mientras el proyecto crece necesitaba gráficos más grandes, podía por ejemplo juntar cuatro o cinco árboles en un mismo bitmap, darle solidez y usarlo para abarcar más espacio, por ejemplo.


Y de tanto editar y retocar cosas un día decido probar con actores más grandes (hasta entonces eran de 32x32), en concreto más altos. Encontré en internet muchos modelos, pero lo cierto es que ninguno se parecía a lo que buscaba, todos eran bastante clónicos así que decidí hacerlos a mano. Fue un trabajo mucho más pesado de lo que pensaba, aún con modelos de 64x128 crear animaciones creíbles es más que un arte. Diseñé "herobase" (a continuación) y a partir de él varios avatares clónicos.

Éstos avatares funcionan muy bien con capas y por aquel entonces el engine disponía por primera vez de un sistema de paperdoll muy sencillo. De todas maneras aún debería crear un avatar femenino, versiones infantiles etc con todas sus animaciones, y viendo cuanto me había costado crear un actor decidí centrarme en hacer escenografía a mano. Al principio reutilizando muchas imágenes libres, combinándolas y editándolas pero poco a poco metiendo más de mi mano acabé creando las últimas cabañas de chapa básicamente desde cero.





A esta altura había comenzado ya con la que hasta ahora es la última ramificación del proyecto, la versión tw hires que dispone de más resolución y admite pantalla completa, es la más rápida dibujando y por eso cada vez incluía sprites más grandes, lo cual incide positivamente en la apariencia del juego. Cada vez tenía algo más parecido a Fallout2 o Comandos y menos a zelda. Tenía decidido que no quiero hacer gráficos típicos medievaloides en parte porque mi engine está muy relaccionado con la lucha a distancia lo que lo hace más dado a un juego de "pistolas" que a uno de "espadas". Por otro lado no puedo diseñar una ciudad con tráfico complejo, ni un sistema de conducción de vehiculos decente, lo que me llevó a la idea del "postapocalipsis". Pensé en los zombies, y no he dejado la idea de lado, pero al fin y al cabo por ahora este juego no es más que una simulación para testear por lo que no sigo una línea clara.

Pensando en lo que podría hacer con mi servidor opensim me pasó este proyecto por la cabeza y de alguna manera los conceptos colisionaron. Puesto que opensim es una plataforma de realidad virtual podría simular escenario con fondo azul o magenta para tomar fotografías y extraer las imágenes usando la técnica del croma key. Hice un pequeño script para animar al personaje, otro para rotarlo 90 grados cuando yo decido y uno más para fijar la cámara del visor en la misma posición siempre. De esta forma es muy sencillo crear un personaje, primero hago cada pose de una animación en stopmotion, usando Qavimator, un programa muy sencillo de usar. Luego edito la apariencia de mi propio avatar en opensim para ajustarla al personaje deseado, por último me coloco en la plataforma, la cámara se ajusta y puedo empezar a tomar fotografías, un click rota el avatar. Para una animación de movimiento necesito 16 imágenes, pero usando este método la mayor parte del trabajo se reduce a separar el fondo del personaje y ajustar su tamaño.










Y con esto si que me sorprendí yo mismo, el resultado es muy bueno y el trabajo requerido había casi desaparecido. Durante un tiempo esto me permitió crear más escenografía a mano, pero desde hace poco he comenzado con el siguiente paso que consiste en renderizar edificios, árboles, murallas, rocas etc para igualar el acabado de los actores con los de los escenarios. Al principio tenía el problema de la perspectiva, mi engine usa top-down y cualquier cosa con punto de fuga queda extraña, pero descubrí una opción para abrir o cerrar el campo de visión en opensim, y cerrado del todo queda una perspectiva frontal perfecta. También he explotado más la idea de usar sprites grandes en el escenario, puesto que queda mejor si renderizo todo junto, con el mismo foco de luz.
Aquí algunos ejemplos de los gráficos que estoy preparando.







Y esto no se ha acabado, pero por fin creo que tengo una herramienta con la que puedo hacer animaciones desde diferentes puntos de vista con una perspectiva correcta sin dejarme la piel en ello y puedo dedicar más tiempo al código. Sobre si esto se terminará transformando en un juego, estaba pensado que no, pero cada vez dispongo de más material satisfactorio y la verdad es que la idea me gusta, pero solo lo haré si consigo implementar ciertas ideas que resultarían en un gameplay que tienda más al puzzle y el rol narrativo.
Publicar un comentario