trensim.comSimulación Ferroviaria
   

Trensimpedia :: Simulación Ferroviaria.
 
 

:: Entrar

RS:Objetos procedurales - Blueprint

De TrenSimpedia

Con el presente artículo se pretende introducir al aficionado en la creación del Blueprint para la exportación a Rail Simulator de objetos procedurales.

El artículo se basa en la existencia de los elementos descritos en el artículo Objetos procedurales - Modelado.

Contenido

Introducción

Un objeto procedural es un elemento 3D del cual tan solo se informa al simulador de su perfil, procediendo el motor de la simulación a generar el volumen del objeto por extrusión de dicho perfil, ajustando dicho desarrollo a un perfil curvilíneo que se determine.

Un objeto procedural se puede completar con un elemento fijo en cada uno de sus extremos, además de otro objeto fijo que se puede repetir a lo largo del perfil de desarrollo a espacios regulares predeterminados.

En el presente caso se asume que existe una jerarquía, como la mostrada en la imagen adjunta, con dos elementos ya construidos:

  • MuroTut.IGS - como elemento procedural, formado por una pared de ladrillos.
  • MuroTutCol.IGS - como elemento escénico a usar, tanto para los extremos del elemento procedural, como para el elemento repetitivo.

Igualmente, en el subdirectorio "Textures" deberemos tener, además de las texturas originales en formato .bmp, las mismas convertidas a formato .ace, que es el que demanda el proceso de exportación a Rail Simulator. La conversión la podemos realizar con la herramienta ToAce.exe, o con el plugin para Photoshop que se encuentra disponible en la web de Rail Simulator.

El Blueprint

El Blueprint Editor de Rail Simulator generará, a partir de unas definiciones (los ficheros blueprint) los archivos necesarios para el simulador.

Aunque para la generación de los blueprint RS recomienda el Asset Editor, creo que el uso de éste debe reducirse al mínimo imprescindible o incluso olvidarse de él. Se ha generalizado entre los usuarios la recomendación de usar el Blueprint Editor, que puede encontrarse en la ruta: Archivos de Programa\Rail Simulator\BlueprintEditor.exe. Esta utilidad es mucho más estable que el Asset Editor, y permite tener abierto el juego simultáneamente si lo deseamos, con el fin de comprovar directamente en el juego el resultado final de la conversión.

Tenemos que generar dos blueprints distintios: uno para el elemento procedural, el muro, y otro para el elemento escénico, la columna, que se referenciará en el anterior. Por tanto, crearemos en primer lugar el blueprint de la columna, pues de esta manera lo tendremos disponible cuando lo tengamos que incluir en el blueprint del muro.

El Blueprint del elemento escénico

Una vez arrancado el Blueprint 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, 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 Scenery blueprint dado que vamos a crear un elemento estático del escenario. El nombre por defecto que con se creará el blueprint será Scenery blueprint000, por lo que modificaremos este nombre por el que deseemos y procederemos a cumplimentar aquellos campos que sean relevantes para nuestro proyecto (que no serán todos ni mucho menos).

Una vez terminada esta operación salvaremos el blueprint. Los valores más relevantes del blueprint para elementos escénicos son los siguientes:

Name y Display Name

En esta sección podemos informar el nombre del objeto y su descripción en un conjunto amplio y variado de idiomas.

El dominio de las diferentes lenguas será imprescindible si queremos personalizar la presentación del objeto. En caso contrario, podemos repetir la misma descripción para todos los idiomas, preferiblemente en inglés, personalizando en castellano el campo dedicado al Español.

Cabe observar que si no se introduce ninguna descripción en un idioma determinado el objeto 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.

Category

Esta es la categoría bajo la cual aparecerá el objeto en el editor del RS. Para el presente caso escogeremos Exclude from browser list, para que la columna aislada no aparezca como un elemento disponible al creador de rutas. Claro que si quisiéramos todo lo contrario bastaría con escoger la categoría que nos pareciera más adecuada, o bien Misc si no sabemos a que categoría asociar el objeto.

Valid in scenarios

Este campo tendrá siempre el valor False excepto para el material móvil que deseemos hacer accesible en los escenarios.

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: Scenery\Procedural\MuroTut\MuroTutCol.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).

