D3D:Migración a RS de un vehículo ferroviario
De TrenSimpedia
(→Sombra bajo el vagón) |
(→Dotación de faroles del vagón) |
||
(57 ediciones intermedias no se muestran.) | |||
Línea 1: | Línea 1: | ||
- | + | Para el seguimiento de la migración mostrada en el presente artículo se recomienda la lectura previa del artículo [[D3D:Migración a RS de un edificio sencillo|Migración a RS de un edificio sencillo]], pues algunos de los conceptos o procedimientos allí mostrados se darán por sabidos en el presente caso. | |
- | + | ||
- | Para el seguimiento de la migración mostrada en el presente artículo se recomienda la lectura previa del artículo [[D3D:Migración a RS de un edificio sencillo|Migración a RS de un edificio sencillo]], pues algunos de los conceptos o procedimientos allí mostrados se | + | |
==Descripción del modelo== | ==Descripción del modelo== | ||
Línea 47: | Línea 45: | ||
==Importación en 3D Canvas== | ==Importación en 3D Canvas== | ||
- | [[Imagen:Beristain_Migr01.jpg|thumb|Vista en Canvas 3D]]Abrimos el programa [[D3D:3D Canvas|3D Canvas]] v7.1.2.0 (o superior), con los Trainworks activados, e importamos el archivo ya existente, del proyecto | + | [[Imagen:Beristain_Migr01.jpg|thumb|Vista en Canvas 3D]]Abrimos el programa [[D3D:3D Canvas|3D Canvas]] v7.1.2.0 (o superior), con los Trainworks activados, e importamos el archivo ya existente, del proyecto del vagón en TSM, mediante '''File > Import > Trainworks > Trainsim Modeler (.dst)'''. |
Tras seleccionar el archivo .dst a abrir, aparecerá una ventana de opciones de la importación. | Tras seleccionar el archivo .dst a abrir, aparecerá una ventana de opciones de la importación. | ||
Línea 63: | Línea 61: | ||
La corrección en este caso es simple. Basta ir en TSM a la pieza de la suspensión del vagón, seleccionar los polígonos de las zapatas del freno y separar éstos del resto de la pieza mediante el comando '''Split Part'''. Una vez modificado en TSM el archivo original podemos proceder a su importación sin problemas. | La corrección en este caso es simple. Basta ir en TSM a la pieza de la suspensión del vagón, seleccionar los polígonos de las zapatas del freno y separar éstos del resto de la pieza mediante el comando '''Split Part'''. Una vez modificado en TSM el archivo original podemos proceder a su importación sin problemas. | ||
- | Como de costumbre, la escena generada en Canvas se verá oscura y deberemos "iluminarla", si lo deseamos, tal como ya se ha descrito en el caso de la [[D3D: | + | Como de costumbre, la escena generada en Canvas se verá oscura y deberemos "iluminarla", si lo deseamos, tal como ya se ha descrito en el caso de la [[D3D:Migración_a_RS_de_un_edificio_sencillo#Corrección_de_la_visualización_en_Canvas|Migración de la Torre de Enclavamientos]]. |
La escena resultante la deberemos guardar en formato [[D3D:3D Canvas|3D Canvas]] para futuros usos. El mismo directorio del proyecto creado puede ser una buena opción para guardarlo. | La escena resultante la deberemos guardar en formato [[D3D:3D Canvas|3D Canvas]] para futuros usos. El mismo directorio del proyecto creado puede ser una buena opción para guardarlo. | ||
Línea 112: | Línea 110: | ||
Una vez terminada esta operación salvaremos el blueprint. Los valores más relevantes del blueprint para elementos escénicos son los siguientes: | Una vez terminada esta operación salvaremos el blueprint. Los valores más relevantes del blueprint para elementos escénicos son los siguientes: | ||
+ | |||
====Display Name==== | ====Display Name==== | ||
Línea 125: | Línea 124: | ||
====Datos de Unión entre vehículos==== | ====Datos de Unión entre vehículos==== | ||
- | + | {{Nota}} | |
+ | Este conjunto de valores permite ajustar el espacio entre vagones cuando estos están acoplados, es decir, definen la posición virtual del punto de enganche de los vehículos, independientemente de la posición del elemento que define la malla del enganche, caso de existir. | ||
+ | {{FinNota}} | ||
'''Front Pivot X''' | '''Front Pivot X''' | ||
Línea 145: | Línea 146: | ||
====Datos del Collision Box==== | ====Datos del Collision Box==== | ||
- | [[Image:Beristain_Migr10.jpg|thumb|Collision Box]]Determina las dimensiones y posición del cubo que define la zona sólida del vehículo (o ''Bounding Box''). El ''Collision Box'' se | + | [[Image:Beristain_Migr10.jpg|thumb|Collision Box]]Determina las dimensiones y posición del cubo que define la zona sólida del vehículo (o ''Bounding Box''). El cálculo del valor de las dimensiones del mismo presenta una cierta dificultad en relación a la longitud del ''Collision Box''. En principio, y por definición de la documentación, el ''Collision Box'' se debe ubicar en la caja del vehículo, excluyendo topes y rodamiento. Ver figura anexa: |
+ | |||
+ | No obstante, la longitud del mismo tiene una cierta problemática pues afecta al comportamiento de las ''físicas'' en las operaciones de enganche y desenganche del vehículo. Analizaremos esto en la descripción del parámetro '''Collision length'''. | ||
'''Collision center x''' | '''Collision center x''' | ||
Línea 176: | Línea 179: | ||
'''Collision length''' | '''Collision length''' | ||
- | Longitud del vehículo sin considerar los topes. Los valores de ''front/rear pivot point'' si tienen en cuenta los topes. | + | Longitud del ''Collision Box''. Para calcular este valor podemos partir de la longitud del vehículo sin considerar los topes. Los valores de ''front/rear pivot point'' si tienen en cuenta los topes. |
Si la longitud del ''Collision Box'' incluye los topes, al aproximarse dos vagones para acoplarse estos colisionarán y no podrá producirse dicho acople. | Si la longitud del ''Collision Box'' incluye los topes, al aproximarse dos vagones para acoplarse estos colisionarán y no podrá producirse dicho acople. | ||
- | Si la longitud | + | Si la longitud del ''Collision Box'' es inferior a la longitud entre topes, pero se halla demasiado cercana a esta longitud del vagón incluyendo los topes, ocurrirá que en dos vagones acoplados, al entrar en curvas cerradas, las esquinas de los ''Collision Box'' pueden colisionar, provocando el descarrilamiento de los vehículos. |
+ | |||
+ | Si por contra la longitud del ''Collision Box'' es muy inferior a dicha longitud entre topes, dos vagones se podrán acoplar y no presentarán problemas en las curvas, pero en la operación de acople manual con husillo, al acercarse dos vehículos, sus topes respectivos se ''hundirán'' el uno dentro del otro permitiendo que la distancia entre vagones sea inferior a la distancia de acople, y por tanto, al proceder al enganchado, los vehículos se desplazarán bruscamente, separándose, hasta la distancia entre topes indicada en los valores de ''front/rear pivot point'', produciéndose una sacudida violenta de la composición, con riesgo de descarrilamiento. | ||
+ | {{Nota}} | ||
+ | La propuesta para el cálculo de este parámetro, no oficial ni documentada por Kuju, es partir de la longitud total del vehículo entre topes y reducirla en 50 centímetros. A partir de este punto, obtener el valor final de forma empírica por el procedimiento de ''ensayo y error'' reduciendo o aumentando el valor hasta obtener unos acoples en que los topes presiones entre si sin hundimiento alguno y sin brusquedades en la operación. | ||
+ | {{FinNota}} | ||
====Bogey==== | ====Bogey==== | ||
Línea 194: | Línea 202: | ||
[[Imagen:TrainBrake.jpg|thumb|Tipos de freno en RS]]Vamos a indicar unos valores de referencia para incorporar freno a nuestro vagón. No obstante, para una simulación fidedigna del funcionamiento de estos elementos deberemos consultar en el documento ''2.02 Brake Simulation Data'' que se incluye con las [[RS:Developer Tools|Developer Tools]], donde podemos encontrar una descripción detallada de los diferentes valores que aplican en el ''blueprint''. | [[Imagen:TrainBrake.jpg|thumb|Tipos de freno en RS]]Vamos a indicar unos valores de referencia para incorporar freno a nuestro vagón. No obstante, para una simulación fidedigna del funcionamiento de estos elementos deberemos consultar en el documento ''2.02 Brake Simulation Data'' que se incluye con las [[RS:Developer Tools|Developer Tools]], donde podemos encontrar una descripción detallada de los diferentes valores que aplican en el ''blueprint''. | ||
- | Desplegamos el apartado '''Train Brake Assembley''' y pulsamos el botón ''Insert First''. De la selección que se nos abre elegimos ''Train vacuum brake blueprint''. | + | Desplegamos el apartado '''Train Brake Assembley''' y pulsamos el botón ''Insert First''. De la selección que se nos abre elegimos ''Train vacuum brake blueprint'', dado que nuestro vehículo irá dotado de freno de vacío. |
Desplegamos el subapartado ''Train vacuum brake blueprint'' que se nos acaba de crear, y también desplegamos la sección ''Brake type'' para pulsar el botón ''Insert First'' de esta última sección. Esta acción nos crea la sección ''Train vacuum brake data blueprint'' con unos valores cumplimentados por defecto, que aceptaremos tal cual. | Desplegamos el subapartado ''Train vacuum brake blueprint'' que se nos acaba de crear, y también desplegamos la sección ''Brake type'' para pulsar el botón ''Insert First'' de esta última sección. Esta acción nos crea la sección ''Train vacuum brake data blueprint'' con unos valores cumplimentados por defecto, que aceptaremos tal cual. | ||
Línea 260: | Línea 268: | ||
==Creación de sombra== | ==Creación de sombra== | ||
+ | Como se observará de la imagen anterior del vagón en el simulador, éste no produce por defecto ningún tipo de sombra. Pero incorporar este aspecto a nuestro vagón es sencillo. | ||
+ | |||
+ | Como en el presente tutorial no se pretende formar sobre la creación de objetos en [[D3D:3D Canvas|3D Canvas]] (quizás en otro momento), la recomendación es: si desearemos incluir sombra en nuestro edificio, crear las piezas que se describen a continuación en el modelo en TSM '''"antes"''' del proceso de exportación que hemos explicado, para no tener que repetir el procedimiento completo de migración. | ||
===Sombra bajo el vagón=== | ===Sombra bajo el vagón=== | ||
- | [[Imagen:Sombra.jpg|thumb|Textura para sombra]] | + | [[Imagen:Sombra.jpg|thumb|Textura para sombra]]La cantidad de luz bajo el vagón, entre los ejes, debe ser muy limitada. Más limitada que la mera proyección de la sombra del vagón. Por tanto este efecto lo llevaremos a cabo mediante la creación de un polígono, orientado hacia arriba, de dimensiones semejantes al vagón (incluyendo la anchura total del vagón y los topes), al que aplicaremos una textura como la que se muestra, de 128 x 128 pixels, negra con un degradado hacia un grís medio en el centro, y sin canal alpha ni aditamento alguno. |
+ | A este polígono le tenemos que aplicar el tipo de material '''SubtractATexDiff'''. Este material utiliza la textura a modo de filtro para llevar a cabo una operación de sustracción de brillo a los elementos que se encuentren detrás de él, siendo máxima dicha sustracción para el valor "blanco" de la textura, y mínima para el valor "negro". | ||
- | + | La textura la asignaremos al polígono en [[D3D:3D Canvas|3D Canvas]] en la solapa ''Primary Texture'' (segunda solapa de la ''Material Palette''), mientras que los ''shaders'' se les asignan a los materiales en el campo '''Rail Sim''' que encontraremos en la solapa ''Custom fields'' (última solapa de la ''Material Palette''), tras lo cual podremos aplicar el material al polígono mediante la herramienta ''Fill Tool'' o ''Paint Tool'' indistintamente. | |
- | Para la sombra hará falta un modelo similar en tamaño y posición a la | + | ===Sombra del propio vagón=== |
+ | |||
+ | El artículo [[RS:Sombras_dinámicas_en_RS|Sombras dinámicas en RS]] incide en mayor amplitud en el tema. No obstante introduciremos los pasos más básicos para dotar a nuestro vagón de sombra. | ||
+ | |||
+ | [[Imagen:Beristain_Migr11.jpg|thumb|Objeto sombra]]Para la sombra hará falta un modelo similar en tamaño y posición a la caja del vagón, pero de complejidad inferior, según las necesidades, que reproduzca aquellas partes del modelo que deseemos que produzcan sombras proyectadas, tanto sobre otros objetos y terreno, como sobre el propio objeto del proyecto. No es necesario que el objeto sombra incluya los elementos del bastidor ni rodaje, pues el polígono de oscurecimineto bajo el vagón nos impediría ver la sombra de estos elementos. | ||
- | [[Imagen: | + | [[Imagen:Beristain_Migr12.jpg|thumb|Vista en Rail Simulator]]La imagen anterior muestra el objeto sombra, que se ha ubicado en un nuevo grupo denominado '''1_0100_sombras''' (será visible sólo hasta los 100 metros, desapareciendo más allá de esta distancia). Se compone de un elemento que siluetea la caja del vagón, no incluyendo ningún otro detalle, formado por una pieza más o menos compleja pero en cualquier caso totalmente cerrada por todos sus lados. Además, a este elemento se le tendrá que asignar un material con una textura dummy (no importa como sea pues el elemento no será visible), que en este caso es de un gris medio y de 128x128 píxels, y con el ''shader'' especial '''StencilShadow.fx'''. |
La textura la asignaremos al material en la solapa ''Primary Texture'' (segunda solapa de la ''Material Palette''), mientras que los ''shaders'' se les asignan a los materiales en el campo '''Rail Sim''' que encontraremos en la solapa ''Custom fields'' (última solapa de la ''Material Palette''). | La textura la asignaremos al material en la solapa ''Primary Texture'' (segunda solapa de la ''Material Palette''), mientras que los ''shaders'' se les asignan a los materiales en el campo '''Rail Sim''' que encontraremos en la solapa ''Custom fields'' (última solapa de la ''Material Palette''). | ||
- | Bastará con volver a exportar el blueprint (no es necesario añadir ninguna información nueva) e ir al juego a observar el aspecto actual | + | Bastará con volver a exportar el blueprint (no es necesario añadir ninguna información nueva) e ir al juego a observar el aspecto actual del vagón, viendo que, como en la imagen adyacente, la sombra se proyecta sobre el pequeño andén de tierra. |
- | + | También observamos en esta imagen el efecto del polígono bajo el vagón. Este polígono, aunque no se ha comentado, se ha ubicado en el mismo grupo donde hemos definido la sombra de la caja del vagón, de esta forma ambos efectos serán visibles hasta la misma distancia, unos 100 metros, desapareciendo de la vista más allá, aunque realmente comprobaremos en el simulador que esta distancia de visión es más que suficiente. | |
==Creación del Gancho== | ==Creación del Gancho== | ||
- | Para incorporar un gancho funcional a nuestro modelo deberemos primero tener un gancho definido y exportado | + | Para incorporar un gancho funcional a nuestro modelo deberemos primero tener un gancho definido y exportado correctamente. |
+ | |||
+ | {{Nota}} | ||
+ | Aunque en este apartado hablaremos repetidamente de "Gancho", en realidad lo que incorporamos a nuestro modelo es únicamente las piezas del husillo, dado que así es el modelo que implementaremos. | ||
+ | {{FinNota}} | ||
===Obtención de un gancho funcional=== | ===Obtención de un gancho funcional=== | ||
- | La documentación que se incluye con las [[RS:Developer Tools|Developer Tools]] incluye el documento ''4.12 How to Create Couplings'' donde se explica en amplitud la forma de crear un gancho, del tipo que sea, para nuestros vehículos | + | [[Imagen:Beristain_Migr15.jpg|thumb|Vista final del vagón con el gancho en el simulador]]La documentación que se incluye con las [[RS:Developer Tools|Developer Tools]] incluye el documento ''4.12 How to Create Couplings'' donde se explica en amplitud la forma de crear un gancho, del tipo que sea, para nuestros vehículos. |
- | En los directorios de ejemplo, que las [[RS:Developer Tools|Developer Tools]] instalan en la carpeta Source del Rail Simulator, se pueden ver bajo el Provider ''Developer'', en la ruta ''...Rail Simulator\Source\Developer\Addon\RailVehicles\Couplings\3Link\Screw'', los archivos necesarios para la generación del gancho de husillo de tres estados que incorpora el material inglés, con un único problema: la textura ''3link_screw.ace'' del gancho es de un color calabaza uniforme (como en toos los ejemplos incluidos). Esto último no es mucho problema, pues junto al archivo .ace también encontraremos el archivo ''3link_screw.psd'' con las texturas originales. Bastará con abrir este archivo en Photoshop y guardarlo en formato .ace. | + | No obstante, en el presente artículo pretendemos dar una introducción a las diferentes posibilidades técnicas de Rail Simulator, por lo que en este caso, en lugar de exponer el proceso de modelado de un gancho, vamos a mostrar una forma sencilla de conseguir un gancho de husillo: el modelo inglés que se incluye en el juego. |
+ | |||
+ | En los directorios de ejemplo, que las [[RS:Developer Tools|Developer Tools]] instalan en la carpeta Source del Rail Simulator, se pueden ver bajo el Provider ''Developer'', en la ruta ''...Rail Simulator\Source\Developer\Addon\RailVehicles\Couplings\3Link\Screw'', los archivos necesarios para la generación del gancho de husillo de tres estados que incorpora el material inglés, con un único problema: la textura ''3link_screw.ace'' del gancho es de un color calabaza uniforme (como en toos los ejemplos incluidos). | ||
+ | |||
+ | Esto último no es mucho problema, pues junto al archivo .ace también encontraremos el archivo ''3link_screw.psd'' con las texturas originales. Bastará con abrir este archivo en Photoshop y guardarlo en formato .ace. | ||
Incluimos a continuación, de todas formas, el archivo .ace ya generado por si no se dispone de un editor capaz de abrir archivos .psd: [[Media:3link_screw.zip|3link_screw.zip]] | Incluimos a continuación, de todas formas, el archivo .ace ya generado por si no se dispone de un editor capaz de abrir archivos .psd: [[Media:3link_screw.zip|3link_screw.zip]] | ||
+ | |||
+ | ====Creación del blueprint del gancho==== | ||
Para tener el gancho bastará con copiar bajo nuestro Provider la ruta antes mostrada junto a todos los archivos, sustituir la textura 3link_screw.ace por la que indicamos, y abrir el blueprint del gancho (también está suministrado en el directorio señalado) y exportarlo. | Para tener el gancho bastará con copiar bajo nuestro Provider la ruta antes mostrada junto a todos los archivos, sustituir la textura 3link_screw.ace por la que indicamos, y abrir el blueprint del gancho (también está suministrado en el directorio señalado) y exportarlo. | ||
Línea 294: | Línea 320: | ||
===Uso en el modelo del gancho funcional=== | ===Uso en el modelo del gancho funcional=== | ||
- | + | [[Imagen:Beristain_Migr13.jpg|thumb]]Es necesario modificar el la malla del modelo, para dejar modelado un gancho sin los elementos del tornillo del husillo, porque estas piezas son las que se incorporan con el gancho animado como veremos a continuación. | |
- | + | Si tuviéramos modelado el gancho, como en la presente situación, eliminaremos el husillo (imagen adjunta). | |
- | + | Si por contra no tuviéramos modelado el gancho deberíamos incorporar este elemento a la malla. | |
====Modificación del blueprint del vagón==== | ====Modificación del blueprint del vagón==== | ||
- | Abriremos el Blueprint del vagón para completar la información referente al gancho y cumplimentaremos los siguientes valores: | + | [[Imagen:Beristain_Migr14.jpg|thumb]]Abriremos el Blueprint del vagón con el ''Asset Editor'' para completar la información referente al gancho y cumplimentaremos los siguientes valores: |
+ | |||
+ | '''Front coupling blueprint ID''' | ||
+ | |||
+ | Indicaremos el ''Provider'' y ''Product'' donde tengamos el gancho, y en ''Blueprint ID'' la ruta del archivo blueprint del mismo. | ||
+ | |||
+ | '''Rear coupling blueprint ID''' | ||
+ | |||
+ | Indicaremos el ''Provider'' y ''Product'' donde tengamos el gancho, y en ''Blueprint ID'' la ruta del archivo blueprint del mismo. | ||
+ | |||
+ | A continuación pulsaremos el botón ''Preview'', pues las posiciones de los husillos las tendremos que dar mediante el visor del ''Asset Editor''. Se nos mostrará la ventana de previsualización del ''Asset editor'', y si no es así deberemos minimizar el ''Blueprint editor'' para poder acceder a ella. En esta ventana observaremos nuestro vagón y en la zona de la izquierda tres ventanas desplegables. Nos deberemos dirigir a la inferior de ellas y seleccionar las entradas existentes: | ||
+ | |||
+ | '''Front Coupling Pivot''' | ||
+ | Usando el ''gizmo'' que aparece en la ventana de ''preview'' deberemos ajustar la punta de la flecha al punto donde el husillo delantero deberá ir acoplado al gancho delantero. | ||
+ | |||
+ | '''Rear Coupling Pivot''' | ||
+ | Igual que en el caso anterior, pero para el husillo y gancho traseros. | ||
+ | |||
+ | '''Front Coupling Receiving Pivot''' | ||
+ | Usando el ''gizmo'' que aparece en la ventana de ''preview'' deberemos ajustar la punta de la flecha al punto del gancho delantero donde un husillo de otro vehículo deberá acoplarse. | ||
+ | |||
+ | '''Rear Coupling Receiving Pivot''' | ||
+ | Igual que en el caso anterior, pero para el gancho trasero. | ||
+ | |||
+ | {{Aviso}} | ||
+ | Estos ajustes deberemos realizarlos con el ratón y con sumo cuidado, pues a la que nos despistemos el gizmo saltará a kilómetros de distancia de nuestro vagón. | ||
+ | {{FinNota}} | ||
+ | |||
+ | Una vez terminada la operación podemos cerrar el Asset editor y, abriendo el archivo .xml del blueprint del vagón, editar estos valores para un ajuste más preciso de la posición del husillo. | ||
+ | |||
+ | ====Uso del gancho en el simulador==== | ||
+ | |||
+ | El gancho que hemos proporcionado a nuestro vagón es de tipo manual. | ||
+ | |||
+ | Esto representa que, a diferencia del gancho automático y de cara a la jugabilidad, en lugar de enganchar el vagón por "golpetazo" de la composición contra él, deberemos aproximarnos lo más precisamente posible hasta juntar los topes y proceder al enganchado con la combinación de teclas: ''Ctrl + Mayús + C''. | ||
+ | |||
+ | El desenganchado, por contra, se realizará de la misma forma que con un gancho automático mediante el panel que aparece bajo la tecla ''F3''. | ||
==Numeración dinámica== | ==Numeración dinámica== | ||
- | + | [[Imagen:Numeros04.jpg|thumb|En rojo: ubicación de los polígonos para recepción de dígitos de la matrícula]]El artículo [[RS:Numeración_dinámica_de_vehículos_en_RS|Numeración dinámica de vehículos en RS]] explica la implementación de esta característica más ampliamente. | |
+ | |||
+ | Tras una lectura del citado artículo, procederemos a reflejar los pasos seguidos en particular para el presente vagón. | ||
+ | |||
+ | En la carpeta del propio vagón creamos un archivo csv (archivo de texto) denominado: '''Beristain_digits.csv'''. El contenido de dicho archivo es el siguiente: | ||
+ | 0,0,PN-17039(1) | ||
+ | 0,0,PN-17040(2) | ||
+ | 0,0,PN-17041(3) | ||
+ | En efecto, de este vehículo de la empresa Beristain existieron tres unidades, numeradas de la 1 a la 3, con las matrículas Renfe respectivas de la 17039 a 17041. El prefijo "PN" indicaba que se trataba de un vagón frigorífico (N) privado (P). | ||
+ | |||
+ | [[Imagen:Numeros09.jpg|thumb|60px]]También se deben crear las texturas de los dígitos. Se ha llevado a cabo esto en una ruta diferente a la del vagón para que esta numeración sirva a matrículas de diferentes vehículos de la misma compañía ferroviaria (renfe). La ruta elegida ha sido: '''Rail Simulator\Source\Pere\RenfeIII\RailVehicles\Numbers\Renfe_III''', es decir, bajo el mismo ''Provider'' y ''Product'' que el vagón, pero en una carpeta, ''Numbers'', aparte de la de nuestro vehículo. | ||
+ | |||
+ | En esta carpeta ubicaremos los archivos de texturas de los dígitos 0 a 9, de las letras P y N, y del guión. Todas ellas necesarias en las matrículas que vamos a crear. | ||
+ | |||
+ | Hay que observar, como se aprecia en la imagen adjunta de la textura del número 3, que en el mismo archivo se incluyen tres tipografías diferentes para las matrículas: | ||
+ | * en la mitad superior la tipografía a usar en el interior del rombo lateral (número del propietario). | ||
+ | * en el cuadrante inferior izquierdo la tipografía en blanco para las matrículas impresas sobre el bastidor negro. | ||
+ | * en el cuadrante inferior derecho la misma tipografía anterior, pero esta vez en color negro para las matrículas impresas sobre la caja blanca del vagón. | ||
===Modificación de la malla del vagón=== | ===Modificación de la malla del vagón=== | ||
- | + | Terminada esta fase preliminar trabajaremos en la malla del vagón para crear los elementos de matrícula: | |
+ | * Para los números de propietario bastarán elementos de un polígono, ubicados sobre el rombo del lateral. Este polígono lo texturaremos con el placeholder ''primarynumber_1.bmp'', que corresponde al penúltimo dígito de la matrícula introducida en el archivo csv (el último carácter es el paréntesis). Hay que recordar que el mapeado de la textura será para la mitad superior de la misma. | ||
+ | * [[Imagen:Numeros07.jpg|thumb]]Para las matrículas Renfe necesitaremos elementos con ocho polígonos, que texturaremos, de derecha a izquierda, con los placeholders ''primarynumber_3'' a ''primarynumber_10''. Estos elementos los repetiremos en los laterales, testeros y bastidor. Hay que recordar que el mapeado de la textura será para la mitad inferior derecha de la misma, excepto en las matrículas del bastidor en las que el mapeo será de la parte inferior izquierda de la textura. | ||
+ | |||
+ | Todas las texturaciones realizadas en los polígonos de las matrículas lo haremos asignándoles el shader ''TrainBasicObjectDiffuse.fx''. | ||
+ | |||
+ | Todos estos elementos los reuniremos en un único grupo que denominaremos '''1_0050_primarydigits_11''', dado que en el archivo csv todas las matrículas tienen once caracteres de longitud. | ||
===Modificación del blueprint del vagón=== | ===Modificación del blueprint del vagón=== | ||
+ | |||
+ | En el blueprint del vagón debemos introducir dos modificaciones en: | ||
+ | |||
+ | '''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. Recordemos que el archivo de descripción de las texturas a usar no está en la misma carpeta del vagón, como ya hemos indicado anteriormente. | ||
+ | |||
+ | ==Luces de cola== | ||
+ | |||
+ | [[Imagen:Beristain_Migr17.jpg|thumb]]RS permite disponer en la malla de un vehículo de unos grupos dinámicos (que pueden ser representados o no según las necesidades del simulador) específicos para las luces de cabeza y cola del material. En concreto: | ||
+ | |||
+ | '''Lights_fwdhead''' - para las piezas o elementos de las luces blancas de cabeza. | ||
+ | |||
+ | '''Lights_revtail''' - para las piezas o elementos de las luces rojas de cola. | ||
+ | |||
+ | '''Lights_fwdtail''' - para las piezas o elementos de las luces blancas de cola. | ||
+ | |||
+ | '''Lights_revhead''' - para las piezas o elementos de las luces rojas de cabeza. | ||
+ | |||
+ | En cada uno de estos grupos podemos incluir, tanto el halo luminoso que proyectan las luces, como aquellos elementos que deseemos que estén presentes únicamente en las condiciones requeridas. | ||
+ | |||
+ | ===Dotación de faroles del vagón=== | ||
+ | |||
+ | [[Imagen:Beristain_Migr16.jpg|thumb|Malla del vagón con la dotación de faroles en ambos testeros]]En el caso de nuestro vagón, le dotaremos de un juego completo de faroles en ambos extremos y los agruparemos consecuentemente en cada testero para asociarlos a uno de los grupos antes mencionado. De esta forma, cualquier vagón que circule en cola de una composición mostrará las reglamentarias luces de cola si desde la locomotora procedemos a encender las luces. | ||
+ | |||
+ | Estos faroles no aparecerán si el vagón circula en medio de la composición, ni tampoco aparecerán en el lado acoplado al tren del último vagón. | ||
+ | |||
+ | De esta forma siempre obtendremos un tren con luces de cola sin necesitar de un complemento adicional como un vagón ''fantasma'' con dichas luces. | ||
+ | |||
+ | Por supuesto que en una composición variada de vagones, cada uno de ellos puede tener su dotación específica de faroles en cuanto a modelo (petróleo o eléctrico) y posición específica en los portaseñales para dicho vagón. | ||
+ | |||
+ | ===Inclusión en el modelo=== | ||
+ | |||
+ | [[Imagen:Halo_rojo.jpg|thumb]]Para modelar los faroles he procedido a migrar, de la forma habitual, un juego de ellos que ya tenía en TSM y los he guardado como un archivo de escena Canvas (extensión .3dc). Una vez incorporados al vagón se ubican en el lugar elegido y se reúnen en un grupo con el nombre ''1_1000_Lights_revhead''. Duplicaremos el grupo y lo invertiremos 180º para situarlo en el testero opuesto con el nombre ''Lights_revtail''. Por último añadiremos el "halo" luminoso de las luces mediante un polígono frente a cada farol texturado con la textura que se muestra y el shader '''AddTex''', que ''añade'' luz a la escena según las zonas más claras de la textura. | ||
+ | |||
+ | ==Sonidos== | ||
+ | |||
+ | No entraremos en como crear sonidos, pero sí en la manera de dotar a nuestro vagón de sonidos ya existentes en el simulador, pues en caso contrario nuestro vehículo se mostrará totalmente silencioso en el juego, cosa bastante incongruente en cualquier ferrocarril. | ||
+ | |||
+ | [[Imagen:Beristain_Migr18.jpg|thumb]]Los sonidos se añaden en el blueprint usando la sección '''Container component''', donde los podemos añadir como un ''Child'' más. | ||
+ | |||
+ | Expandiremos el apartado '''Children''' y pulsaremos el botón ''Insert first'', para crear una sección que contenga los datos de sonido. En dicha sección informaremos: | ||
+ | |||
+ | '''Child name''' - será "''Wagon Sound''". | ||
+ | |||
+ | '''Provider''' - será "''Kuju''". | ||
+ | |||
+ | '''Product''' - será "''RailSimulator''". | ||
+ | |||
+ | '''Blueprint ID''' - deberemos informar de la ruta de un ''blueprint'' de sonido existente. Podemos investigar en el contenido de la carpeta "Assets" para encontrar algún sonido adecuado. Para un vagón de ejes el simulador trae un sonido genérico en la ruta "''Audio\RailVehicles\Wagons\Wagon Generic Sound.xml''". |
última version al 18:50 18 dic 2008
Para el seguimiento de la migración mostrada en el presente artículo se recomienda la lectura previa del artículo Migración a RS de un edificio sencillo, pues algunos de los conceptos o procedimientos allí mostrados se darán por sabidos en el presente caso.
Contenido |
Descripción del modelo
Para empezar con un vehículo ferroviario he escogido un vagón de mercancías cerrado. Tiene alguna de las complejidades de un vehículo, pero no necesita todavía interiores, cabinas, ni especificaciones del aparato motor. Todo llegará.El elemento elegido es un vagón frigorífico particular de la compañía Beristain.
En el año 1947, Herederos de Ramón Múgica S.L. construyó, para la compañía BERISTAIN de San Sebastián, una serie muy corta de tres vagones frigoríficos sobre bastidor unificado. El revestimiento exterior de la caja era con friso de madera. Este tipo de vehículos mantenían a temperaturas bajo cero los pescados mediante bandejas, en las cuales se depositaban grandes bloques de hielo, aunque también estaban preparados para transportar carne colgada de ganchos de los que disponían. El aislamiento de las cajas se conseguía mediante corcho prensado y papel parafinado.
Tras su andadura a lo largo de más de 20 años todos ellos fueron desguazados en los años 70.
Preparación de la migración
Comenzaremos por crear una estructura de directorios de trabajo en la carpeta Source del directorio donde tengamos instalado el simulador, habitualmente C:\Archivos de Programa\Rail Simulator.En la carpeta Source debemos crear un directorio que determine el código de Provider bajo el cual actuaremos. Podemos tener tantos Providers como queramos, pero es una buena práctica identificar nuestras creaciones bajo un único Provider. Para determinar el código de Provider, si bien éste es totalmente libre, pudiera darse el caso de colisión entre dos creadores que hayan escogido el mismo código. Por tanto, como recomendación y buena práctica, desde Trensim solicitamos que el código de provider de un autor coincida con el código de usuario con el cual se ha debido dar de alta en el foro de la web Rail Simulator para poder proceder a descargarse el paquete de las Developer Tools, paquete sin el cual no tienen sentido los pasos que vamos a dar a continuación.
En la imagen asociada se puede comprobar que el Provider escogido en este caso ha sido Pere.
A continuación, en el directorio designado para el Provider que acabamos de mencionar deberemos crear un subdirectorio que determine el código de Product en el que vamos a encuadrar nuestra creación. Un Product es un conjunto de elementos, ya sean elementos estáticos, vehículos, vegetación, etc, que tienen una relación entre ellos. Este concepto se puede orientar al conjunto de elementos necesarios para una ruta completa, como en las originales que vienen con el juego, o cualquier otro concepto o agrupación que deseemos para nuestras creaciones. De esta forma podemos crear Products para las diferentes compañías de ferrocarril de las cuales vayamos a crear vehículos, o para el conjunto de elementos que elaboremos para una ruta concreta, o para todos los vehículos de una composición o tren concreto que deseemos publicar, etc. Cierto es que a la hora de generar un paquete de distribución de nuestras creaciones éste puede ser un elemento que determine la agrupación a crear, pero también se pueden crear paquetes distribuibles con objetos de diferentes Products, o incluso de diferentes Providers, si es necesario.
En la imagen asociada se puede comprobar que el Product definido en este caso ha sido RenfeIII.
Bajo las carpetas Provider y Product deberemos crear una carpeta RailVehicles, que contendrá los diferentes trabajos de material móvil que vayamos creando. Bajo esta carpeta crearemos otra denominada Freight para los proyectos de vagones de mercancías. Hasta aquí la estructura es la estándar que determina Rail Simulator, y que podemos observar en el Provider Developer que se crea por defecto y que contiene ejemplos de diferentes tipos de Assets.
Por último, y bajo esta jerarquía predefinida, crearemos un directorio para los archivos de nuestro proyecto, con un subdirectorio denominado Textures que contendrá las texturas del proyecto.
En este caso se ha denominado ESRNPR_Beristain, pero puede llamarse como consideremos más oportuno.
Una última observación, bajo el directorio para nuestro vagón es habitual encontrar la estructura de subdirectorios que se muesta en la imagen adjunta. La carpeta Default contiene a su vez una carpeta para los datos del vagón y una subcarpeta para las texturas, de la froma habitual. Su existencia nos permite tener diferentes versiones y/o repintados de un mismo vagón (es aplicable a cualquier tipo de material móvil) creando al nivel de la carpeta Default otra que contenga tan sólo los archivos diferenciales respecto al vagón base, de forma que todo archivo no hallado en la estructura de una versión se buscará en la estructura Default.
Preparación de la malla
Al directorio Wagon del proyecto copiaremos el archivo del proyecto TSM en formato .dst, para tenerlo listo para la migración.
Preparación de las texturas
En el directorio Textures copiaremos todos los archivos de texturas que sean necesarios para el proyecto, en los formatos originales, ya sean .bmp o .tga.
Una vez copiadas las texturas procederemos, en este mismo directorio, a convertirlas en archivos .ace con el mismo nombre de archivo que el original, operación que podemos realizar con la herramienta ToAce.exe, o con el plugin para Photoshop que se encuentra disponible en la web de Rail Simulator. Obtendremos para cada textura dos archivos: el original que usará el programa 3D Canvas, y su imagen en formato .ace que usará el Blueprint para su exportación a Rail Simulator.
Importación en 3D Canvas
Abrimos el programa 3D Canvas v7.1.2.0 (o superior), con los Trainworks activados, e importamos el archivo ya existente, del proyecto del vagón en TSM, mediante File > Import > Trainworks > Trainsim Modeler (.dst).Tras seleccionar el archivo .dst a abrir, aparecerá una ventana de opciones de la importación.
Los valores que se proponen son los habituales para una migración normal, por lo que procederemos a aceptar las sugerencias sin alterar ninguno de los campos o valores que se muestran en dicha ventana.
El resultado será una malla en 3D Canvas idéntica al original en TSM que puede presentar algún fallo o problema de texturado, tal como se ha comentado en Conversión de proyectos TSM a Canvas 3D al señalar las tres reglas de la migración.
En este caso el modelo no parece presentar problemas, salvo porque si nos fijamos las zapatas de freno aparecen como unos enormes rectángulos, fruto de haber perdido este polígono su textura original con canal alpha (ver imagen adjunta). Efectivamente, en este modelo las zapatas no están modeladas si no que están representadas tan sólo por un polígono con transparencia, y éste, a su vez, comparte la pieza del conjunto de la caja de grasa y ballesta, pieza que usa otra textura sin canal alpha.
Corrección de problemas
En el presente caso el problema queda reflejado por haber incumplido la primera de las reglas: Una pieza en TSM (part) debe estar texturada a partir de una sola hoja de texturas.La corrección en este caso es simple. Basta ir en TSM a la pieza de la suspensión del vagón, seleccionar los polígonos de las zapatas del freno y separar éstos del resto de la pieza mediante el comando Split Part. Una vez modificado en TSM el archivo original podemos proceder a su importación sin problemas.
Como de costumbre, la escena generada en Canvas se verá oscura y deberemos "iluminarla", si lo deseamos, tal como ya se ha descrito en el caso de la Migración de la Torre de Enclavamientos.
La escena resultante la deberemos guardar en formato 3D Canvas para futuros usos. El mismo directorio del proyecto creado puede ser una buena opción para guardarlo.
Creación de LODs
La jerarquía de elementos importada a 3D Canvas se muestra en la siguiente imagen:
Se observa que se ha generado un grupo denominado Import, del cual depende un segundo grupo con el nombre de la primera pieza en la jerarquía de TSM (el MAIN tradicional) del cual dependen tantos grupos como piezas componían el proyecto original, cada uno con un elemento y con el nombre que tenían en TSM. Que los nombres de las piezas se conserven es una ventaja, sobre todo en elementos con gran número de piezas.
Tanto grupo no suele ser beneficioso para Rail Simulator, por lo que, en la medida de lo posible, deberemos ir moviendo las piezas del vehículo para agruparlos en menos grupos, buscando asociaciones de piezas que tengan relación entre si y que puedan compartir una misma distancia límite de visión:
La imagen anterior muestra una nueva jerarquía en la que las piezas ya han sido organizadas en nuevos grupos. Para ajustar dicha organización bastará que en el árbol de jerarquía de las piezas pinchemos sobre una de ellas (cubo marrón) y la arrastremos al grupo (cubo amarillo) al que deseemos que quede asociada.
Esta nueva jerarquía tiene muchos menos grupos (son los elementos que más comen recursos en el Rail Simulator), y estos están agrupados según nuestra conveniencia para establecer los LODs del objeto. Las piezas que siempre estarán a la vista (caja, techo, etc) están directamente bajo el grupo Import que define el vagón, o sea, estarán sujetas a la distanciade visión del propio vagón. El resto de piezas están bajo diferentes grupos.
Los LODs nos permitirán definir la carga gráfica del objeto en virtud de la distancia a la que se encuentre respecto del observador en el juego, según ya se ha expuesto en la Migración a RS de un edificio sencillo, por tanto, renombraremos los grupos según las distancias de visión que deseemos para cada uno de ellos:
Como podemos observar, el vagón será visible hasta los 1000 metros, pero los elementos más pequeños tan sólo lo serán hasta los 50 metros, los medianos hasta los 100 metros, y a partir de dicha distancia únicamente se representará la caja, el techo, las ruedas y los elementos del grupo principal pero no el resto.
Al grupo original Import también le hemos cambiado el nombre por otro que identifica el objeto.
Exportación a Rail Simulator
El modelo así preparado lo podemos exportar al formato intermedio de Rail Simulator .IGS.
Primero deberemos seleccionar el elemento de la escena que deseamos exportar. Bastará con que seleccionemos con el botón derecho del ratón el nodo raíz del vehículo: el denominado MAIN inicialmente, o bien 1_1000_Beristain una vez recompuesta la jerarquía.
Del el menú contextual desplegado en la anterior operación, seleccionaremos Select Group, y después nos dirigiremos al menú principal para seleccionar: File > Export > Trainworks > Rail Simulator Intermediary Geometry Format (.igs).
Una ventana nos preguntará por la ubicación y el nombre del archivo resultante. Deberemos guardar la exportación en el directorio del proyecto que hemos creado al principio y podemos darle el nombre que deseemos.
Una nueva ventana nos preguntará si deseamos crear LODs (Levels Of Detail) para el modelo. Aunque podemos obviar estos elementos, lo deseable es que el plugin de exportación cree LODs para el vagón, por lo que contestaremos que sí.
Finalmente una nueva ventana nos solicita si los LODs los queremos generar a partir de los niveles que hayamos introducido en los nombres de las piezas. En el presente caso, en que hemos llevado a cabo dicha creación de nombres, contestaremos que sí. Pero si no lo hubiéramos realizado, podemos contestar que no tenemos definidos LODs en el modelo, en cuyo caso la creación de los mismos seguirá las reglas indicadas para la Migración a RS de un edificio sencillo.
Creación del Blueprint
Una vez creado el archivo IGS ya podemos dejar el Canvas por el momento y pasar al Blueprint Editor de Rail Simulator que a partir de unas definiciones (los ficheros blueprint) generará los archivos necesarios para el simulador.Una vez arrancado el Asset Editor, observaremos que nos muestra un árbol jerárquico con los diferentes Providers que tengamos definidos, desplegaremos la jerarquía de nuestro código de Provider hasta llegar al directorio del proyecto, y nos situaremos en el subdirectorio Wagon donde con el botón derecho del ratón desplegaremos el menú contextual para seleccionar la opción New Blueprint. Se nos preguntará por el tipo de blueprint que deseamos generar, y deberemos elegir Wagon blueprint dado que vamos a crear un vagón de mercancías. Daremos nombre al blueprint creado y procederemos a cumplimentar aquellos campos que sean relevantes para nuestro proyecto (que no serán todos ni mucho menos). Una descripción detallada de los diferentes valores que componen el blueprint la podemos encontrar el documento 2.07 Wagon Blueprints que se incluye con las Developer Tools.
Una vez terminada esta operación salvaremos el blueprint. Los valores más relevantes del blueprint para elementos escénicos son los siguientes:
Display Name
En esta sección podemos informar el nombre del objeto y su descripción en un conjunto amplio y variado de idiomas.
Cabe observar que si no se introduce ninguna descripción en un idioma determinado el vehículo no estará disponible en el editor si el juego se inicia para ese idioma, por lo que es recomendable introducir algún texto en todos ellos caso de querer la publicación internacional del mismo. Desconozco si este error se corrige mediante algún parche de los existentes, o será corregido en un futuro.
Mass
Masa del vehículo expresada en toneladas, sin tener presente la posible carga del mismo.
Datos de Unión entre vehículos
Este conjunto de valores permite ajustar el espacio entre vagones cuando estos están acoplados, es decir, definen la posición virtual del punto de enganche de los vehículos, independientemente de la posición del elemento que define la malla del enganche, caso de existir. |
Front Pivot X
Distancia en metros desde el centro del vagón hasta el extremo (plato) de los topes frontales.
Front Pivot Y
Altura en metros desde el nivel del carril hasta la posición de los topes frontales.
Back Pivot X
Distancia en metros desde el centro del vagón hasta el extremo (plato) de los topes traseros. Esta distancia se expresará en valor negativo.
Back Pivot Y
Altura en metros desde el nivel del carril hasta la posición de los topes traseros.
Datos del Collision Box
Determina las dimensiones y posición del cubo que define la zona sólida del vehículo (o Bounding Box). El cálculo del valor de las dimensiones del mismo presenta una cierta dificultad en relación a la longitud del Collision Box. En principio, y por definición de la documentación, el Collision Box se debe ubicar en la caja del vehículo, excluyendo topes y rodamiento. Ver figura anexa:No obstante, la longitud del mismo tiene una cierta problemática pues afecta al comportamiento de las físicas en las operaciones de enganche y desenganche del vehículo. Analizaremos esto en la descripción del parámetro Collision length.
Collision center x
Distancia en metros desde el centro del vagón hasta el centro del Collision Box en el eje longitudinal.
Collision center y
Distancia en metros desde el centro del vagón hasta el centro del Collision Box en altura. Para calcular este valor:
- Se toma la altura total del vehículo (h)
- Se resta el diámetro de las ruedas (r)
- El valor obtenido se divide por dos
- Al resultado se le suma la altura de las ruedas (r)
Collision center y = ((h - r) / 2) + r
Collision width
Anchura total del vehículo en metros
Collision height
Altura del Collision Box. Para calcular este valor:
- Se toma la altura total del vehículo (h)
- Se resta el diámetro de las ruedas (r)
Collision height y = (h - r)
Collision length
Longitud del Collision Box. Para calcular este valor podemos partir de la longitud del vehículo sin considerar los topes. Los valores de front/rear pivot point si tienen en cuenta los topes.
Si la longitud del Collision Box incluye los topes, al aproximarse dos vagones para acoplarse estos colisionarán y no podrá producirse dicho acople.
Si la longitud del Collision Box es inferior a la longitud entre topes, pero se halla demasiado cercana a esta longitud del vagón incluyendo los topes, ocurrirá que en dos vagones acoplados, al entrar en curvas cerradas, las esquinas de los Collision Box pueden colisionar, provocando el descarrilamiento de los vehículos.
Si por contra la longitud del Collision Box es muy inferior a dicha longitud entre topes, dos vagones se podrán acoplar y no presentarán problemas en las curvas, pero en la operación de acople manual con husillo, al acercarse dos vehículos, sus topes respectivos se hundirán el uno dentro del otro permitiendo que la distancia entre vagones sea inferior a la distancia de acople, y por tanto, al proceder al enganchado, los vehículos se desplazarán bruscamente, separándose, hasta la distancia entre topes indicada en los valores de front/rear pivot point, produciéndose una sacudida violenta de la composición, con riesgo de descarrilamiento.
La propuesta para el cálculo de este parámetro, no oficial ni documentada por Kuju, es partir de la longitud total del vehículo entre topes y reducirla en 50 centímetros. A partir de este punto, obtener el valor final de forma empírica por el procedimiento de ensayo y error reduciendo o aumentando el valor hasta obtener unos acoples en que los topes presiones entre si sin hundimiento alguno y sin brusquedades en la operación. |
Bogey
Este apartado lo usaremos para informar a RS que piezas del vagón conforman las ruedas (o bogies si los hubieran) y permitir de esta forma que el simulador les aplique las animaciones pertinentes según el movimiento del vehículo sobre las vías.
Previo a los siguientes pasos deberemos haber creado un Bogey Blueprint para el rodaje del vagón, según se expone en Creación del Bogie más abajo.
Expandiremos el apartado Bogey y pulsaremos el botón Insert first, para crear una sección que contenga los datos de nuestro bogie. En dicha sección informaremos nuestro Provider y Product, y la ruta donde hayamos creado el Bogey Blueprint en Blueprint ID, dejando los campos Bogey pivot x y Bogey pivot y a cero, pues al tratarse de un vagón de ejes lo definiremos en el simulador como un único bogie perfectamente centrado respecto al propio vagón.
Train brake assembly
Vamos a indicar unos valores de referencia para incorporar freno a nuestro vagón. No obstante, para una simulación fidedigna del funcionamiento de estos elementos deberemos consultar en el documento 2.02 Brake Simulation Data que se incluye con las Developer Tools, donde podemos encontrar una descripción detallada de los diferentes valores que aplican en el blueprint.Desplegamos el apartado Train Brake Assembley y pulsamos el botón Insert First. De la selección que se nos abre elegimos Train vacuum brake blueprint, dado que nuestro vehículo irá dotado de freno de vacío.
Desplegamos el subapartado Train vacuum brake blueprint que se nos acaba de crear, y también desplegamos la sección Brake type para pulsar el botón Insert First de esta última sección. Esta acción nos crea la sección Train vacuum brake data blueprint con unos valores cumplimentados por defecto, que aceptaremos tal cual.
Geometry ID
Aquí deberemos indicar la ruta, bajo Provider y Product donde se encuentra el archivo IGS de nuestro modelo que va a ser convertido a archivo accesible en el juego. Para no tener que escribir dicha ruta, con el riesgo de equivocarnos, podemos hacer clic con el botón derecho encima del archivo .IGS en el árbol de la izquierda (es el que tiene un icono con un cubo azul claro con dos triángulos naranjas, todo ello semejante a un envoltorio de caramelo), y seleccionar la opción Copy filename. Después pegaremos la ruta en el campo Geometry ID mediante Control + V.
En este caso: RailVehicles\Freight\ESRNPR_Beristain\Default\Wagon\ESRNPR_Beristain.IGS
Shadow Type
Sólo hay dos valores posibles:
- Blobby, si queremos que el juego genere una sombra circular difusa bajo nuestro objeto.
- None, si no queremos la sombra anterior (p.e. porque el objeto ya posee sombras propias).
Detail level generation range
Este apartado incluye dos campos: Highest level 1 is highest, y Lowest level 10 is lowest. Ambos, en conjunción, indican los límites entre los cuales el juego generará un número de Detail level que se asociará al objeto al incorporarlo a una ruta, siendo Highest level 1 is highest el valor inferior y Lowest level 10 is lowest el valor superior (si, está bien indicado aunque pueda parecer que no).
Una vez asociado el nivel de detalle al elemento, cuando el usuario del juego seleccione su nivel de detalle (según sea su ordenador) verá únicamente aquellos objetos que superen dicho nivel. Es decir, en lenguaje llano, que si el objeto tiene por límites 10 y 10 siempre se le generará el valor 10 como nivel de detalle y siempre será visible, pues este valor siempre será igual o superior al nivel de detalle elegido por el jugador. Si por contra tiene por límites 1 y 5 se le generará un valor entre 1 y 5 como nivel de detalle y únicamente será visible cuando el usuario elija un valor de detalle superior: entre medio (5) y máximo (10).
Personalmente considero que los edificios que forman parte de las estructuras ferroviarias siempre han de ser visibles y les asigno los valores 10 y 10, mientras que a edificios de viviendas les suelo asignar los valores 1 y 10 para que la frecuencia de aparición varíe en virtud de lo que disponga en cada caso el jugador.
Creación del Bogie
Todas las ruedas de los vehículos en Rail Simulator se consideran montadas en bogies. Incluso si el vagón no tiene bogies, como en el presente caso en que es de ejes, se considera que las ruedas actuan como en un único bogie.
Por tanto, en el árbol de la estructura de directorios del Asset Editor pulsaremos con el botón derecho del ratón, sobre la carpeta donde tenemos nuestro vagón, para desplegar el menú contextual. Seleccionaremos New Blueprint y en la ventana que aparecerá buscaremos Bogey Blueprint y pulsaremos OK.
En el blueprint que aparecerá cumplimentaremos:
Wheel Radius con el radio de las ruedas
Wheel gauge con el ancho de vía de los ejes, en nuestro caso 1.670
En el apartado Axle... insertaremos dos entradas, para cada una de las dos ruedas, donde cumplimentaremos:
Radius con el mismo valor anterior para Wheel Radius
Horizontal offset con la distancia en metros a la que se sitúan los ejes respecto el centro del bogie (en el presente caso el centro del vagón), siendo el valor del eje posterior negativo.
Node ID con el nombre de las piezas del modelo que definen los ejes. Típicamente, en modelos importados desde TSM, estos nombres serán Wheels11 y Wheels12 para un vagón.
En el apartado Pivot Offset insertaremos un Pivot, aunque dejaremos sus valores de situación a cero, pues se trata de un vagón de ejes.
Salvaremos el Blueprint y, en la ventana de directorios del Asset Editor cambiaremos el nombre del blueprint Bogey blueprint001 por otro que nos sea más indicativo, por ejemplo Wheels.
Visualización en el RS
A continuación procederemos a exportar el blueprint del vagón mediante el botón Export situado en la parte superior del Blueprint Editor, observando que no se produzcan errores (no deberían producirse).Para ver el resultado de la exportación, iniciaremos el Rail Simulator y nos dirigiremos a editar una ruta, o en su defecto crearemos una para nuestras pruebas.
Una vez estemos en la edición de la ruta, en la ventana superior de Caja de herramientas seleccionar Herramientas de escenario. Luego en la ventana de Explorador de objetos seleccionar Material rodante, y en la lista de elementos deberá aparecer nuestro vagón. Una vez seleccionado, el vehículo lo podremos situar sobre una vía mediante el cursor.
En el caso de que no apareciese en la lista, deberemos asegurarnos, mediante el botón Filtro de conjunto de datos que nos desplegará la ventana del mismo nombre a la derecha, de que el Provider y el Product donde se encuadra nuestro objeto están seleccionados, con el fin de permitir su uso.
En este punto ya tenemos el vagón migrado a RS, y perfectamente operacional: lo podremos enganchar a una composición, mover en un tren por un recorrido, desenganchar en una estación, etc. Nos ha bastado realizar la conversión con el plug-in de Canvas, generar la malla IGS, y crear un blueprint. Pero si deseamos explotar en más profundidad las posibilidades que nos permite RS, podemos continuar con los siguientes puntos de mejora que describimos en este artículo a continuación. |
Creación de sombra
Como se observará de la imagen anterior del vagón en el simulador, éste no produce por defecto ningún tipo de sombra. Pero incorporar este aspecto a nuestro vagón es sencillo.
Como en el presente tutorial no se pretende formar sobre la creación de objetos en 3D Canvas (quizás en otro momento), la recomendación es: si desearemos incluir sombra en nuestro edificio, crear las piezas que se describen a continuación en el modelo en TSM "antes" del proceso de exportación que hemos explicado, para no tener que repetir el procedimiento completo de migración.
Sombra bajo el vagón
La cantidad de luz bajo el vagón, entre los ejes, debe ser muy limitada. Más limitada que la mera proyección de la sombra del vagón. Por tanto este efecto lo llevaremos a cabo mediante la creación de un polígono, orientado hacia arriba, de dimensiones semejantes al vagón (incluyendo la anchura total del vagón y los topes), al que aplicaremos una textura como la que se muestra, de 128 x 128 pixels, negra con un degradado hacia un grís medio en el centro, y sin canal alpha ni aditamento alguno.A este polígono le tenemos que aplicar el tipo de material SubtractATexDiff. Este material utiliza la textura a modo de filtro para llevar a cabo una operación de sustracción de brillo a los elementos que se encuentren detrás de él, siendo máxima dicha sustracción para el valor "blanco" de la textura, y mínima para el valor "negro".
La textura la asignaremos al polígono en 3D Canvas en la solapa Primary Texture (segunda solapa de la Material Palette), mientras que los shaders se les asignan a los materiales en el campo Rail Sim que encontraremos en la solapa Custom fields (última solapa de la Material Palette), tras lo cual podremos aplicar el material al polígono mediante la herramienta Fill Tool o Paint Tool indistintamente.
Sombra del propio vagón
El artículo Sombras dinámicas en RS incide en mayor amplitud en el tema. No obstante introduciremos los pasos más básicos para dotar a nuestro vagón de sombra.
Para la sombra hará falta un modelo similar en tamaño y posición a la caja del vagón, pero de complejidad inferior, según las necesidades, que reproduzca aquellas partes del modelo que deseemos que produzcan sombras proyectadas, tanto sobre otros objetos y terreno, como sobre el propio objeto del proyecto. No es necesario que el objeto sombra incluya los elementos del bastidor ni rodaje, pues el polígono de oscurecimineto bajo el vagón nos impediría ver la sombra de estos elementos. La imagen anterior muestra el objeto sombra, que se ha ubicado en un nuevo grupo denominado 1_0100_sombras (será visible sólo hasta los 100 metros, desapareciendo más allá de esta distancia). Se compone de un elemento que siluetea la caja del vagón, no incluyendo ningún otro detalle, formado por una pieza más o menos compleja pero en cualquier caso totalmente cerrada por todos sus lados. Además, a este elemento se le tendrá que asignar un material con una textura dummy (no importa como sea pues el elemento no será visible), que en este caso es de un gris medio y de 128x128 píxels, y con el shader especial StencilShadow.fx.La textura la asignaremos al material en la solapa Primary Texture (segunda solapa de la Material Palette), mientras que los shaders se les asignan a los materiales en el campo Rail Sim que encontraremos en la solapa Custom fields (última solapa de la Material Palette).
Bastará con volver a exportar el blueprint (no es necesario añadir ninguna información nueva) e ir al juego a observar el aspecto actual del vagón, viendo que, como en la imagen adyacente, la sombra se proyecta sobre el pequeño andén de tierra.
También observamos en esta imagen el efecto del polígono bajo el vagón. Este polígono, aunque no se ha comentado, se ha ubicado en el mismo grupo donde hemos definido la sombra de la caja del vagón, de esta forma ambos efectos serán visibles hasta la misma distancia, unos 100 metros, desapareciendo de la vista más allá, aunque realmente comprobaremos en el simulador que esta distancia de visión es más que suficiente.
Creación del Gancho
Para incorporar un gancho funcional a nuestro modelo deberemos primero tener un gancho definido y exportado correctamente.
Aunque en este apartado hablaremos repetidamente de "Gancho", en realidad lo que incorporamos a nuestro modelo es únicamente las piezas del husillo, dado que así es el modelo que implementaremos. |
Obtención de un gancho funcional
La documentación que se incluye con las Developer Tools incluye el documento 4.12 How to Create Couplings donde se explica en amplitud la forma de crear un gancho, del tipo que sea, para nuestros vehículos.No obstante, en el presente artículo pretendemos dar una introducción a las diferentes posibilidades técnicas de Rail Simulator, por lo que en este caso, en lugar de exponer el proceso de modelado de un gancho, vamos a mostrar una forma sencilla de conseguir un gancho de husillo: el modelo inglés que se incluye en el juego.
En los directorios de ejemplo, que las Developer Tools instalan en la carpeta Source del Rail Simulator, se pueden ver bajo el Provider Developer, en la ruta ...Rail Simulator\Source\Developer\Addon\RailVehicles\Couplings\3Link\Screw, los archivos necesarios para la generación del gancho de husillo de tres estados que incorpora el material inglés, con un único problema: la textura 3link_screw.ace del gancho es de un color calabaza uniforme (como en toos los ejemplos incluidos).
Esto último no es mucho problema, pues junto al archivo .ace también encontraremos el archivo 3link_screw.psd con las texturas originales. Bastará con abrir este archivo en Photoshop y guardarlo en formato .ace.
Incluimos a continuación, de todas formas, el archivo .ace ya generado por si no se dispone de un editor capaz de abrir archivos .psd: 3link_screw.zip
Creación del blueprint del gancho
Para tener el gancho bastará con copiar bajo nuestro Provider la ruta antes mostrada junto a todos los archivos, sustituir la textura 3link_screw.ace por la que indicamos, y abrir el blueprint del gancho (también está suministrado en el directorio señalado) y exportarlo.
Uso en el modelo del gancho funcional
Es necesario modificar el la malla del modelo, para dejar modelado un gancho sin los elementos del tornillo del husillo, porque estas piezas son las que se incorporan con el gancho animado como veremos a continuación.Si tuviéramos modelado el gancho, como en la presente situación, eliminaremos el husillo (imagen adjunta).
Si por contra no tuviéramos modelado el gancho deberíamos incorporar este elemento a la malla.
Modificación del blueprint del vagón
Abriremos el Blueprint del vagón con el Asset Editor para completar la información referente al gancho y cumplimentaremos los siguientes valores:Front coupling blueprint ID
Indicaremos el Provider y Product donde tengamos el gancho, y en Blueprint ID la ruta del archivo blueprint del mismo.
Rear coupling blueprint ID
Indicaremos el Provider y Product donde tengamos el gancho, y en Blueprint ID la ruta del archivo blueprint del mismo.
A continuación pulsaremos el botón Preview, pues las posiciones de los husillos las tendremos que dar mediante el visor del Asset Editor. Se nos mostrará la ventana de previsualización del Asset editor, y si no es así deberemos minimizar el Blueprint editor para poder acceder a ella. En esta ventana observaremos nuestro vagón y en la zona de la izquierda tres ventanas desplegables. Nos deberemos dirigir a la inferior de ellas y seleccionar las entradas existentes:
Front Coupling Pivot Usando el gizmo que aparece en la ventana de preview deberemos ajustar la punta de la flecha al punto donde el husillo delantero deberá ir acoplado al gancho delantero.
Rear Coupling Pivot Igual que en el caso anterior, pero para el husillo y gancho traseros.
Front Coupling Receiving Pivot Usando el gizmo que aparece en la ventana de preview deberemos ajustar la punta de la flecha al punto del gancho delantero donde un husillo de otro vehículo deberá acoplarse.
Rear Coupling Receiving Pivot Igual que en el caso anterior, pero para el gancho trasero.
Aviso |
---|
Estos ajustes deberemos realizarlos con el ratón y con sumo cuidado, pues a la que nos despistemos el gizmo saltará a kilómetros de distancia de nuestro vagón. |
Una vez terminada la operación podemos cerrar el Asset editor y, abriendo el archivo .xml del blueprint del vagón, editar estos valores para un ajuste más preciso de la posición del husillo.
Uso del gancho en el simulador
El gancho que hemos proporcionado a nuestro vagón es de tipo manual.
Esto representa que, a diferencia del gancho automático y de cara a la jugabilidad, en lugar de enganchar el vagón por "golpetazo" de la composición contra él, deberemos aproximarnos lo más precisamente posible hasta juntar los topes y proceder al enganchado con la combinación de teclas: Ctrl + Mayús + C.
El desenganchado, por contra, se realizará de la misma forma que con un gancho automático mediante el panel que aparece bajo la tecla F3.
Numeración dinámica
El artículo Numeración dinámica de vehículos en RS explica la implementación de esta característica más ampliamente.Tras una lectura del citado artículo, procederemos a reflejar los pasos seguidos en particular para el presente vagón.
En la carpeta del propio vagón creamos un archivo csv (archivo de texto) denominado: Beristain_digits.csv. El contenido de dicho archivo es el siguiente:
0,0,PN-17039(1) 0,0,PN-17040(2) 0,0,PN-17041(3)
En efecto, de este vehículo de la empresa Beristain existieron tres unidades, numeradas de la 1 a la 3, con las matrículas Renfe respectivas de la 17039 a 17041. El prefijo "PN" indicaba que se trataba de un vagón frigorífico (N) privado (P).
También se deben crear las texturas de los dígitos. Se ha llevado a cabo esto en una ruta diferente a la del vagón para que esta numeración sirva a matrículas de diferentes vehículos de la misma compañía ferroviaria (renfe). La ruta elegida ha sido: Rail Simulator\Source\Pere\RenfeIII\RailVehicles\Numbers\Renfe_III, es decir, bajo el mismo Provider y Product que el vagón, pero en una carpeta, Numbers, aparte de la de nuestro vehículo.En esta carpeta ubicaremos los archivos de texturas de los dígitos 0 a 9, de las letras P y N, y del guión. Todas ellas necesarias en las matrículas que vamos a crear.
Hay que observar, como se aprecia en la imagen adjunta de la textura del número 3, que en el mismo archivo se incluyen tres tipografías diferentes para las matrículas:
- en la mitad superior la tipografía a usar en el interior del rombo lateral (número del propietario).
- en el cuadrante inferior izquierdo la tipografía en blanco para las matrículas impresas sobre el bastidor negro.
- en el cuadrante inferior derecho la misma tipografía anterior, pero esta vez en color negro para las matrículas impresas sobre la caja blanca del vagón.
Modificación de la malla del vagón
Terminada esta fase preliminar trabajaremos en la malla del vagón para crear los elementos de matrícula:
- Para los números de propietario bastarán elementos de un polígono, ubicados sobre el rombo del lateral. Este polígono lo texturaremos con el placeholder primarynumber_1.bmp, que corresponde al penúltimo dígito de la matrícula introducida en el archivo csv (el último carácter es el paréntesis). Hay que recordar que el mapeado de la textura será para la mitad superior de la misma.
- Para las matrículas Renfe necesitaremos elementos con ocho polígonos, que texturaremos, de derecha a izquierda, con los placeholders primarynumber_3 a primarynumber_10. Estos elementos los repetiremos en los laterales, testeros y bastidor. Hay que recordar que el mapeado de la textura será para la mitad inferior derecha de la misma, excepto en las matrículas del bastidor en las que el mapeo será de la parte inferior izquierda de la textura.
Todas las texturaciones realizadas en los polígonos de las matrículas lo haremos asignándoles el shader TrainBasicObjectDiffuse.fx.
Todos estos elementos los reuniremos en un único grupo que denominaremos 1_0050_primarydigits_11, dado que en el archivo csv todas las matrículas tienen once caracteres de longitud.
Modificación del blueprint del vagón
En el blueprint del vagón debemos introducir dos modificaciones en:
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. Recordemos que el archivo de descripción de las texturas a usar no está en la misma carpeta del vagón, como ya hemos indicado anteriormente.
Luces de cola
RS permite disponer en la malla de un vehículo de unos grupos dinámicos (que pueden ser representados o no según las necesidades del simulador) específicos para las luces de cabeza y cola del material. En concreto:Lights_fwdhead - para las piezas o elementos de las luces blancas de cabeza.
Lights_revtail - para las piezas o elementos de las luces rojas de cola.
Lights_fwdtail - para las piezas o elementos de las luces blancas de cola.
Lights_revhead - para las piezas o elementos de las luces rojas de cabeza.
En cada uno de estos grupos podemos incluir, tanto el halo luminoso que proyectan las luces, como aquellos elementos que deseemos que estén presentes únicamente en las condiciones requeridas.
Dotación de faroles del vagón
En el caso de nuestro vagón, le dotaremos de un juego completo de faroles en ambos extremos y los agruparemos consecuentemente en cada testero para asociarlos a uno de los grupos antes mencionado. De esta forma, cualquier vagón que circule en cola de una composición mostrará las reglamentarias luces de cola si desde la locomotora procedemos a encender las luces.Estos faroles no aparecerán si el vagón circula en medio de la composición, ni tampoco aparecerán en el lado acoplado al tren del último vagón.
De esta forma siempre obtendremos un tren con luces de cola sin necesitar de un complemento adicional como un vagón fantasma con dichas luces.
Por supuesto que en una composición variada de vagones, cada uno de ellos puede tener su dotación específica de faroles en cuanto a modelo (petróleo o eléctrico) y posición específica en los portaseñales para dicho vagón.
Inclusión en el modelo
Para modelar los faroles he procedido a migrar, de la forma habitual, un juego de ellos que ya tenía en TSM y los he guardado como un archivo de escena Canvas (extensión .3dc). Una vez incorporados al vagón se ubican en el lugar elegido y se reúnen en un grupo con el nombre 1_1000_Lights_revhead. Duplicaremos el grupo y lo invertiremos 180º para situarlo en el testero opuesto con el nombre Lights_revtail. Por último añadiremos el "halo" luminoso de las luces mediante un polígono frente a cada farol texturado con la textura que se muestra y el shader AddTex, que añade luz a la escena según las zonas más claras de la textura.Sonidos
No entraremos en como crear sonidos, pero sí en la manera de dotar a nuestro vagón de sonidos ya existentes en el simulador, pues en caso contrario nuestro vehículo se mostrará totalmente silencioso en el juego, cosa bastante incongruente en cualquier ferrocarril.
Los sonidos se añaden en el blueprint usando la sección Container component, donde los podemos añadir como un Child más.Expandiremos el apartado Children y pulsaremos el botón Insert first, para crear una sección que contenga los datos de sonido. En dicha sección informaremos:
Child name - será "Wagon Sound".
Provider - será "Kuju".
Product - será "RailSimulator".
Blueprint ID - deberemos informar de la ruta de un blueprint de sonido existente. Podemos investigar en el contenido de la carpeta "Assets" para encontrar algún sonido adecuado. Para un vagón de ejes el simulador trae un sonido genérico en la ruta "Audio\RailVehicles\Wagons\Wagon Generic Sound.xml".