trensim.comSimulación Ferroviaria
   

Trensimpedia :: Simulación Ferroviaria.
 
 

:: Entrar

RS:Numeración dinámica de vehículos en RS

De TrenSimpedia

(Diferencias entre revisiones)
(Generación de las texturas de las ubicaciones de los números)
 
Línea 144: Línea 144:
[[Categoría:RS|Numeraciozzn dinazzmica de vehizzculos en RS]]
[[Categoría:RS|Numeraciozzn dinazzmica de vehizzculos en RS]]
-
[[Categoría:Creación de contenidos|Numeraciozzn dinazzmica de vehizzculos en RS]]
+
[[Categoría:Creación de contenidos RS|Numeraciozzn dinazzmica de vehizzculos en RS]]

última version al 15:01 14 feb 2009

En Rail Simulator se contempla la posibilidad de que una misma malla de un vehículo, ya sea locomotora, coche o vagón, presente diferentes matrículas de forma individualizada. No es esta una técnica meramente estética, pues la matrícula personalizada de un vehículo también da nombre a éste en la simulación, lo cual se refleja en las marcas flotantes que se muestran sobre el material y se utiliza en las actividades llevadas a cabo en los escenarios.

Veamos como implementar esta técnica en nuestras creaciones:

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

Generación de las texturas de los números

Número con su canal Alpha
Antes de nada debemos proveernos de un juego de texturas para los elementos de la matrícula, típicamente los dígitos del 0 al 9. Cada número utilizará una, y sólo una, hoja de textura del estilo a la mostrada. El tamaño de los números suele ser de 32 x 64 píxeles, con el número en el color deseado sobre un fondo lo más parecido posible a la superficie sobre la que irá impreso el número, o sobre un color lo más neutro posible si el juego de números será reutilizado para varias superficies. En cualquier caso, la textura portará un canal alpha con la silueta del número lo más contrastado posible en blanco y negro.

El archivo ha de ser con formato ace y puede tener cualquier nombre, pero por convención se suele nombrar de la forma number_##.ace, donde ## indica el número o carácter representado en la textura. De esta forma, el archivo de la textura mostrada, que corresponde al número ocho, se denominaría number_8.ace.

Cabe señalar, como se verá más adelante, que además de poder reproducir números para las matrículas también cabe la posibilidad de reproducir letras y caracteres especiales.

Creación del blueprint de los números

Blueprint de un juego de caracteres para matrícula
Junto con el conjunto de texturas de números deberemos crear un archivo xml para el blueprint del juego de caracteres, que luego referenciaremos desde el blueprint del vehículo que incorpore matrículas.

El blueprint ha de ser del tipo Named texture set blueprint y puede tener cualquier nombre, pero por convención se suele nombrar con el sufijo _Digits, es decir en la forma XXXX_Digits.xml.

Este blueprint es muy simple y se compone básicamente de un conjunto de entradas S texture entry con únicamente dos parámetros en cada una de ellas:

  • Texture name - Carácter de la matrícula. Típicamente se tratará de un dígito numérico del 0 al 9, pero admite también caracteres alfabéticos o especiales.
  • Texture ID - ruta del archivo de textura asociado, dentro del Provider y del Product donde reside el blueprint.

El conjunto de Blueprint y texturas asociadas podemos tenerlo en un subdirectorio o incluso Provider cualesquieras, y de esta forma un mismo conjunto de dígitos podrá ser usado en varios vehículos.

Generación de las texturas de las ubicaciones de los números

Texturas de las ubicaciones de los números
Necesitaremos también un juego de texturas denominadas primarynumber_##.bmp donde ## indica un número de orden de un dígito de la matrícula.

Estos archivos se usarán para texturar los polígonos que recibirán los números dinámicos de la matrícula, y su contenido es intrascendente, pero su nombre determina cual de los caracteres de la matrícula se ubicará en cada uno de dichos polígonos.

Necesitaremos tantas de estas texturas como la longitud máxima de dígitos de la matrícula. Para una matrícula de cuatro dígitos (p.e. 1615) necesitaremos cuatro texturas: primarynumber_0.bmp, primarynumber_1.bmp, primarynumber_2.bmp y primarynumber_3.bmp. La longitud máxima de caracteres de una matrícula no está indicada en la documentación del simulador, pero personalmente he ensayado con 15 dígitos sin problemas.

La textura primarynumber_0.bmp se utilizará para texturar el polígono que deberá contener el último dígito de la matrícula (unidades). La textura primarynumber_1.bmp se utilizará para el polígono que contendrá el penúltimo dígito de la matrícula (decenas). La textura primarynumber_2.bmp referenciará el antepenúltimo dígito de la matrícula (centenas) y así seguiremos con el resto.