En nuestro caso podemos optar por la primera opción.

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.

En el caso de este muro los valores deberían tender a ser altos, por ejemplo 7 y 10.

Exportación del elemento escénico

A continuación procederemos a exportar el blueprint de la columna mediante el botón Export situado en la parte superior del Blueprint Editor, observando que no se produzcan errores (no deberían producirse).

Esta operación no es estrictamente necesaria, pues al exportar el blueprint del elemento procedural, el cual hará referencia al presente blueprint, el proceso de exportación forzará también la del elemento escénico si fuese oportuno. No obstante, al realizar en este momento la exportación garantizaremos la ausencia de errores en la misma y, caso de haberlos, los corregiremos antes de seguir como buena práctica.

El Blueprint del elemento procedural

Nos situaremos nuevamente en la jerarquía en el directorio de nuestro proyecto 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 esta vez deberemos elegir Loft section blueprint dado que vamos a crear un elemento procedural. El nombre por defecto que con se creará el blueprint será Loft section blueprint000, por lo que modificaremos este nombre por el que deseemos y procederemos a cumplimentar aquellos campos que sean relevantes para nuestro proyecto.

Una vez terminada esta operación salvaremos el blueprint. Los valores más relevantes del blueprint para elementos procedurales 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.

El dominio de las diferentes lenguas será imprescindible si queremos personalizar la presentación del objeto. En caso contrario, podemos repetir la misma descripción para todos los idiomas, preferiblemente en inglés, personalizando en castellano el campo dedicado al Español.

Cabe observar que si no se introduce ninguna descripción en un idioma determinado el objeto 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.

Cross section ID

Aquí deberemos indicar la ruta, bajo Provider y Product donde se encuentra el archivo IGS de nuestro modelo de elemento procedural. 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: Scenery\Procedural\MuroTut\MuroTut.IGS

Start geometry BPID

En esta sección identificaremos el blueprint del elemento que deberá aparecer al principio del elemento procedural. El blueprint lo referenciaremos mediante tres campos donde informaremos nuestro Provider y Product, y la ruta donde hayamos creado el Bogey Blueprint en Blueprint ID, en nuestro caso será: Scenery\Procedural\MuroTut\MuroTutCol.xml

(los blueprint llevan extensión .xml)

Middle geometry BPID

En esta sección identificaremos el blueprint del elemento que deberá aparecer repetidamente a lo largo del elemento procedural. El blueprint lo referenciaremos mediante tres campos donde informaremos nuestro Provider y Product, y la ruta donde hayamos creado el Bogey Blueprint en Blueprint ID, en nuestro caso también será: Scenery\Procedural\MuroTut\MuroTutCol.xml

End geometry BPID

En esta sección identificaremos el blueprint del elemento que deberá aparecer al final del elemento procedural. El blueprint lo referenciaremos mediante tres campos donde informaremos nuestro Provider y Product, y la ruta donde hayamos creado el Bogey Blueprint en Blueprint ID, en nuestro caso volverá a ser: Scenery\Procedural\MuroTut\MuroTutCol.xml

Population frequency

En este campo daremos el valor de la distancia, en metros, a la cual se debe generar un objeto "intermedio" de repetición, en nuestro caso la columna. Como así lo fijamos en su momento, este valor será 05.00 metros.

Category

Esta es la categoría bajo la cual aparecerá el objeto en el editor del RS. Para el presente caso escogeremos Scenery, para que el muro aparezca en el grupo de objetos escénicos procedurales. Claro que si no sabemos a que categoría asociar el objeto siempre podemos tirar mano de la categoría Misc.

Exportación del elemento procedural

A continuación procederemos a exportar el blueprint de la columna mediante el botón Export situado en la parte superior del Blueprint Editor, observando que no se produzcan errores (no deberían producirse).


Visualización en el RS

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 objetos lineales. Luego en la ventana de Explorador de objetos seleccionar Escenario, y en la lista de elementos deberá aparecer nuestro Muro. Una vez seleccionado, lo podremos situar sobre el terreno 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.

Imagen:MuroTut-2.jpg