Mostrando entradas con la etiqueta tilecutter. Mostrar todas las entradas
Mostrando entradas con la etiqueta tilecutter. Mostrar todas las entradas

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..

18/1/09

Tilecutter, la navaja suiza

Tras pasar la etapa de los edificios pequeños (1x1) uno se plantea si es posible crear objetos más grandes. Y es obvio que es así, pero no es tan fácil como parece. Hay que recortar la imagen de una determinada manera para que el juego coloque esos trozos y el edificio se represente de manera adecuada. Esto era un trabajo muy engorroso. Un peñazo. Hasta hace poco no había forma de automatizar esta tarea por eso los edificios antiguos eran todos pequeños. El panorama cambió con la aparición de Tilecutter un programa creado por Timothy que se convirtió en un aunténtica navaja suiza, fundamental para el desarrollo de grandes edificios.

Leer más...

Como ya hemos dicho, el cometido de Tilecutter es básicamente trocear las imágenes, pero además en las últimas versiones crea el archivo dat con los atributos que nosotros especifiquemos (climas, tipo, fechas, etc..) La última version es 0.3d.1 y está disponible para descarga aquí. De momento solo está disponible para Windows, pero está escrito en python y es posible que funciones sobre entornos Unix usando wine.

Una vez descargado, pulsamos en el ejecutable y esto es lo que nos encontramos (ver imagen de la izquierda)

El interfaz consta de un menú de herramientas (File, Tools, Help), un visor de imágenes con sus controles y la parte de salida/entrada. El visor consta de varias zonas. La amarilla son los botones para cargar/ver las distintas vistas. Evidentemente algunos de ellos solo se activarán en caso de que el edificio tenga más de una vista(rotación). La zona roja son los controles de dimensiones, que incluye un menu para especificar el pak, el número de vistas o rotaciones (views) del objeto y otros tantos para el ancho (x), el largo (y) y el alto (z) del edificio. El programa ofrece la posibilidad de detectar automáticamente algunos de estos atributos pulsando en el botón Auto.

A continuación tenemos los controles avanzados que nos permiten aplicar un desplazamiento (offset), en caso por ejemplo de que queramos ajustar más el corte. Existe una opción no habilitada, y si no recuerdo mal no implementada aún, denominada Frames que servíria para gestionar los distintos fotogramas de una animación en caso de que el edificio contuviera alguna. Por último, en la parte del visor tenemos el área rosa que es donde se muestran las imágenes a tratar. Si os fijaís, podreís apreciar que la primera de las rotaciones de la imagen de ejemplo está rodeada por una línea roja. Ese es el patrón que usa el programa para delimitar las dimensiones del objeto y poder así cortar la imagen de forma adecuada.

Finalmente tenemos la zona verde, sobre la entrada/salida donde se especifican los ficheros que se van a tratar, ficheros fuente de tipo png, y los que van a crearse como resultado, ficheros dat y png.

¿Y cuales son los pasos que hay que dar para que el programa corte en trozos una imagen? Bueno, lo primero es crear la imagen en formato png. A continuación, ejecutamos Tilecutter y cargamos la imagen en el campo Source (zona verde) usando el botón Browse para encontrarla. Una vez cargada, aparecerá en el visor de imágenes. Seguidamente, especificamos el pak, el largo, ancho y alto. Si lo sabes, solo tienes que hacer coincidir el patron rojo con los bordes del edificio, sino pulsa Auto. Si tienes más de una vista pulsa en los botones de la zona amarilla y carga cada una de las vistas.

Una vez tengamos las imágenes cargadas, deberemos especificar las características del objeto, es decir, el contenido del fichero dat asociado a dicho objeto. Para ello vamos al menu Tools >> .dat file options o pulsamos CTRL+D y aparecerá el siguiente menu (ver izda)

En este caso hay que escoger el tipo de edificio (Object Type), y según eso habilitarán unas opciones globales (Global Options) y unas opciones específicas (Building options) Si estaís procesando industrias o factorías también se habilitará el contexto Factory options donde se especifican atributos propios de este tipo de edificios. Por último, tenemos las opciones adiccionales que permiten añadir nuevos atributos como los climas en los que se usará este objeto (esta opción está disponible también desde el menu principal Tools >> climates) No me entretengo mucho aquí porque esto forma parte de otra etapa del desarrollo que es la confección del archivo dat, sobre la cual existe abundante información en el foro y los wikis. Una vez marcadas las opciones pertinentes, pulsamos Save changes and close y el fichero dat estará listo.

