14/5/09

Se transparente, amigo.

Esta entrada del blog va dedicada a uno de los errores más habituales que se producen cuando se están desarrollando los gráficos para nuevos objetos de Simutrans. Es el conocido como "Virus Barrotes" de Simutrans.

Leer más...

¿Y de donde viene este "problema"? bien, Simutrans tiene una forma especial de tratar las transparencias. El motor gráfico del juego soporta imágenes de 24 bits (8 bits por canal) mientras que el uso de transparencias supone habilitar imágenes de 32 bits (8 bits por canal más 8 bits para transparencia)

En este punto, por razones que desconozco aunque intuyo que sería para optimizar el motor gráfico y porque probablemente a Hajo y cia no les convencía mucho el soporte para transparencias de las librerías gráficas del momento, se optó por usar un ingenioso sistema. Este consiste en considerar un color dentro del rango de los permitidos como color transparente. Este valor tan conocido por muchos es el famosos E7FFFF, que aparece en los fondos de todos los objetos.

Cada vez que el juego detecta dicho color, simplemente no lo procesa ni lo representa en pantalla, actuando así como una falsa transparencia. Pero a veces realizamos acciones con el programa de dibujo, que hacen que se active el canal alfa o transparencia sin que nos demos cuenta de ello, y cuando empaquetamos el objeto y lo probamos nos encontramos con esto, conocido como virus barrotes de Simutrans:


Existen varias formas de solucionar este problema. La primera de ellas es seleccionar el fondo con la herramienta Varita, que agrupa como selección todas las zonas de imagen con el mismo color que hemos marcado con el puntero del ratón. Seguidamente invertimos la selección, suele ser pulsando CTRL+i y cortamos el contenido (CTRL+x). A continuación creamos una imagen del mismo tamaño con el fondo blanco y pegamos el contenido que hemos cortado anteriormente (CTRL+x). Puede que tengaís que centrarlo un poco.

Si aún así lo probaís y siguen saliendo los barrotes, la siguente solución es algo más complicada. Al crear la nueva imagen donde pondremos el contenido cortado de la imagen original hay que bloquear manualmente el canal alfa. El proceso para llevar a cabo esto depende del programa de dibujo que esteís usando. El Microsoft Paint por ejemplo, no tiene esta opción, así que en ese caso tendreís que usar algo más avanzado como GIMP, Paint Shop Pro, Photoshop o Paint.Net.

En GIMP, al igual que probablemente que otros programas que os dejen manejar capas, la forma de bloquear el canal alfa es muy sencilla. Una vez creada la nueva imagen que será la receptora del contenido original, pulsamos CTRL+L para que muestre el menu de Capas. Como es una imagen nueva, seleccionamos la única capa existente, y marcamos la casilla indicada en la imagen.


Ahora podemos seguir con el proceso, pegando el contenido de la imagen original en la nueva, y finalmente guardamos el fichero.

La primera solución suele ser suficiente, pero a veces las imágenes pueden dar más guerra de lo normal. Pues esto es todo por hoy, amigos..

No hay comentarios: