trensim.comSimulación Ferroviaria
   

Trensimpedia :: Simulación Ferroviaria.
 
 

:: Entrar

RS:Descripción básica del sistema de señales en RS

De TrenSimpedia

Este documento es una explicación del contenido de parte de la documentación oficial de Rail Simulator, en particular de los documentos de las Developer Tools:

  • 3.01 Signal Setup & Scripting Guide
  • 3.02 Signalling Interface Parameters

Icono de en curso

Este artículo o sección se encuentra en fase de desarrollo por parte de un contribuidor. Es posible que la información suministrada aquí no sea completa. Ampliándolo ayudarás a mejorar la TrenSimpedia, pero recuerda que alguien posiblemente ya tiene en mente completarlo.


Contenido

Introducción

Cada señal en el mundo ferroviario del simulador es una instancia de un determinado modelo de señal, que define el tipo de señal. El blueprint controla todo, desde el modelo 3D que se utiliza en el juego, el nombre que aparece en el Editor y el script LUA que se utilizará para controlar el comportamiento de la señal.

Estos scripts reaccionan a acontecimientos tales como que un tren rebase la señal o la recepción de un mensaje emitido por otra señal, y, en consecuencia, cambiar el aspecto de la señal, conmutar las luces o activar cualquier animación sobre las piezas móviles que pueda tener la señal.

En este artículo se pretende mostrar cómo configurar las señales mediante scripts, y cómo actúan las principales funciones disponibles en lo scripts.

Funcionamiento del sistema de señalización

El sistema de señalización en Rail Simulator está basado en la existencia de elementos asociados a las vías, las señales, que se activan mediante eventos y que pueden intercambiar mensajes usando la propia red de vías como encaminadora o enrutadora de estos mensajes. Adicionalmente, una composición de tren puede ser a su vez receptora o generadora de mensajes.

Las señales

Son elementos que tienen obligatoriamente un enlace con la vía, el denominado "Link 0". Es en este punto de la vía, el que está asociado al link 0, el que dispara eventos asociados al paso de una composición, o el punto en el que recive o genera mensajes para el resto de la señalización.

Opcionalmente, una señal puede tener uno o más enlaces adicionales a vías, los denominados "Link 1", "Link 2", "Link 3", etc.

Físicamente una señal puede ser todo aquello que deseemos, pero típicamente entenderemos por señales a:

  • Las señales principales o de parada absoluta.
  • Las señales avanzadas, de repetición o de distancia.
  • Los indicadores de agujas y los de dirección de ruta.
  • Las balizas de los sistemas de señalización.

En resumen, una señal es todo aquel objeto asociado a la vía que puede actuar:

  • ante el paso de una composición
  • ante el cambio de una ruta
  • o bien intercambiando mensajes

Los eventos de las señales

El código asociado a una señal no está en ejecución normalmente. Éste tan sólo se activa ante la reacción frente a un evento que dispara una parte de dicho código: las denominadas funciones. Estas funciones pueden ser invocadas por cuatro tipos de eventos:

Eventos de paso de una composición

Cuando una composición en su movimiento por las vías alcanza el punto donde está situado el "Link 0" de una señal, la simulación invocará una función de la señal para activar notificar de dicho evento.

En esta situación el código de la señal puede distinguir:

  • Si la composición está rebasando el "Link 0" de la señal en el sentido de la marcha (de la señal), es decir en la dirección de la flecha que muestra el "Link 0".
  • Si la composición está rebasando el "Link 0" de la señal en sentido de contramarcha (de la señal), es decir en la dirección contraria a la flecha que muestra el "Link 0".
  • Si el elemento de la composición que ha rebasado el "Link 0" es la cabeza del tren en el sentido de la marcha de la composición (sea este elemento una locomotora o no). Es decir, el tren está empezando a rebasar la señal.
  • Si el elemento de la composición que ha rebasado el "Link 0" es la cola del tren en el sentido de la marcha de la composición (sea este elemento una locomotora o no). Es decir, el tren ha terminado de rebasar la señal.

Eventos de recepción de un mensaje