El contenido de las texturas es irrelevante. Se recomienda usar texturas de 32x 32 pixels de un gris medio uniforme (128, 128, 128). No obstante, mi recomendación es que usemos una textura con un dígito impreso (el orden de primarynumber), lo cual nos permitirá, como veremos más adelante, identificar fácilmente la textura que hemos usado en cada polígono de la matrícula.

Si disponemos de la utilidad KRS Bin Convert podemos importar las texturas que al respecto encontraremos en la ruta "Rail Simulator\Assets\Kuju\RailSimulator\System\Textures".

Generación del archivo de esquema de numeración

Este es un archivo en formato csv (fichero de texto con los campos separados por comas) que contendrá la colección de matrículas válidas para el material en cuestión.

Podemos crearlo y editarlo con cualquier editor de texto como Notepad, o con más comodidad con alguna de las múltiples utilidades freeware disponibles como Notepad++.

El contenido se estructura en registros con dos primeros campos numéricos, que necesariamente deben ser cero, y un campo alfanumérico que contendrá una a una todas las matrículas posibles:

0,0,1601
0,0,1602
0,0,1603
0,0,1604
0,0,1605
0,0,1606
0,0,1607
etc...

El orden en que las matrículas aparecen en este archivo no es significativo en relación al orden como el simulador asigna las matrículas al material que se incorpora en un escenario, puesto que el simulador escoge las matrículas de forma aleatoria de entre las que se especifican en este archivo. La asignación aleatoria comentada es no repetitiva hasta agotar las matrículas posibles, pasado este punto, la adición de más material al escenario provocará el reinicio del proceso de asignación de matrículas, repitiendo éstas respecto a las ya asignadas.

Un vehículo de un escenario mantendrá la matrícula asignada con independencia de que podamos alterar posteriormente el contenido de este archivo eliminando, por ejemplo, la matricula en cuestión. Si hemos efectuado cambios en el archivo csv y queremos que éstos se reflejen en el material ya existente deberemos eliminar dicho material y volverlo a incluir en el escenario.

Las matrículas reseñadas en este archivo pueden contener caracteres no numéricos, y ser de diferente longitud. Por ejemplo, El Santander Mediterráneo tuvo 15 coches de primera clase encuadrados en la serie AA-1 a AA-15. Parte del archivo csv correspondiente sería:

...
0,0,AA-8
0,0,AA-9
0,0,AA-10
0,0,AA-11
...

Obsérvese que las dos primeras matrículas mostradas tienen una longitud de cuatro caracteres, mientras que las dos últimas tienen una longitud de cinco caracteres. Esto no es ahora relevante (salvo por conocer que podemos hacerlo) pero más adelante deberemos tenerlo en cuanta al implementar la matrícula en la malla del coche.

Composición de la matrícula

A la hora de diseñar el contenido del archivo csv pudiera ser que decidiéramos incluir en él únicamente la parte variable y numérica de la matrícula, dejando la parte invariable fijada en la textura del vehículo. De esta forma, para la subserie de "Mikados" Renfe 141-2101 a 141-2125 podríamos incluir en el archivo csv tan sólo los dos últimos caracteres (01 a 25) dado que el resto de la misma no se altera. Esto, aunque es perfectamente factible, nos puede reportar dos problemas a la hora de usar el modelo en el simulador:

  • Por un lado la identificación de estas locomotoras en el simulador puede no ser reconocible para el jugador. De esta forma la 141-2109 el juego la reconocería tan sólo como 09.
  • Por otro lado, si otro autor modelase la Confederación e hiciera lo mismo un jugador que instalase ambas obtendría para la 242-2009 la identificación 09 también, con lo que no podría distinguir en las instrucciones si se trata de una o de otra locomotora.

Incluso la existencia del guión está plenamente justificada, y no tan sólo por costumbre, pues podemos de esta forma incluir en las matrículas la indicación de locomotora fuelizada: 242F2009 para la Confederación, pudiendo tener el carácter "F" asociada una textura con la letra efe sobre el guión.

Imagen:Aviso.gif Aviso

Por tanto la recomendación es que al componer el archivo csv se incluya en cada matrícula toda la información que ésta contenga, con el fin de poder identificar de forma única los vehículos en la simulación.

Modificación de la malla del vehículo

Comentaremos la creación de una matrícula, entendiendo que si deseamos más de una par el vehículo tan sólo debemos repetir los mismos pasos para cada una de ellas.

