La vida en pequeñas dosis

Tag: Mapas

Cómo hacer un mapa con “planet” y Gimp/Inkscape (y 6)

¡Albricias, hemos llegado a la última entrega! No mientan, lo estaban deseando. Yo también, para qué mentir. Escribir entradas como ésta es entretenido, pero a la larga se hace cansado. Sobre todo, porque no he recibido ni un triste comentario. ¡Avergüéncense!

Recapitulando

La imagen de la que partíamos era ésta:

Mapa con nombres de grandes y pequeñas regiones

 

Y la imagen final a la que vamos a llegar es ésta:

Mapa final, con todos los nombres y efectos

Mapa final, con todos los nombres y efectos

Les pongo ya la imagen final porque ha pasado un tiempo desde que escribí la parte anterior de la serie, y no estoy seguro de recordar todo lo que hice para llegar aquí. Ups. No podré darles todos los pasos, pero sí la mayoría.

Ensuciando el mapa

Aunque parezca mentira, una vez que tenemos el primer mapa que les puse en esta entrada, lo único que queda es estropearlo para que parezca un pergamino viejo y gastado. Que es mucho más difícil de hacer que de decir, claro.

El primer paso es manchar el mapa. Para eso vamos a usar el filtro de generar plasmas de Gimp (“Filtros” -> “Renderizado” -> “Nubes” -> “Plasma”) sobre una capa en blanco que colocaremos, más o menos, encima de las que teníamos con los colores de la tierra y el mar. Luego le quitaremos el color (“Colores” -> “Desaturar”) y creamos un mapa de relieve con ella en una capa superior (“Filtros” -> “Mapa” -> “Mapa de relieve”). Ambas capas las pondremos en modo “Solapar”, ajustando su opacidad según nos parezca. A veces se pierde intensidad con el modo “Solapar”, y lo que hago es crear una copia de la capa y solaparla también. Pueden ver el resultado aquí:

Mapa "manchado"

Mapa "manchado"