Cuando un mensaje que está circulando por las vías alcanza un enlace de la señal, una función es invocada y puede:

  • Leer el mensaje y sus parámetros, y destruir el mensaje (para que no siga circulando).
  • Leer el mensaje y sus parámetros, y dejar que siga circulando.
  • Ignorar el mensaje y dejar que siga circulando.

Eventos de cambio de ruta

Cuando una señal además del enlace principal a vía, el "Link 0", disponen de otros enlaces, se establece un estado de "conexión" entre estos enlaces adicionales y el "Link 0".

Se disparará un evento cuando, por la manipulación de las agujas que puedan haber (una o más) entre el enlace principal y alguno de los enlaces adicionales, se produce un cambio del estado de su "conexión". Es decir, deja de existir una ruta válida entre los dos enlaces, o bien se establece una ruta válida entre ellos.

Este evento disparará una función asociada al enlace que ha cambiado su estado.

Eventos del sistema

Además de los eventos señalados anteriormente, y que están ligados al propio sistema de señalización, el simulador puede disparar otros eventos que invoquen funciones especiales de las señales. A título de ejemplo:

  • Inicialización del sistema al comienzo de una sesión o actividad.
  • Actualización periódica de las señales, por ejemplo al final de cada frame de visualización.
  • ...

Los mensajes

Los mensajes los generan siempre las señales, posiblemente inducidos por la lógica asociada a un evento.

Los mensajes se pueden generar:

  • En el sentido de la marcha de la señal (dirección de la flecha del "Link 0").
  • En sentido de contramarcha de la señal (dirección opuesta al de la flecha del "Link 0").
  • En ambas direcciones.

Los mensajes "circulan" por las vías hasta que una señal los intercepta y destruye, o hasta que llegan a una topera o a una interrupción de la ruta por un aguja no establecida, o por un puente giratorio no orientado.

Frente a una aguja tomada de punta, los mensajes seguirán la ruta establecida por la aguja, e ignorarán la ruta o rutas alternativas que pudieran existir.

Los mensajes pueden tener parámetros que los identifiquen y/o cualifiquen.

Los trenes

Adicionalmente a lo expuesto, los scripts de simulación de los trenes pueden también interactuar con los mensajes y tiene a su vez eventos asociados al sistema de señalización. Esto ha de permitir los sistema embarcados a bordo de las locomotoras.

Construcción de señales

Particularidades a tener en cuenta en la construcción del modelo de la señal

Blueprints para señales

Tipos de blueprint para señales y sus parámetros esenciales

(...)

Estructura de nodos

Para que los scripts de las señales puedan interactuar correctamente con éstas, deben referenciar unos nodos determinados que les permitan modificar el estado de las señales. Dichos nodos pueden ser:

Luces

Estos nodos están definidos en el modelo 3D de la señal, como luces glow, y el script debe conocer los nombres que el autor del modelo ha dado a cada punto de luz que deba activar y/o desactivar.

Para ello convendría establecer una convención de nombres que sigan los nodos de luces de las señales. Más que definir los colores de las luces, sería mejor definir los aspectos de las señales, y que el modelo determine la posición y color de cada una de las luces implicadas en dicho aspecto:

LucesNombre de NodoPosibles luces (p.e.)
Parada absolutaSGASP_STOPRojo. Rojo y rojo.
Vía LibreSGASP_CLEARVerde. Blanco.

Animaciones

Los nodos de las animaciones se definen en el blueprint, aspecto éste que no es tan crítico pues puede ser subsanado en caso necesario.

No obstante, convendría también definir unos nombres de nodos establecidos para que un script pueda ser genérico a varias señales si es preciso.

Acción de la animaciónNombre de NodoObservaciones
Cerrar señalSGANI_STOPnnSiendo nn un valor numérico de dos posiciones que define el número de brazo de una señal de múltiples brazos. Si la señal tiene un único brazo se incluirá igualmente este valor y será 01.
Abrir señalSGANI_CLEARnnSiendo nn un valor numérico de dos posiciones que define el número de brazo de una señal de múltiples brazos. Si la señal tiene un único brazo se incluirá igualmente este valor y será 01.