Crearemos un polígono dividido en tantas celdas como dígitos deba tener la matrícula, a semejanza de la imagen adjunta, o bien crearemos los polígonos por separado, y los situaremos y fusionaremos un una única pieza a efectos de manejabilidad, aunque cada dígito puede ser un polígono separado.

Al grupo de esta pieza lo denominaremos primarydigits_##, donde ## será el número de dígitos que componen la matrícula, en el presente caso sería primarydigits_8. Se da por entendido que al nombre del grupo se antepondrá el prefijo de número de LOD y distáncia de visión para la matrícula, por ejemplo, 1_0050_primarydigits_8.

Matrícula texturada
A continuación pasaremos a texturar cada polígono de la matrícula con las texturas de ubicaciones de números generadas anteriormente. Para el último dígito de la matrícula (primero por la derecha) usaremos la textura primarynumber_0.bmp, para el penúltimo dígito usaremos la textura primarynumber_1.bmp, para el antepenúltimo la textura primarynumber_2.bmp, y así sucesivamente. Podemos texturar el polígono completamente con la textura, o seleccionar una parte de dicha textura, en el caso que los archivos de las texturas de los números contengan más de una tipografía del dígito de la matrícula.

De estos conjuntos de dígitos para la matrícula podemos tener tantos como queramos en el mismo grupo, pues necesitaremos uno para cada ubicación de la matrícula del vehículo:

  • lado derecho, lado izquierdo
  • en la caja, en el bastidor
  • en los laterales, en los testeros
  • etc.

Para todos estos elementos de matrícula en que los dígitos representa que están pintados sobre el chasis del vehículo es recomendable usar el shader TrainBasicObjectDiffuse.fx.

Por contra, en el caso de que estemos componiendo números que deban iluminarse por la noche, como en los indicadores luninosos de matrícula de las locomotoras, usaremos el shader Tex.

Modificación del blueprint del vehículo

En el blueprint del vehículo al que le hemos incorporado la numeración dinámica de las matrículas debemos introducir dos modificaciones para informar de:

  • Archivo csv a usar con los valores de las matrículas válidas para este vehículo.
  • Ruta del Blueprint de las texturas de los dígitos de la matrícula a usar.

Numbering list - Este apartado se encuentra en la sección Rail vehicle component, y aquí deberemos informar de la ruta y el nombre del archivo csv con la lista de matrículas válidas.

Primary named texture set - Este apartado se encuentra en la sección Render component, y aquí deberemos informar el Provider, Product y ruta del blueprint que contiene la definición de las texturas con las tiografías para los dígitos de la matrícula. Como se puede observar, en este caso podemos hacer referencia a un Provider y Product diferente de los de nuestro vehículo, lo cual permite tener un juego de caracteres para matrículas compartido entre varios vehículos, cosa común para diferentes vehículos de una misma compañía en una época determinada.

Consideraciones de diseño

Matrículas no numéricas

Nada nos impide que la matrícula esté compuesta tanto por caracteres numéricos como por caracteres alfabéticos o especiales.

Por otro lado a un carácter de la matrícula le podemos asociar una textura también "especial", a título de ejemplo se muestra una textura que he usado asociada al carácter guión "-" para un vagón Renfe.

Por tanto, no debemos limitarnos a las partes numéricas en el momento de definir las matriculas de un vehículo, y sí tener presente que el texto que se define en el archivo csv "tal cual" lo usará el simulador para identificar frente al jugador el vehículo en cuestión. Por tanto seamos lo más claros posible para evitar incertidumbre en las matrículas.

Matrículas de diferentes longitudes para un mismo vehículo

Podemos eso sí tener tantos grupos de matrícula como deseemos con diferentes longitudes. Recordemos que cada grupo se denominará primarydigits_##, donde ## será el número de dígitos que componen la matrícula.

Supongamos que tenemos entre manos un vehículo que tiene las siguientes matrículas definidas en su archivo csv:

0,0,AA-8
0,0,AA-9
0,0,AA-10
0,0,AA-11

Podemos crear dos grupos de matrículas que denominaremos primarydigits_4 y primarydigits_5. Solamente uno de ellos será visible en un momento dado en la simulación. El grupo primarydigits_4 se visualizará cuando el vehículo tenga asociada una de las dos primeras matrículas, y el grupo primarydigits_5 se visualizará cuando el vehículo tenga asociada una de las dos últimas matrículas.

De esta forma podemos diseñar unos conjuntos de matrícula con la distribución de dígitos que precise cada una de ellas.

Diferentes tipos de caracteres en un mismo vehículo

Diferentes secuencias de numeración en un mismo vehículo