(nótese que cambié el color del agua del mar desde el mapa anterior: ahora es #add7d0)

A continuación, vamos a simular el sangrado de la tinta. Aunque el ordenador nos permite hacer trazos perfectos, la tinta sobre el papel no es tan precisa: se filtra a los poros del papel y se difumina, que es lo que se llama “sangrado”. Para imitarlo, vamos a oscurecer los bordes del mapa y los contornos de los ríos.

Para esta parte vamos a usar la herramienta de seleccionar colores y trabajar en las capas de bordes del mapa y de ríos. En cada una seleccionaremos las líneas sobre las que vamos a trabajar, y luego ampliaremos la selección con la opción “Agrandar” (dentro del menú “Seleccionar”) unos 5 pixels. Crearemos una nueva capa (“Sangrado de bordes” y “Sangrado de ríos”, respectivamente) y en ella rellenaremos la selección de color negro. Pondremos esta capa en modo “Solapar”, y ajustaremos otra vez la opacidad. Este ciclo de solapar y ajustar opacidad se repite mucho en este tipo de trabajo, como ya habrán visto.

Ahora aplicaremos una máscara a la capa de “Sangrado de bordes”. Tal como está ahora, el borde se oscurece por ambos lados; y aunque eso nos viene bien para los ríos, no queda tan bien en los bordes de los continentes. Aplicando la máscara de “Tierra” a esta capa conseguiremos que sólo se vea la parte interior.

Algo que vi en los foros de Cartographers’ Guild es que mucha gente aplica también un ligero brillo a los bordes de los continentes, como contraste al sangrado interior que acabamos de hacer. En este mapa también está aplicado, y para conseguirlo hice lo mismo que para el sangrado de los bordes pero con dos diferencias: usé un color claro para el relleno, y en lugar de la máscara de “Tierra” usé la de “Mar”, que sólo deja ver la parte exterior de los bordes.

Without further ado, he aquí el resultado:

Mapa con sangrado de tinta y brillo del borde de los continentes

Mapa con sangrado de tinta y brillo del borde de los continentes

Para terminar, vamos a darle al mapa una textura apergaminada. Contamos para ello con el filtro “Aplicar lienzo” (dentro de “Filtros” -> “Artísticos”) de Gimp. Como además queremos darle cierto color antiguo, vamos a aplicárselo a una capa con un color: escogemos uno adecuado en la paleta (#815f00, en mi caso), creamos una capa de ese color por encima de todas las demás, y usamos el filtro de “Aplicar lienzo”. Como todavía se ve demasiado del color original, he creado una capa por encima del pergamino con un color marrón algo oscuro (#614f16), y la he puesto en modo “Color”.

Retoques finales

En teoría, con los pasos anteriores ya está terminado el mapa. Pero luego, para mí al menos, es imposible no pasar un rato revisándolo y añadiendo alguna cosa más: una capa más de textura, diferentes ajustes de opacidad, algo de “blur” en algún sitio, etc. Eso ya depende mucho de las obsesiones de cada uno, y del tiempo y ganas de las que se dispongan.

Otro retoque final son los bordes oscuros que ven alrededor de los continentes. El término técnico es woodcut, y hay muchas formas de hacerlos. Yo lo hice seleccionando los continentes, ampliando la selección varias veces (una por nivel de woodcut) y usando la opción de “Seleccionar” -> “Borde” para rellenarlos.

También he visto gente que añade líneas cartográficas, rosas de los vientos, un recuadro con el título del mapa (como en los mapas antiguos), y muchas cosas más. Todo está en Cartographers’ Guild, que es donde se junta la gente que más sabe de estas cosas. Si tienen dudas, pasen por allí.

¡Se acabó!

Y con esto doy por terminada la serie. Es la que más tiempo me ha llevado de todo lo que he escrito para Retrincos, incluyendo sus dos encarnaciones anteriores. Me ha gustado, pero da bastante trabajo.

Espero que a los del otro lado del monitor les haya gustado también, o al menos les haya parecido interesante. Siempre se aprenden cosas, aunque entiendo que no todo el mundo se dedique a crear mundos imaginarios y luego hacer mapas para ellos (o al revés). Hay mucho que aprender de Gimp e Inkscape, y esto es una buena excusa para practicarlo.

 

Cómo hacer un mapa con “planet” y Gimp/Inkscape (5)

Volvemos a la carga con la quinta entrega de esta serie. Hoy viene una de las partes más divertidas, la de poner los nombres en el mapa. Para eso vamos a abandonar momentáneamente Gimp y lanzar Inkscape.

Descripción general del proceso

Gimp trabaja sobre gráficos bitmap, mientras que Inkscape es un programa de dibujo vectorial. Cada uno tiene sus ventajas y sus inconvenientes, pero lo importante para nosotros es que con Inkscape es muy fácil pintar textos en cualquier tamaño y disposición, y en Gimp todo lo contrario. Un ejemplo sencillo: como Inkscape trabaja con vectores, podemos aumentar o disminuir el tamaño de un texto sin distorsionarlo. Si lo hiciéramos en Gimp, tendríamos un texto muy pixelado o uno que casi no se leería.

Además, veremos que con Inkscape es muy fácil colocar un texto para que siga un trayecto determinado. En teoría, en Gimp es posible; en la práctica, es tan difícil y el resultado tan horrible que no merece la pena ni intentarlo.

Para trabajar con Inkscape vamos a sacar una copia del mapa que teníamos, en full-blown detail, importarlo y luego pintar los nombres por encima. Luego exportaremos esos nombres a un bitmap y los importaremos en Gimp, en una capa, para seguir trabajando en el mapa. ¿Parece un coñazo? Lo es. También en teoría, Gimp soporta el formato SVG para leer gráficos; pero en la práctica, tampoco merece la pena. Es mejor usar el truco de la exportación a un bitmap para poder trabajar cómodamente.

Cambié un poco el mapa al que habíamos llegado en la última entrega, para arreglar unos ríos que no me gustaban y añadir unas colinas que me venían bien. Para refrescarles la memoria, se lo pongo por aquí de nuevo.

El mapa, con texturas, montañas, ríos y alguna colina.

El mapa, con texturas, montañas, ríos y alguna colina.

Importación del bitmap y primeros nombres

Lo primero que hago es importar el bitmap y cambiar las propiedades de la página (“Archivo” -> “Propiedades del documento”) para que se ajuste a él. Luego, para evitar pinchar en él constantemente y moverlo sin querer, uso “Propiedades del objeto” para bloquearlo. Así se quedará todo el rato, como fondo inerte de nuestro trabajo.

Como todo el mundo sabe, no importa la calidad de lo que escribas sino lo bonito que sea el tipo de letra. Así que la elección de un tipo de letra adecuado al mapa es fundamental. Yo voy a usar dos: Mawn’s Handwriting y Miltonian Tattoo. La primera será la que use para los nombres “grandes” (continentes, océanos), y la segunda para las zonas más pequeñas, los detalles del mapa.

Tipos de letra usados en el mapa.

Tipos de letra usados en el mapa.

Pongo los nombres de los continentes primero: Pyron, Jont, Zentaeri, Gausiania, Cathýsiar, Brotrôro y Bascacân. No sé por qué lo hago en ese orden, en lugar de empezar por la izquierda. Supongo que será porque Pyron está en el centro, y gravito inconscientemente hacia él.

Los nombres se ven bien (el  blanco es un buen contraste con el fondo), y he ajustado algunos de los tamaños de los textos a mano (“estirando” el objeto con “Control”, para que las proporciones se mantengan), pero todavía no queda bien. Lo que vamos a hacer para darle un poco de gracia es girar algunos nombres un poco, y poner otros en un trayecto.

Mapa con los nombres "planos", sin girar ni poner en trayectos.

Mapa con los nombres "planos", sin girar ni poner en trayectos.

Textos y trayectos

La parte de girar los nombres no es difícil de entender. Los nombres que están cien por cien en horizontal resultan artificiales, así que me aseguro de que ninguno lo esté. Pueden ver el resultado en los nombres de Pyron, Cathýsiar y Gausiania.

Texto siguiendo un trayecto.

Texto siguiendo un trayecto.

Pero otros nombres no los voy a girar, sino que los voy a poner en un trayecto. Esto significa que voy a trazar una línea, más o menos ondulada, y voy a hacer que el texto siga esa línea. Para hacerlo, hay que trazar la línea, seleccionarla junto al texto que queremos colocar sobre ella (shift+click, para añadir a la selección) y luego ir al menú “Texto”, opción “Poner en trayecto”. Verán que inmediatamente el texto se coloca encima de la línea, siguiéndola de cerca con todas sus curvas y giros.

Un texto normal y uno "ampliado", aumentando el espacio entre letras.

Un texto normal y uno "ampliado", aumentando el espacio entre letras.

Uno de los problemas que suelen aparecer aquí es el espacio entre letras. Suele ser pequeño, adecuado para un texto en el que queremos meter muchas letras en poco espacio. Pero ahora lo que nos interesa es extender un nombre por toda la curva, así que tenemos que incrementar ese espacio. Para ello, pinchamos dos veces en el texto y usamos la combinación de teclas shift+alt+”<“. Si nos hemos pasado y queremos reducir el espacio, lo mismo pero sin shift. Cuando acabemos, no tenemos más que pinchar fuera del texto o pulsar la tecla de “Escape”.

Trayecto sin simplificar frente a trayecto simplificado.

Trayecto sin simplificar frente a trayecto simplificado.

Puede que ahora el texto ya ocupe todo lo que queremos, pero que el trayecto que hemos dibujado sea tan complicado que el texto no se lea bien. Este problema suele ocurrir porque hemos dibujado a mano una línea con muchos nodos (las líneas, en Inkscape, se forman con la unión de nodos). Para evitarlo, en lugar de la herramienta de dibujo a mano alzada, suelo usar la de curvas Bezier. Pero una vez que ya está dibujado, la mejor manera de mitigar el problema es seleccionar el trayecto y usar Control+L, la función de “simplificar”. Eso eliminará nodos manteniendo (más o menos) el aspecto del trayecto. Luego podemos usar la herramienta de modificación de nodos (F2) para verlos y moverlos o cambiar su orientación a mano.

Con esto termino el resto de los nombres, incluyendo los dos océanos. Para que queden mejor, aplico una sombra: los selecciono todos (Control+A), voy al menú “Filtros”, submenú “Sombras y brillos”, y selecciono “Sombra paralela”.

Los otros nombres

Para terminar, creo otra capa en el dibujo, por debajo de la de los nombres que acabo de poner, y me paso un rato marcando en ella sitios que me parece interesantes. Nada complicado: marco cada uno como “Zona X”, siendo “X” un número.

Voy a generar nombres para todas estas zonas. Las he marcado primero porque ahora sé cuántos necesito (28). Puedo usar el mismo generador que usé para los demás nombres o alguno diferente. No me importa tanto, porque son nombres de relleno. No se van a ver mucho, sólo están ahí para que parezca que hay muchas cosas en el mapa.

Para escribirlos, si queremos hacerlo en plan industrial, podemos editar el fichero SVG (es un texto XML) y cambiar ahí los nombres. Luego seguramente tengamos que recolocarlos un poco en el mapa, pero será mucho más fácil que cambiarles los nombres uno a uno en Inkscape. Es lo que hice yo, usando un pequeño script en bash.

Les dejo con la imagen final del mapa, con todos los nombres y los efectos:

Mapa con todos los nombres introducidos.

Mapa con todos los nombres introducidos.

 

Cómo hacer un mapa con “planet” y Gimp/Inkscape (4)

Bienvenidos a la cuarta entrega de esta serie. Hoy vamos a empezar la parte más artística (y para mí, la más difícil) del mapa: las montañas y los ríos.

Arrugas en la tierra

Las montañas son fundamentales en un mapa, tanto como lo son en el mundo real. Son las responsables en gran parte del clima de las regiones circundantes, las que determinan dónde aparecen los ríos, y las que bloquean o permiten los flujos migratorios de personas y animales: no por nada muchas fronteras están delimitadas por cadenas montañosas. También tienen un gran significado religioso, siendo las primeras “casas de los dioses” en el desarrollo de una civilización. Las montañas son las protagonistas del mapa.

Hay muchas formas de dibujar las montañas en un mapa. A mano (como hice en Praathamika) o haciendo “corta y pega” de pequeñas secuencias (como hice en el mapa del Exilio). Quería hacer algo mixto en este mapa, dibujando varias secuencias de montañas (en lugar de montañas hechas con vectores, como hice en el Exilio) y cortando y pegándolas en el mapa. Pero al final, la cabra tira al monte, y acabé haciéndolas a mano como siempre.

Montañas dibujadas a mano.

Montañas dibujadas a mano.

Dejémoslo claro ahora mismo: mis montañas son horrorosas. Como el hijo feo de Quasimodo y el Hombre Elefante. Mi método es: dos líneas con un ángulo y una sombra en el lado este.

Si quieren ver montañas bien dibujadas, les sugiero estos mapas:

Los ríos

Para hacer los ríos también opté por la vía artesana. La otra opción era lanzar Inkscape, dibujar trazos a mano y luego fractalizarlos. Quedan bastante bien, pero si has empezado con Gimp, es un lío mezclar partes hechas con Inkscape: hay que exportar un bitmap desde Gimp, cargarlo en Inkscape, dibujar los ríos y luego hacer al revés (importar los ríos en Gimp). Dibujarlos a mano es más rápido, aunque no quede tan bien.

Con Inkscape podemos fractalizar trayectos para simular ríos. Aquí, la versión normal y la fractalizada.

Con Inkscape podemos fractalizar trayectos para simular ríos. Aquí, la versión normal y la fractalizada.

Para las montañas podemos tomarnos licencias artísticas y hacerlas más o menos como queramos, siempre que nos guste. Pero los ríos siguen leyes muy estrictas, que hay que respetar para no cometer barbaridades. Hay un post en Cartographers’ Guild con un buen resumen, que viene a decir:

  • Los ríos siempre van hacia el mar, buscando las tierras más bajas. Eso implica que no irán hacia las montañas, sino que se separarán de ellas.
  • Los ríos no se bifurcan cuando van hacia la desembocadura. Puede que dos ríos formen uno más grande, pero uno grande no se dividirá en dos “de motu propio”. Si existe algún caso, es debido a intervención externa.
  • Cuanto más aguda la pendiente, más rápido el flujo de agua, y más recto el trazado del río. Por eso se pueden ver tantos meandros en el Amazonas: el terreno es llano y la corriente es muy lenta.
  • Los lagos pueden tener varios ríos entrantes, pero sólo uno de salida. Un lago puede ser alimentado por tantos ríos como quieras, pero tenderá siempre a salir por el punto de menor resistencia.
  • Un lago puede no tener río de salida, y entonces seguramente sea salado. En estos lagos, el agua sólo puede abandonar el lago por evaporación, dejando como resto los elementos sólidos que llevaba (como las sales minerales). El ejemplo más claro es el Mar Muerto, con un índice de salinidad muy alto.

Una vez conocidas estas reglas, sólo hay que ponerse a dibujar los ríos. No te vuelvas loco con los detalles: intenta que sean ramificados y que fluyan en curvas más o menos abundantes, y ya está. Lo importante es que quede bonito, no que cumpla todas las leyes de la termodinámica.

En el contorno del mapa generado por planet hay muchas entradas que podrían interpretarse como rías o desembocaduras de ríos. Si puedes, haz que tus ríos acaben en ellas. Añadirá un punto de realismo a su trazado. También puedes hacer que terminen en un lago: hay muchos en los mapas generados por planet, y si no haces que algún río desemboque en ellos va a parecer que hay muchos pequeños mares interiores en tu mapa. Puedes conectar los más cercanos con un río, y luego dibujar un río que saque toda ese agua hacia el mar. Aunque no es estrictamente necesario, es lo más habitual, y lo que tus jugadores/lectores intuirán como correcto.

Aparte de lo anterior, hay dos reglas que sigo para darle algo más de verosimilitud al mapa:

  • En el hemisferio norte, los ríos fluyen desde el lado oeste de las montañas hacia el mar.
  • El el hemisferio sur, los ríos fluyen desde el lado este de las montañas hacia el mar.
Explicación (en inglés) de la sombra orográfica ("rain shadow").

Explicación (en inglés) de la sombra orográfica ("rain shadow").

Básicamente, en el hemisferio norte los vientos húmedos del mar llegan desde el oeste, regando las caras de las montañas vueltas hacia ese lado; y en el hemisferio sur ocurre al revés. Un efecto asociado es que del otro lado de las montañas se produce una sombra orográfica (rain shadow, en inglés), una zona árida a la que no llega lluvia porque se ha quedado toda del otro lado. Es lo que explica la formación de las praderas norteamericanas, a la sombra de las montañas rocosas.

En este mapa he dibujado los ríos en negro. En muchos mapas se dibujan en azul, como el mar, pero las veces que he probado no han quedado muy bien. Aquí lo he hecho en negro porque es más fácil y porque va con el estilo que me gusta para este mapa, monocromo. De momento no lo es, pero lo será: tú confía en mí.

Ríos, dibujados a mano y en negro.

Ríos, dibujados a mano y en negro.

Textura del mapa

Para terminar esta parte le he dado textura al mapa, quitándole ese aspecto “plano” de dibujo de ordenador. He hecho una copia de la capa con bump-mapping, la he desaturado y la he puesto como “Solapar” encima de las del mar y la tierra. Luego he hecho una copia de la capa de la tierra y he aplicado un mapa de relieve, usando otra vez la capa de bump-mapping desaturada. Como para dibujar las montañas he usado las zonas elevadas que aparecían en el mapa generado por “planet”, parece que están en un terreno ligeramente distinto.

Mapa con una textura aplicada, a partir del mapa de "planet" con "bump-mapping".

Mapa con una textura aplicada, a partir del mapa de "planet" con "bump-mapping".

Todavía es demasiado brillante y limpio, no gastado y sucio como debería ser un mapa antiguo. Pero para solucionar ese problema, y para empezar a poner los nombres al mapa, tendrán que leer la siguiente entrega.

 

Cómo hacer un mapa con “planet” y Gimp/Inkscape (3)

Tercera entrega de esta serie. Pensé que iba a llevarme menos. Seguro que ustedes también. Mala suerte: para mí por tener que hacerlo y para ustedes por tener que leerlo. Como dicen los budistas: “la vida es sufrimiento”.

Hoy empezamos la parte “de verdad” de la creación del mapa. Es hora de lanzar Gimp.

El mapa de trabajo

Para el mapa “artístico” vamos a necesitar algo más que 1600 pixeles. Como decía en el primer post, suelo usar 3000×3000 pixels de resolución. Por lo tanto, he generado un mapa de ese tamaño para cargar en Gimp.

La proyección que voy a usar es la rectangular. No es muy fiel a la realidad, como ninguna lo es: sólo la ortográfica, en la que se ve la esfera del mundo, lo podría ser. Las demás intentan mapear una esfera sobre un rectángulo, y siempre hay algún tipo de distorsión. En la proyección Mercator, el mapa “se estira” a medida que se va hacia los polos; y en la rectangular, parece que encoge. Pero es la más cómoda para trabajar, al menos para mí. Usé la proyección ortográfica en el pasado (para el mapa de Praathamika), pero la vista estaba limitada a un continente. Y en éste mapa me gustaría que saliera todo el mundo.

Lo primero que hago es cargar el inmenso GIF en Gimp. Cada imagen aparecerá como una capa: primero la cuadrícula, luego las curvas de nivel, luego el contorno en negro, luego el mapa con bump-mapping y luego el mapa en color, a secas. Pongo las tres primeras a “Oscurecer sólo”, y así puedo ver el mapa con bump-mapping y la cuadrícula, curvas de nivel y contorno superpuestos.

Ventana de Gimp con el mapa con bump-mapping y las tres capas superiores superpuestas

Ventana de Gimp con el mapa con bump-mapping y las tres capas superiores superpuestas

Mar y tierra

Una vez tengo esto, doy un paso atrás. Vuelvo a poner la capa de “Contorno” como “Normal”, y dejo que sea la única visible. Lo que quiero hacer es obtener un par de máscaras para la parte de tierra y la parte de agua del mapa.

Para seleccionar todo el mar o toda la tierra usé la “varita mágica” de Gimp. Me encontré un problema: el contorno tenía “fugas”. En algún punto, había un contorno que no estaba cerrado del todo, y al seleccionar con la varita mágica era incapaz de limitarme a la tierra o el mar. La manera más fácil de entender lo que significa esto es usar el “cubo de pintura”: si los contornos estuvieran cerrados, pintaríamos sólo el espacio dentro de cada uno. Pero al no estarlo, la pintura se desparrama por todo el dibujo.

Mapa con fugas. He pintado en negro para que se vean mejor.

Mapa con fugas. He pintado en negro para que se vean mejor.

La mejor manera de arreglar este problema es buscar las fugas y arreglarlas con el pincel. Sólo les llevará un par de días.

Por otro lado, la manera rápida de arreglarlo es seleccionar todo lo que sea de color negro en el dibujo con el selector de color, y luego usar la opción de Editar -> Trazar selección, con un ancho de 1 pixel y color negro. Así el contorno será continuo, y evitaremos las fugas. Después podemos usar la opción de “Brillo y contraste” para eliminar los tonos de gris, subiendo el contraste a tope. Sólo habrá blanco y negro en esta capa, y podremos seleccionar fácilmente las partes de agua y tierra con la varita mágica.

La selección lleva un tiempo, más o menos dependiendo de lo perfeccionistas que sean. A mí me gusta seleccionar no sólo los océanos y mares, sino también todos los lagos que se pueden ver en el mapa. Eso implica mucho shift+click para añadir a la selección; si se lo quieren ahorrar, con tal de seleccionar los océanos y los mares interiores llegará. Pero no les quedará tan bonito, se lo advierto.

Dos máscaras para la tierra y el mar

Dos máscaras para la tierra y el mar

Una vez seleccionados todos los mares, guardo la selección con Seleccionar -> Guardar en canal. Para hacer lo mismo con la tierra es mucho más sencillo: invierto la selección con Control+i, y ya está. “Guardar en canal” otra vez y ya tengo máscaras para el mar y la tierra.

Colores

Lo siguiente que hago es escoger los colores de la tierra y el mar. Para eso creo dos capas en blanco justo por encima de la de bump-mapping (o justo por debajo de la de contornos, como prefieran verlo), y les aplico las máscaras de “Mar” y “Tierra” que acabo de crear. Desmarco la opción de “Editar la máscara de capa”, y busco dos colores que me gusten. Para eso suelo recurrir a la paleta “Topographic” de Gimp. En este caso, he escogido el color e8bc34 para la tierra y 54b0f8 para el mar. Posiblemente los cambie luego, pero me dan una base para empezar.

Mapa con los primeros colores aplicados

Mapa con los primeros colores aplicados

En este punto el mapa empieza a parecerse a uno de verdad. Pero todavía le faltan los elementos que le darán personalidad: montañas y ríos.

Y van a tener que esperar hasta la siguiente entrega para saber cómo lo hago 🙂

 

Cómo hacer un mapa con “planet” y Gimp/Inkscape (2)

En la entrada anterior les hablé de planet y de cómo generar un mapa con él. Como vieron, los resultados son un buen comienzo, pero todavía falta mucho para tener algo que se pueda presentar como un mapa. Hoy vamos a ver otra etapa del proceso: un borrador sobre el que anotar los primeros nombres para este mundo.

Primer borrador

Mapa generado por planet con la semilla 0.560789

Partíamos de este mapa, con semilla 0.560789

Normalmente, una vez hecho lo descrito en la entrada anterior, me lanzaría a crear un mapa de 3000×3000 y trabajaría ahí. Pero contar este proceso me está sirviendo para analizarlo con un poco más de calma, y me he dado cuenta de que es mejor ir algo más despacio. Por lo tanto, antes de ponernos a trabajar “en serio”, vamos a hacer un primer borrador del mapa.

Los objetivos de este borrador son:

  • Delimitar las zonas de interés del mundo: continentes, países, mares, etc. No se trata de entrar en detalles, sino de dividir el mapa en zonas más cómodas de trabajar.
  • Empezar a pensar en los nombres que vamos a usar. Si bucean un poco en los foros de Cartographers Guild, verán que los nombres es una parte muy trabajosa de un mapa de fantasía. Cuando hacemos el mapa de un mundo ya conocido no es un problema, porque los nombres nos vienen dados; pero si se trata de un mapa nuevo, que hacemos sólo por diversión y que no corresponde a un mundo ni real ni imaginado, hay que inventarse los nombres. Y es un verdadero coñazo. Se podría escribir una serie de artículos sólo sobre eso (¡y puede que algún día lo haga!).
  • Ver qué nos inspira el mapa. A lo mejor esa isla perdida la queremos convertir en los únicos restos que quedan de un reino hundido hace milenios, o queremos convertir alguno de los mares interiores en algo parecido al Mediterráneo de las guerras Púnicas. Ésta es la parte más creativa del proceso, y una de las más gratificantes: aunque tengamos ideas previas a la creación del mapa, puede que éste nos sugiera otras en las que no habíamos pensado. Descubrirlas es parte de la diversión.

Muchas expectativas para un simple mapa fractal, ¿verdad?

Notas rápidas

Para el borrador he generado un mapa con proyección rectangular de 1600×1600, con rejilla de 15×15 grados. Luego lo habría cargado en Gimp y hubiera escrito sobre él varias notas, pero como hay un bug en Gimp que hace que mi tableta gráfica no funcione bien cuando tengo activados los efectos del escritorio, usé Xournal para lo mismo. Es un gran programa que no conocía hasta hace relativamente poco, y para anotaciones sobre imágenes o PDFs es inapreciable. De lo mejorcito, oiga.

Notas rápidas tomadas sobre el mapa

Notas rápidas tomadas sobre el mapa

Las primeras notas son un tanto caóticas: dibujo unas líneas por donde creo que podrían ir las cadenas de montañas, anoto lo que se me ocurre al ver ciertas zonas (como lo de “meseta Tibet”, para una meseta elevada similar a aquella), apunto dónde quedan el ecuador y las zonas árticas, delimito los continentes y los marco con un número. Como verán, en este mapa hay 7 continentes, aunque tres de ellos (5, 6 y 7) son bastante pequeños. El 5 y el 6 podrían ser uno solo, pero como una parte queda por encima de la línea ártica y hay una especie de estrecho entre ellos, he decidido separarlos.

No hay que tomarse esto demasiado en serio. El mundo que vamos a crear tendrá graves incoherencias si lo estudiamos a fondo. Por ejemplo, en el mundo real la zona ártica no es todo lo que hay sobre el paralelo 75º, sino una zona variable delimitada por la temperatura media a lo largo del año. Y el trazado de las montañas es bastante aleatorio, sin seguir posibles líneas tectónicas. Pero el objetivo no es hacer un estudio científico, sino un mapa para jugar a rol o entretenerse.

Nombres

Como no queremos rompernos la cabeza ni desarrollar toda una familia de lenguas relacionadas entre sí para nuestro mundo, vamos a ir a lo rápido: los generadores aleatorios. Hay muchos para escoger, pero a mí me gustan éstos:

Para el mapa voy a usar el último, y en concreto el titulado “Greek Names”. Después de ejecutarlo varias veces, me quedo con estos nombres: Pyron, Zentaeri, Gausiania, Thylithe, Ircmimas, Prothe, Yitenth, Bascacan, Brotroro, Jont, N’chect y Cathysiar. Los usaré para los continentes y cualquier otra cosa que se me ocurra. Si luego me hacen falta más, puedo conseguirlos en el mismo sitio.

Para los continentes me quedo con Bascacan (continente 5), Brotroro (6), Cathysiar (1), Jont (4), Pyron (2), Zentaeri (3) y Gausiania (7). Como un elemento fundamental de los mundos de fantasía son los nombres exóticos, voy a “exotificar” algunos de éstos:

  • Cathysiar se convierte en Cathýsiar, con una tilde encima de la y griega.
  • Bascacan y Brotroro se convierten en Bascacân y Brotrôro. El acento circunflejo podría significar una vocal larga (como en francés) o una vocal cerrada (como en portugués).
  • Estaba pensando en cambiar Zentaeri a algo con una diéresis (Zentaerï, Zëntaeri …), pero le tengo cierta tirria a las diéresis. Hacen que cualquier cosa a la que se la pongas parezca sacada de “El Señor de los Anillos”.

Todo esto es un buen ejemplo de las ventajas de los generadores aleatorios. Aunque todos éstos nombres han sido sacados del mismo, los resultados son suficientemente distintos como para suponer que cada palabra está en un idioma diferente.

Me quedan todavía unos cuántos nombres, así que voy a usarlos para algunas otras features del mapa. Los candidatos más evidentes son los mares y océanos, pero siempre me han costado: tiendo a abusar de los “mar de” y “océano de”, que en el mundo real no abundan. Para este mundo voy a usar “Prothe” (suponiendo que “prothe” significa “océano” en algún idioma) para el océano central, “Ircmimas” para el mar interior más grande, “Mar de Pyron” para el mar interior más pequeño (parece adecuado, siendo Pyron la tierra circundante) y “Gausián” (que no tiene nada que ver con el matemático de nombre similar) para el océano del sureste. Parto de la idea de que “Gausiania” es algo así como “la tierra que está en el Gausián”, y me ahorro un nombre nuevo. Otra opción sería un genérico tipo “Océano del Sur”, pero no queda tan bien.

Borrador del mapa con los nombres de continentes y océanos

Borrador del mapa con los nombres de continentes y océanos

Todavía podría poner muchos más nombres, pero con éstos tengo un buen principio para mi mundo; y para ustedes, un buen final para este post. Si todavía tienen ganas de leer más sobre este proceso, sigan atentos a este weblog.

 

 

Cómo hacer un mapa con “planet” y Gimp/Inkscape (1)

Como quería hacer un mapa para un nuevo proyecto en el que estoy trabajando, y muchas veces es difícil encontrar información de este tipo en castellano, voy a poner por aquí el proceso que sigo habitualmente. Los resultados no son comparables al mapa de “La Marca del Este” de A. J. Manzanedo, o de alguno de “mappers” profesionales como Sapiento y los grandes gurús de Cartographers Guild, porque para eso hace falta un talento del que carezco; pero sirven para tener algo con lo que pasar un rato.

planet

La raíz de todos los mapas que he hecho está en un pequeño programa llamado planet, hecho por un profesor danés llamado Ægidius Mogensen. Genera mapas fractales en varios tipos distintos de proyección: Mercator, Mollweide, ortográfica, estereográfica, y varias más que ni entiendo ni he usado.

Foto de Ægidius Mogensen

Ægidius Mogensen, el autor de "planet"

planet es un programa en línea de comandos, hecho en C, que hay que descargar y compilar. La instalación se reduce a hacer “make” y luego usar el binario generado. Funciona en base a una semilla, un número decimal a partir del que se genera el mapa. Esta semilla es lo más importante del mapa, porque si cambia en un solo dígito el mapa resultante será diferente. Cuando consigamos un mapa que nos guste, debemos apuntar la semilla para poder reproducirlo en todas las proyecciones y a todas las resoluciones que queramos.

Yo suelo usar mapas de 3000×3000 o 4000×4000 pixels. Parece mucho, pero siempre es mejor trabajar a mucha resolución para que sólo haga falta encogerlos, no ampliarlos (como cualquiera con una cámara de fotos digital habrá comprobado). Para las vistas previas uso mucha menos resolución: 800×600, por ejemplo. Así puedo hacerme una idea de qué aspecto tendrá el mapa sin pasarme varios minutos esperando.

Aparte de la proyección, planet puede generar el mapa en varios modos: en color, en blanco y negro, con línea de contorno o sin ella, y con “efecto 3D” (bump-mapping) o sin él. Por defecto se generan en color y sin bump-mapping, y con un mapa de colores que recuerda al de la tierra. No es realista, porque los colores se asignan por altura: verde para la costa, marrón para media altura, gris para sitios más altos y blanco para las cimas. Y como cualquiera que conozca el desierto de Atacama sabrá, eso de las costas verdes no es siempre cierto.

Búsqueda de una semilla

El primer paso para hacer un mapa es generar uno que nos guste. Eso implica buscar una semilla adecuada, que es un proceso tedioso e imposible de hacer durante mucho tiempo por humanos cuerdos. Yo la genero aleatoriamente y veo qué mapas salen, usando unos scripts en Python y las utilidades ImageMagick. El script principal (“runplanet.py”) tiene un modo “vistazo” para generar varios mapas a la vez, a baja resolución, y colocarlos todos en una sola imagen. Así puedo cargar la imagen, ver los mapas y generar más si no me gusta ninguno.

Ejemplo del modo "glance" de mis scripts para planet

Ejemplo del modo "vistazo" de mis scripts para planet

Como todos los generadores aleatorios, planet tiene sus vicios. El más frecuente es el exceso de tierra o de agua: tiende a generar “supercontinentes” que ocupan casi todo el mapa, más bien cargados en uno de los polos, o formando una barrera de polo norte a polo sur; y también son típicos los mapas en los que sólo hay unas pocas islas esparcidas por el océano.

Otra limitación del programa es que no genera montañas realistas. En el mundo real, las montañas forman largas cadenas que surgen donde las placas tectónicas colisionan, elevando el terreno. En los mapas generados por planet hay ciertos puntos en los que se acumula la masa y da la impresión de caer por su propio peso hacia los alrededores, como las laderas de un volcán. Hay tierras altas y bajas, pero no tienen el aspecto que tienen en el mundo real. Podemos aprovechar estos cambios de altura para dibujar montañas luego, o para separar placas tectónicas imaginarias. Hace falta echarle un poco de imaginación al mapa generado para convertirlo en algo útil.

Algunos de estos mapas sirven si buscamos un mapa para un sitio determinado: una montaña, un valle, una península, una isla, un fragmento de costa, etc. Pero no son adecuados para un mapa de un mundo imaginario.

Dando forma al mundo

Para este ejemplo he usado la semilla 0.560789, que aparte de ser un número bonito da un mapa con un par de continentes de buen tamaño y una gran isla a bastante distancia de ellos, perdida en medio del mar del sur. También tiene varios mares interiores, siempre interesantes y abundantes en los mapas generados por planet. En el continente inferior izquierdo pueden ver uno de los defectos habituales de planet, un ejemplo del aspecto “volcánico” de las algunas montañas: todo el continente parece una isla volcánica de tamaño épico, con aspecto de cono con bordes irregulares.

Mapa generado por planet con la semilla 0.560789

Mapa generado por planet con la semilla 0.560789

El siguiente paso es buscar la orientación adecuada para el mapa, para lo que suelo crear mapas en una resolución un poco mayor, como 800×600. Con planet podemos “mover” el mapa variando la latitud y longitud. En las proyecciones “totales” (en las que se ve todo el mapa), suelo cambiar la longitud para que se vean mejor los continentes. En las proyecciones esféricas (como la ortográfica), cambiar la longitud y la latitud es la única forma de ver distintas partes del globo (como los polos, por ejemplo).

En el caso del ejemplo, no hace falta tocar nada: aunque a veces los continentes están a caballo de los bordes del mapa (se ve una parte en cada lado), en éste ven todos perfectamente. Sí que hará falta tocar la latitud y longitud para la proyección ortográfica, que muestra sólo una parte del mundo y tendremos que “enfocar” hacia la que nos interesa.

Proyección ortográfica del mundo "0.560789"

Proyección ortográfica del mundo "0.560789"

Como verán en las imágenes, hay algo más que también hace planet: generar una cuadrícula sobre el mapa. Yo uso una de 15º, más que nada para ayudarme a decidir cuánto tengo que mover el mapa en un sentido u otro si las cosas no encajan. Para el mapa sobre el que voy a trabajar la quito, pero mientras estoy probando si el mapa es adecuado es una ayuda muy valiosa.

Aparte de éstas, que sólo afectan a cómo se ve el mundo, hay otras opciones en planet que alteran su composición: altitud inicial, variación debida a la distancia y variación debida a la altitud. Con éstas podemos aumentar o disminuir la cantidad de tierra que se ve por encima del agua y hacer el mundo más o menos “rugoso”.

El producto final

Cuando todo está decidido, genero unos GIFs monstruosos que contienen, cada uno, cinco versiones diferentes del mismo mapa. En concreto:

  • Una en blanco y negro sólo con el contorno de los continentes
  • Una en color, sin bump-mapping
  • Una en color, con bump-mapping
  • Una en blanco y negro, con curvas de relieve
  • Una en blanco y negro, sólo con la cuadrícula

Y esto cuatro veces, una por proyección: Mercator, Mollweide, ortográfica y rectangular. Suelo usar sólo la rectangular, pero siempre genero las cuatro por si acaso luego me hacen falta. Todavía no ha ocurrido, pero me niego a aceptar que las demás son prescindibles. Es como tener el síndrome de Diógenes.

La ventaja de “empaquetar” todas estas imágenes en un GIF es que al cargarlas con Gimp se muestran como capas diferentes. Así puedo, por ejemplo, superponer la cuadrícula al mapa en color, o superponer el contorno sobre el mapa con bump-mapping. Por supuesto, ocupan una barbaridad: entre 5 y 10 megabytes cada GIF. A Gimp suele costarle un poco abrirlos.

Conclusión

Y hasta aquí todo lo que les quería contar hoy sobre planet. Inicialmente pretendía cubrir en un sólo post todo el proceso típico para hacer un mapa de los míos, que como verán no necesita de demasiado talento. Pero visto lo que me ha llevado la parte de planet, he pensado que es mejor dividirlo en dos.

No sé cuándo publicaré la siguiente entrada. Tendrán que añadir el weblog a su lector RSS y esperar pacientemente. Espero que merezca la pena 🙂

El Mapa del Exilio

Siempre que me da la vena creativa me obsesiono durante uno o dos meses con una cosa: un personaje, una ambientación, una historia … Es lo que me está pasando ahora con el Exilio. Por eso hoy vuelvo a darles la lata con lo mismo.

 

Show me the pixels

El mapa original del Exilio era un bitmap creado con planet (el generador que uso para todos los mapas) y editado con Gimp. Tiene sus ventajas, pero una gran desventaja: es difícil escalarlo. Si quieres hacer “zoom” a una parte en concreto, el resultado saldrá pixelado. Y como aquí no tenemos los programas mágicos de CSI que convierten un pixel de un metro cuadrado en una imagen nítida de la matrícula de un coche, manchas de insectos incluídas, es un problema.

Mapa original del Exilio

El mapa original del Exilio. Qué vacío me parece ahora.

No es un problema particular de los mapas, sino de cualquier imagen. Para dar calidad y permitir mucho detalle necesitas mucha resolución. Lo pueden ver en las cámaras digitales: empezamos en los 2 megapixels y ahora vamos por los 14, en cámaras “de turista”. Con todos esos megapixels puedes imprimir las fotografías a gran calidad/tamaño, y saldrán todos los detalles. Para que empiece a pixelar una imagen así necesitas ampliarla mucho, muchísimo. La calidad en sí de la imagen depende de más cosas (la óptica, por ejemplo), pero eso ya es otro tema del que no sé ni papa. Les evitaré la vergüenza ajena de verme intentar explicarlo.

Ídem para las televisiones. Quien haya visto una película en DVD y comparado con una en Blu-Ray lo entenderá. Un DVD tiene una resolución de 720×576 pixels; Blu-Ray (en formato “Full HD”), 1920×1080. No hay color. En Blu-Ray le puedes contar los poros de la cara a los actores.

Por todo esto, la primera versión del mapa del Exilio fue un bitmap de 3000×3000 pixels. De ahí recorté una gran parte para dejar el continente principal, con lo que el resultado quedó como vieron en el primer post sobre el Exilio.

Inkscape al rescate

Una parte de ese mapa está hecha con Inkscape, un programa de dibujo vectorial. Flash de historia informática: el primer programa que popularizó este concepto fue Corel Draw, años ha. Con un programa de dibujo vectorial no se trabaja con pixels, sino con nodos y figuras. Es mi forma horrible de explicarlo; mejor lean la entrada de Wikipedia sobre gráficos vectoriales para entenderlo.

En un dibujo vectorial no guardas unos pixels que van de una coordenada a otra, sino dos nodos unidos por una línea, o un triángulo de borde negro y relleno color rojo. Si haces zoom, el programa calcula cómo se vería el dibujo con la nueva magnificación, y lo muestra. En la práctica, esto sirve para tener “zoom infinito”, tanto hacia abajo (ampliando) como hacia arriba (disminuyendo). Puedes añadir todo el detalle que quieras, y redimensionar la imagen a tu gusto. Siempre se verá perfecta, a cualquier resolución.

Pero el dibujo vectorial no es la panacea. Muchos de los efectos posibles en los bitmaps no se pueden aplicar en el dibujo vectorial. Por eso se sigue usando Photoshop para retocar las fotos de las modelos de las revistas, y no Illustrator (el programa de dibujo vectorial que más he visto mencionado por ahí). Aparte, guardar tantos datos y redibujarlos constantemente es caro en términos computacionales. Con los bitmaps tienes toda la potencia de tu tarjeta gráfica para hacer escalados, pero con un dibujo vectorial es la CPU quien tiene que “comerse” el trabajo. En casa, en un Phenon 945 de cuatro cores, uno de ellos trabaja constantemente para atender a mis caprichosas peticiones de zoom y unzoom. Lo maltrato bastante. Soy una mala persona.

En cualquier caso, para mapas en blanco y negro o en pocos colores se pueden conseguir buenos resultados con el dibujo vectorial. No pensaba ni intentarlo, pero descubrí un fantástico tutorial en Cartographers’ Guild de cómo hacer montañas rápidamente en Inkscape (creo que necesitan tener usuario para verlo), y lo probé con el mapa que tenía. La prueba progresó y acabé por trazar (pasar de bitmap a vectorial) el mapa del continente y dibujar sobre él las montañas, ríos, regiones, nombres, etc.

Para trazar los bordes del continente usé uno de los mapas generados por planet, en blanco y negro y sólo con el contorno de los continentes. Una de las maravillas de este pequeño programita es que permite generar varios tipos de mapa del mismo planeta, en varias proyecciones. Si no fuera por eso, todo hubiera sido más difícil.

El resultado no es del todo bueno. Hay bastantes imperfecciones, aún habiendo eliminado a mano muchas. Le echo la culpa a lo intrincado del contorno generado por planet y al trazador de Inkscape, que hace lo que puede. Quizás en algún momento intente refinarlo más, pero lo he intentado un par de veces a base de eliminar o recolocar nodos y casi lo estropeo del todo. O sea: not likely. Lo más probable es que se quede como está.

A estas alturas habrán dejado de leer o se estarán preguntando qué pinta tiene el mapa. Pues bien, helo aquí:

Mapa del Exilio, 100dpi

Mapa del Exilio hecho con Inkscape. Exportación a 100dpi.

Pinchen en la imagen para verla a tamaño real. El borde arrugado del “lienzo” es cutre, pero fue fácil de hacer. Es lo único bueno que puedo decir. Usé un rectángulo, al que añadí nodos y luego fractalicé.

Lo que les he puesto ahí es una versión en PNG de 100 puntos por pulgada (o dpi). Si quieren, también tienen la versión “normal” a 200dpi y la “XL” a 300dpi. Yo uso la normal para referencia. La de 300dpi la saqué más que nada para ver qué tal quedaba. Y fue útil, porque algunos efectos extraños que no veía en Inkscape se revelaron al exportar en alta resolución.

La versión vectorial es un SVG de más de 1MB. Como es un XML se puede comprimir y queda en bastante menos, pero todavía no le he quitado toda la basurilla que tiene (bocetos de montañas, textos para copiar y pegar estilos, etc.) y no la pondré por aquí. Cuando tenga una versión limpia actualizaré este post y podrán verla. Supongo que se podrá cargar con otros programas (en teoría, SVG es un estándar), pero no prometo nada.

Mejor en colores

¡Pero no acaban aquí las maravillas! Unos días más tarde, estaba browseando (¡sufre, Cervantes!) el foro de CG y vi el mapa que estaba haciendo bartmoss sobre la Antártida. También con Inkscape, todo vectorial. Me gustó, y sobre todo me gustaron los colores. Decidí usarlos para dar algo más de vistosidad al mapa del Exilio.

Encontré un problema inesperado: por cómo funciona el trazador de Inkscape, lo que yo tenía no era un trayecto cerrado en el que pudiera definir un color de relleno (lo que pasa, por ejemplo, con un círculo o un cuadrado). Era más bien un conjunto de trayectos superpuestos cuyo relleno estaba en el borde mismo. Después de un par de pruebas poco exitosas (debido a mi escaso Inkscape-fu), usé la herramienta de Bucket fill para rellenar a mano el contorno. Lancé Gimp en otro escritorio virtual y copié uno de los colores del mapa de la Antártida de bartmoss para el relleno.

En Inkscape, al rellenar creas un objeto nuevo, el relleno en sí. Puedes hacer con él lo mismo que con los demás: moverlo, rotarlo, etc. Y también puedes definir un borde, que es lo que hice usando otro de los colores del mapa de bartmoss. Había hecho un par de pruebas antes con el Bucket fill y por accidente había visto que un borde de otro color en el relleno quedaba bastante bien, así que ahora lo hice intencionadamente. Y éste fue el resultado:

Mapa del Exilio en color, 100dpi

Mapa del Exilio en color. Mucho más bonito, ¿eh?

(imagen exportada a 100dpi; también hay versión en 200dpi y 300dpi)

Como ven, también he oscurecido un poco el terreno bajo las montañas. No quedan del todo bien, y no sé muy bien por qué. Estoy barajando varias posibilidades, como aplicar gradientes en lugar de colores planos, a ver si mejora. Pero estoy un poco perdido. Quedará así para siempre, me temo.

Estuve probando a cambiar los colores de varias regiones usando el mismo método (pintando una zona y difuminándola mucho para que se funda con el fondo), pero no me acababa de gustar el resultado. Ahora mismo el color no es muy fiel al contenido (el “Desierto Deslumbrante” debería ser casi blanco, y “el País de la Hierba Azul” debería ser … pues eso, azul), pero hasta que encuentre una forma de colorearlo que me guste lo voy a dejar así. Menos es más.

El mapa tiene otros defectos. Por ejemplo, hay zonas del continente que no rellené en su momento, y como mi reputación de vago es legendaria, ahora están en blanco porque no me molesté en arreglarlo. Aparte, aún faltan muchos nombres, y me gustaría añadir pequeños dibujos en algunos sitios: fortalezas, acantilados, cosas así. Miniaturas a modo de mapa turístico.

Pero todo se andará. De momento, agradezco cualquier comentario o sugerencia que quieran dejar por aquí.

Powered by WordPress & Theme by Anders Norén