Vamos con el paso final: el procesado (troceado de la imagen). Para ello vamos al área verde e introducimos los nombres de los fichero dat y png de salida. Puede ser ficheros que ya existen, pero hay que tener en cuenta que se sobreescribirán. Pongamos que los denominamos salida.dat y salida.png. Ahora vamos al menu File y tenemos dos opciones (ver drcha):

  1. Export source que exportará el resultado en los archivos dat y png anteriormente especificados.

  2. Export Dat file only que solo creará el archivo dat

Lo normal es optar por la primera, ya que nos da casi todo echo. Pues pulsamos en Export source y en la ruta que hemos especificado aparecerá un fichero dat y otro png con la imagen troceada. En mi caso, la imagen original y el resultado son los de la imagen

Y el archivo dat contiene entre otras cosas, lo siguiente:

...
Dims=2,2,1
BackImage[0][0][0][0][0][0]=salida.0.0
BackImage[0][0][1][0][0][0]=salida.0.1
BackImage[0][1][0][0][0][0]=salida.1.0
BackImage[0][1][1][0][0][0]=salida.1.1
...


Como podeís comprobar el proceso no es complicado, y hacerlo a mano sería un auténtico suplicio. Hay que acordarse de revisar el fichero dat, porque normalmente no incluye los indices referentes a los climas, debería haber 6 índices sin embargo hay 5 (numeros entre corchetes) y algunos de los atributos del fichero pueden estar desfasados respecto de las nuevas versiones (tipos de parada por ejemplo) Esperamos que con la nueva versión, que según parece saldrá en breve se subsanen estos errores y se actualize el programa.

En mi galería de usuario de graphics.simutrans.com teneís ejemplos de edificios complejos creados usando esta maravillosa herramienta (enlace)

Por cierto, como habreís notado aún no está traducido..si alguien se anima, solo tiene que ir a la carpeta language, hacer una copia del archivo tc-en.tab, renombrar como tc-es.tab y empezar a traducir todas las cadenas de texto que aparezcan.

24/7/08

Lista de herramientas útiles

A lo mejor muchos no lo sabeís, pero la Comunidad de Simutrans ha creado varias herramientas muy útiles para jugar y desarrollar objetos para el juego. Esta es una lista con algunas de ellas:

Leer más...



  • SimuStarter (Solo para windows): Este programa te ofrece un interfaz para arrancar el juego con opciones y de forma amigable al usuario

  • PakHelper (Solo windows): programa para crear archivos pak para los nuevos objetos que hallais creado.Tiene una interfaz gráfico.

  • Shades (Solo windows): programa que sirve para eliminar detalles conflictivos de las imagenes de los nuevos objetos que esteis creando (colores especiales, colores nocturnos, etc..)

  • TileCutter: Programa que te permite crear los archivos dat y png de tu nuevo objeto a partir de una imagen. Útil para crear cualquier tipo de objeto, y muy recomendable para objetos grandes (mas de 1x1 cuadriculas)

  • simutrans-launch (Solo MAC): un programa para arrancar simutrans en un MAC PowerPC

  • PakBuilder: interfaz gráfica para makeobj (es el programa para empaquetar los objetos y poder usarlos en el juego)

  • MakeObj: es el programa que empaqueta el archivo dat con los atributos del objeto, y la imagen en formato png y los convierte en un archivo en formato pak, para poder usarlo en el juego. Intenta usar las versiones más actuales

  • SimuSetup (solo Windows): Este programa instalara comodamente cualquier version de Simutrans en tu ordenador

  • SimuConfig: Con este programa puedes configurar fácilmente los distintos parametros del juego



La mayoria son para windows, excepto makeobj que tiene versiones para BEOS, MAC y Linux. Os recomiendo que probeis algunos de ellos para mejorar vuestra experiencia de juego.... ;)


NOTA PARA USUARIOS DE LINUX: Muchos de estos programas se pueden ejecutar en linux usando WINE