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.

No hay comentarios: