Diagramas de relaciones con Graphviz

El artículo de hoy será un poco técnico. Servirá como introducción a un lenguaje que permite realizar gráficos. El objetivo es hacer esquemas de relaciones entre personajes/facciones sin tener que dibujarlos uno mismo, de forma que al añadir nuevos personajes o relaciones no habría que estar redibujando o movimiento elementos manualmente como pasaría con otros métodos.

De camino, veremos como ejemplo los personajes que generamos a través de la improvisación en la partida de Vampire City: Génova Oscura, que se puede encontrar en YouTube.

Conocimientos necesarios

Para poder seguir el artículo necesitarás algunos conocimientos de informática.

Deberás ser capaz de instalar programas, e instalar en su ordenador un paquete de programas llamado Graphviz.

También deberías ser capaz de usar la línea de comandos. No es tan difícil como parece, te animo a que busques cómo acceder a ella en tu sistema operativo (busca “línea de comandos linux”, “línea de comandos windows”, etc.). Actualización También puedes acceder a la herramienta a través de una web, evitando instalar programas o usar la línea de comandos. Abajo doy la dirección.

Por último, debería ser capaz de usar un editor de texto, como gedit, kate el Bloc de Notas de Windows o TextEdit.

¿Qué queremos?

Queremos hacer algo parecido a los esquemas de coterie o esquemas de relaciones que aparecían en los primeros nocturnos del Mundo de Tinieblas. Eran unos gráficos en los que aparecía el retrato de cada personaje de un grupo y unas flechas indicaban qué relación había entre cada uno y todos los demás.

En nuestro caso, será sin retratos, pero ya que lo estoy pensando para aventuras propias, donde la mayoría de las veces los PNJs no tienen retratos, nos valdrá bastante bien.

La ventaja será que conforme cambien las relaciones o aparezcan nuevos personajes, se podrán añadir a nuestro diagrama sin preocuparnos de cómo se distribuirán espacialmente.

Paso 1: El armazón

El programa dot necesitará que encierres la definición del diagrama dentro de una estructura. Lo primero que necesitas escribir en el fichero de texto es:

digraph Personajes {

}

Todo lo que añadiremos después irá entre la llave de apertura “{” y la de cierre “}”. “Personajes” es el nombre del gráfico, si quieres hacer varios les puedes llamar “Primogenitura”, “Brujah” o “Manada 11 de Agosto”.

Paso 2: Nodos: los personajes

Los elementos principales de nuestro diagrama serán los personajes. En grafos estos elementos se llaman “nodos”.

Para añadir nodos, esto es, personajes, sólo tienes que escribir los nombres de los nodos.

Ejemplo:

Marcus;
Victor;
Elizabeth;

Los “;” siempre estarán al final de cada línea que escribamos del diagrama. Recuerda que va todo metido dentro de las llaves.

Ahora vamos a probarlo. Guarda el fichero, por ejemplo con el nombre relaciones.dot

Ahora desde la línea de comandos nos situaremos en el lugar donde está ese fichero y escribiremos:

$ dot relaciones.dot -Tpng > relaciones.png

(Nota: el símbolo $ no se escribe, por convención representa el inicio de una orden en una línea de comandos)

Actualización: Si no te sientes seguro con la línea de comandos, podéis usar un interfaz web para Graphviz.

Esto sirve para generar un fichero PNG (hay muchos tipos posibles) con esta forma.

relaciones-2

Si pruebas esto con tus personajes, te vas a encontrar con un problema: en cuanto pongas espacios en blanco, acentos, eñes o cosas similares te va a dar un error al generar el gráfico. Esto es porque en realidad “Victor”, “Marcus” o “Elisabeth” no son los nombres de los personajes, sino el nombre que internamente tiene el programa para reconocer a los nodos. Para los nombres de verdad usaremos la etiqueta “label”.


Victor [label="Víctor"];
Marcus [label="Marcus Velson"];
Elizabeth [label="Elizabeth la Sangrienta"];

También puedes añadir comentarios. Una línea que empiece por “//” será ignorada por el programa, pero a ti puede serte útil, especialmente si vas a tener muchos personajes en el gráfico.


// Lasombra
Victor [label="Víctor"];
Marcus [label="Marcus Velson"];

// Tzimisce
Elizabeth [label=”Elizabeth la Sangrienta”];

// Toreador
Mona;

relaciones-2-2

Paso 3: Relaciones

Para relacionar dos personajes la sintaxis es sencilla, tan sólo hace falta escribir el nombre (de sus nodos, no el label) del primero, una flecha “->” y el nombre del segundo. Por ejemplo:


Victor->Marcus;
Marcus->Elizabeth;
Victor->Mona;

relaciones-3-1

Pero esto de por sí es poco informativo, nos dicen qué personajes están conectados, pero no qué tipo de relación entre ellos. De nuevo, con “label” puedes ponerle una etiqueta a dicha relación.

Aquí debes pensar qué quieres representar. Para un gráfico que nos indique qué relación une a los personajes, sólo nos hace una flecha por cada relación.


Victor->Marcus [label="traicionero"];
Marcus->Victor [label="opresor"];

Marcus->Elizabeth [label=”aliada útil”];
Elizabeth->Marcus [label=”ayuda para ascender”];

Elizabeth->Mona [label=”instrumento”];
Mona->Elizabeth [label=”amor-odio”];

Victor->Mona [label=”enamorado”];
Mona->Victor [label=”posible ayuda”];

relaciones-3-3

Como puedes ver, el programa dot se ocupa de organizar los nodos y las flechas de forma que el diagrama sea lo más claro posible (algo que puede ser imposible si sobrecargas demasiado los personajes y las relaciones). Cada vez que se añadan o quiten personajes o relaciones, la organización del diagrama puede cambiar sustancialmente.

En resumen, el fichero final (del primer caso) quedaría así:


digraph Personajes {
// Lasombra
Victor [label="Víctor"];
Marcus [label="Marcus Velson"];

// Tzimisce
Elizabeth [label=”Elizabeth la Sangrienta”];

// Torador
Mona;

// Relaciones
Victor->Marcus [label=”sire”];
Marcus->Elizabeth [label=”aliado”];
Elizabeth->Mona [label=”vínculo de sangre”];
Victor->Mona [label=”enamorado”];

}

Más características

dot y graphviz tienen muchas, muchas más características, entre las menos complicadas son formas y colores diferentes para nodos y flechas. Pero para iniciarnos hoy va de sobra con lo que hemos aprendido.

Otros usos

En realidad, hay muchas cosas para las que les puedes sacar partido a los diagramas. Para empezar, puedes usar el mismo concepto para relaciona facciones en lugar de personajes concretos.

Otro uso rolero útil es relacionar escenas o pistas. En la partida de investigación de Luca en Santa Lupita quería que los personajes tuvieran libertad de movimiento y no investigar linealmente una pista tras otra. Así que hice siempre por cada pista hubiera varias que condujeran hacia ella. Para asegurarme, hice un diagrama con cada pista por nodo y para aquellos nodos que no recibían suficientes flechas, inventé conexiones con otras áreas de investigación.

Otra utilidad clásica para partidas de Vampiro puede ser representar genealogías vampíricas. Tan sólo hay que hacer una flecha de cada sire a cada uno de sus chiquillos.

Estoy seguro que con esta herramienta en la cabeza el Narrador puede encontrar muchos usos. Cualquier organización compleja puede ser susceptible de usar un diagrama para visualizarla.

Print Friendly
This entry was posted in Narración and tagged , , , . Bookmark the permalink.

One Response to Diagramas de relaciones con Graphviz

  1. Pingback:Luca en Santa Lupita (cómo se hizo) – Los Archivos de la Noche

Leave a Reply

Your email address will not be published. Required fields are marked *