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 Scenery 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 Scenery 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 Scenery 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.