Calificación:
  • 4 voto(s) - 5 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Diseñando una pista en 3D [+Assetto Corsa +mods +tutorial +hilo de seguimiento]
Parte 8. Race Track Builder: Xpacks, Xpacker y nuevos objetos para el proyecto.

Bueno pues se está acercando el momento de dejar aparcado el RTB. De hecho esta parte del tutorial no está terminada, pero seguramente será la última donde tenga que usar RTB para esta pista.

Hora de "llenar" de objetos nuestro proyecto. Como ya dije no tiene que ser estrictamente igual a la realidad pues con el tiempo todos inmuebles y dependencias se renuevan, cambian, etc, así que podemos dejarlo un poco a nuestro gusto.

¿De dónde sacamos los objetos? de los Xpacks. Los descargamos, los instalamos en nuestro RTB, y ya podemos usarlos en el proyecto. El problema es que hay muy pocos Xpacks. La gente o no los comparte o pide dinero por ellos (y es normal, los paquetes de objetos cuesta tiempo y a veces dinero crearlos). Pero también podemos crear nuestros propios Xpacks con la aplicación Xpacker que incluye el propio RTB. Esto es lo que vamos a hacer ahora.


- Xpacker: cómo crear nuestros propios Xpacks y añadirlos a nuestro proyecto de RTB.

Premisas:

- Xpacker es solo un conversor, no crea objetos 3d. Es decir, debemos haberlos creado previamente o haberlos descargado de algún sitio.
- Las geometrías deben estar en formato .FBX y escaladas.
- Las texturas deben estar en formato .DDS DXT5 no mip maps.
- Los iconos de los objetos a añadir deben estar en formato .jpg.
- Respetar estos formatos es importante. Si intentamos crear un Xpack con formatos distintos, el programa se cerrará y el Xpack quedará corrupto e inservible, habrá que empezar de nuevo.
- A la hora de crear un Xpack hay que pensar lo que queramos que incluya. Después no debemos modificarlo (podemos pero corremos el riesgo de cargarnos todo el proyecto).
- Si luego queremos incluir más cosas siempre podemos crear otro Xpack nuevo que añada esas cosas al RTB. No hay límite de Xpacks a cargar en RTB.

Para iniciar Xpacker primero debemos iniciar RTB. Cerramos la ventana emergente, sin cargar ningún proyecto, y minimizamos RTB. Ahora es cuando podemos iniciar Xpacker, solo si RTB está trabajando en segundo plano.

[Imagen: qJqMrj7.png]

[Imagen: pH62vYu.png]

[Imagen: wmmLkWV.png]

[Imagen: Rg4P1q2.png]

Ya tenemos Xpacker abierto. Bien, voy a abrir un proyecto que tengo hecho con el programa Zanoza Modeler v.107b, en concreto un árbol.

[Imagen: kgOEVqJ.png]

Como se ve en la imagen el objeto debe estar correctamente centrado en sus ejes, como si estuviera en el suelo. Incluso, al ser un árbol, no importa que quede un poco enterrado, podemos bajarlo un poco en altura, eso al gusto. Voy a exportarlo en formato .mts para poder cargar el objeto en el 3dSimEd.

[Imagen: gJrXBCf.png]

[Imagen: IXXRZX0.png]

[Imagen: 76cNG8A.png]

[Imagen: M6A3bZ2.png]

Lo siguiente es asignar al material la textura adecuada. Es decir, la textura en formato .DDS DXT5 no mip maps, que luego cargará el Xpacker.

[Imagen: nMKcRKp.png]

[Imagen: tHVdVva.png]

Listo. Podemos hacer una captura de pantalla usando la tecla Impr Pant y usar el programa Paint, por ejemplo, para crear el icono que usaremos en Xpacker. Hecho esto exporto en formato .fbx.

[Imagen: fiVFdGw.png]

[Imagen: CDjoQuF.png]

[Imagen: alCgRjQ.png]

[Imagen: j6vQaHB.png]

Como se puede ver la textura y el material tienen el mismo nombre. Así no me rompo la cabeza a la hora de cuadrar qué textura corresponde a qué material. Y para el objeto lo mismo, un nombre parecido para poder identificarlo con facilidad.

Ya tengo la textura dds, el objeto fbx, el icono jpg y el archivo mts (este último ya no lo necesitaremos). Todo listo. Hora de utilizar el Xpacker.

[Imagen: CDarV0Z.png]

Primero, ponerle un nombre al paquete y luego pinchar en el botón "Create empty Xpack".

[Imagen: qVw6pob.png]

Después añadir el nombre del autor (moi) y pinchar en el botón "Save".

[Imagen: OTwTpQ1.png]

Cambiamos de pestaña. Pincho en la pestaña "Objects" pues lo que quiero es añadir cinco nuevo tipos de árboles. Abajo a la izquierda hay un botón que pone "Add". Pincho ahí.

[Imagen: aURuRb8.png]

Me va a pedir que seleccione el archivo a añadir. Selecciono el objeto .fbx del árbol que acabo de crear.

[Imagen: P3806XE.png]

Al añadirlo me va a preguntar "Scale by 0.01?". Esto es solo para objetos creados desde Blender sin escalar, así que debo pinchar en el botón de "NO". Y después el objeto que hemos seleccionado se habrá añadido a la lista.

[Imagen: EUf3Ztt.png]

[Imagen: DgHLphD.png]

Pincho en la lista sobre el objeto que acabo de añadir. Y en el panel de la derecha debo configurar lo siguiente:

- Group: nombre con el que quiero que aparezcan estos árboles en el menú de escoger objetos, en RTB.
- Load Icon: pulsando este botón selecciono el archivo .jpg que he creado.

El resto de las opciones del panel no debemos tocarlas. Después pincho en Save. Hay que hacerlo sí o sí antes de cambiar de pestaña, o no se guardarán los cambios. No, no guarda automáticamente lo que hemos hecho, hay que recordarlo.

[Imagen: dHWumax.png]

[Imagen: XR4gfmm.png]

Una vez guardados los cambios nos vamos a la pestaña de "Materials". Ahí solo debemos tocar una cosa. Como se trata de un árbol y no es una figura opaca (tiene transparencias) para que aparezca correctamente en RTB hay que cambiar la transparencia. Pinchamos en la pestaña "Assetto Corsa" y en el desplegable "transparency:" seleccionamos "Alpha Test".

[Imagen: ewDDsga.png]

Por supuesto, dado que no guarda los cambios automáticamente, antes de seguir haciendo cosas pulsamos en el botón "Save".

Bien, dejo Xpacker en segundo plano y convierto a .fbx el resto de objetos 3d, a .dds dxt5 no mip map el resto de texturas, y a .jpg el resto de iconos. Y repito este proceso con todos y cada uno de ellos. Al final las listas de objetos y de materiales quedan tal que así.

[Imagen: HTRJ3xN.png]

[Imagen: 9soz9zL.png]

Listo. Para instalar este proyecto de XPacker en Race Track Builder solo tenemos que clicar en File / Zip to RTB... y automáticamente generará un archivo zip con todo este Xpack dentro de la carpeta Xpacks del Race Track Builder. Si queremos compartir este paquete de objetos solo tenemos que compartir ese archivo zip, y listo.

[Imagen: xmtpZGI.png]

[Imagen: Z6yPB3r.png]

Hecho. Cerramos todo (RTB y Xpacker) y abrimos de nuevo RTB. Creo y cargo una copia de la pista con los muros, las líneas y los pianos.

[Imagen: ruWyGiW.png]

[Imagen: GJSNlHa.png]

Hecho esto me voy a Edit / Xpacks y cargo en el proyecto el Xpack que acabo de crear.

[Imagen: NJpkvnP.png]

[Imagen: 4WENPGP.png]

Si busco en el menú de objetos (desplegando la pestaña y buscando el nombre que le di al grupo de objetos) encontraré fácilmente los cinco nuevos árboles. Luego es sencillo: cargar un árbol, "plantarlo" en la pista, y otro, y otro... hacer para el horizonte grupos de árboles, etc.

[Imagen: cniMhhv.png]

[Imagen: zyIcCFY.png]

[Imagen: Db6Z0wy.png]

[Imagen: 5PMfppf.png]

[Imagen: g6NNvrH.png]

[Imagen: Gq5WAVe.png]

[Imagen: Gl7taGN.png]

Hay que curiosear un poco las opciones que nos ofrece RTB. Podemos "plantar" los árboles con rotación e inclinación aleatoria. Podemos variar la altura de los mismos para que parezca que crecen de manera distinta. Podemos... mil cosas, depende de la curiosidad y de las ganas de trabajar.

Una vez colocados todos los objetos los seleccionaremos todos a la vez, pincharemos en "Properties" y nos aseguraremos de que está desmarcada la casilla "collide". Si la casilla está en gris significa que algunos tienen esta característica marcada y otros no, debemos dejar la casilla en blanco.

Collide es una función que "encierra" el objeto dentro de un cubo, el cual hará de colisionador. Esto, que en principio parece buena idea, en realidad no lo es. Porque si se lo aplicamos por ejemplo a un árbol, el cubo encerrará todo el objeto, lo que significa que si nos acercamos al tronco del árbol colisionaremos con un "muro invisible" ya que la parte más grande es la copa con las ramas y las hojas. Y así con todos y cada uno de los objetos. Collide hará, por ejemplo, que transitar por el césped sea imposible. Por lo tanto lo mejor es demarcar esta casilla en todos los objetos.

NOTA IMPORTANTE. 3dSimEd nos permite guardar el proyecto, y como más adelante voy a tener que agregar los edificios, lo guardo (formato .3SE). Cuando haga los edificios solo tengo que abrir el proyecto ya hecho y agregarlos, lo veremos en el último apartado de esta parte.

Una vez hecho ya sabemos lo que toca ¿no?

- Exportar el proyecto en formato .fbx.
- Copiar los archivos y carpetas resultantes dentro de la carpeta de la pista, sobreescribiendo si hace falta.
- Importar en 3dSimEd.
- Eliminar las partes que no nos interesan. Si es necesario, renombrar las partes que van a ser sólidas poniendo delante "1wall_" (no necesario en este caso ya que los árboles están todos fuera de la pista).
- Exportar el nuevo .fbx, copiar el .fbx.ini de todo el proyecto y renombrarlo como el nuevo .fbx.
- Importar el nuevo .fbx en el KSeditor.
- Definir shaders correctamente, exportar como un nuevo archivo .kn5.
- Añadir este nuevo archivo .kn5 a la lista de archivos especificados en los models.ini de los dos layouts.
- Testear.

Voy a poner pocas capturas porque ya sabemos de qué va la película.

[Imagen: MKiyMJj.png]

[Imagen: 8XHDuPG.png]

[Imagen: jNX0cZI.png]

[Imagen: FlYV1AV.png]

Para los árboles he creado un nuevo archivo, sc_kotarr_trees.kn5. El resto de los objetos del proyecto se van a dividir en:

- Césped (sc_kotarr_grass.kn5, objetos no sólidos).
- Vallas, coches, edificios, etc (sc_kotarr_objects.kn5, algunos objetos sólidos y otros no).
- Conos y demás objetos "atropellables" (sc_kotarr_pobjects.kn5, esto requiere algo de trabajo y alguna explicación detallada).

Consideración especial a tener en cuenta cuando diseñamos un objeto 3d.

Si el objeto 3d tiene partes que se iluminan (bombilla de una farola, faros de un coche, etc), cuando estemos diseñando ese objeto debemos especificar un material en concreto para la parte que se ilumina. En el ejemplo, una farola donde hay un material para el cuerpo, y otro para la parte de los focos (especificada como "glow"
y representada de color rojo en las siguientes imágenes).

[Imagen: V3u7R4j.png]

[Imagen: E9Faf91.png]

Sigo. Cargo en RTB una copia del proyecto con los muros y los pianos (sin los árboles). Cargo los Xpacks que me interesan, como podéis ver ya he hecho un huevo de ellos. Y empiezo a "plantar" objetos en el proyecto.

[Imagen: hXBDDLy.png]

Exporto. Cargo en 3dSimEd. Depuro, me quedo solo con lo que necesito, y renombro los objetos colisionables como "1wall_loquesea". Exporto, creando un nuevo .fbx. Cargo el nuevo .fbx en el KSEditor, afino los shaders, exporto el nuevo archivo, sc_kotarr_objects.kn5, y lo añado a la lista de los dos models.ini. El resultado:

[Imagen: fuy7PYU.jpg]

[Imagen: dJoEwgj.jpg]

[Imagen: ZoDS7k8.jpg]

[Imagen: 4UvTOJ1.jpg]

[Imagen: 3kFzctf.jpg]

[Imagen: bIUDChW.jpg]

[Imagen: yg58Pyi.jpg]

Y hasta aquí llegué ayer. No está pero que nada mal para una semana y pico de trabajo.

En lo relativo al RTB y a la parte gráfica de la pista me quedaría solo hacer los edificios, añadirlos al proyecto, y también los pobjects (objetos que podemos atropellar y arrastrar tales como conos). Cuando lo haga editaré este post y lo añadiré a continuación. Saludos para todos.



25/06/2022. Continuamos.

- Pobjects, los objetos que podemos atropellar, golpear, arrastrar y lanzar por los aires.

Ya sabemos utilizar XPacker, cómo crear nuevos paquetes de objetos y colocarlos en el proyecto. También sabemos cómo hacer para que unos objetos sean sólidos y otros no. Es hora de los Pobjects (conos, barreras y cualquier cosa que queramos derribar con el coche).

Para esta ocasión voy a convertir una barrera que ya tenía creada en tres colores (naranja con flechas, roja y blanca). De Zanoza Modeller a mts, de mts a fbx usando 3dSimEd, y de fbx al XPacker. El proceso, que ya sabéis cómo es, en imágenes.

[Imagen: N1LSbjz.png]

[Imagen: h3CM0TT.png]

[Imagen: RplAg38.png]

[Imagen: KIhtykb.png]

Una vez creado el Xpack creo una copia de nuestro proyecto con todo hecho pero sin ningún objeto, y lo cargo en RTB.

[Imagen: ZD5fjfI.png]

[Imagen: wYX9V8i.png]

Y después le cargamos el nuevo Xpack, seleccionamos el objeto a colocar, y empezamos a "plantarlo" por toda la pista.

[Imagen: GU4T9MN.png]

[Imagen: SKUmGl8.png]

[Imagen: a1KEah0.png]

[Imagen: HKE4H0V.png]

[Imagen: phglspb.png]

Listo. Seleccionamos todos los objetos a la vez (están solo los "objetos atropellables"), y en "properties" marcamos la casilla "moveable". Esto es lo que convertirá el objeto estándar en un pobject.

Exportamos en formato fbx y lo cargamos en 3dSimEd.

[Imagen: yQZBwER.png]

Una vez cargado el proyecto borramos todo excepto los pobjects.

[Imagen: Wk0aXTq.png]

[Imagen: zp9Ez91.png]

Exportamos creando un nuevo fbx y lo cargamos en el KSeditor.

[Imagen: Uu5uQhh.png]

[Imagen: qJl1QXr.png]

Bien, conseguido. Pero se ve "raro". Eso es porque el objeto (la barrera de flechas) está encerrado dentro de otro objeto que ha generado RTB automáticamente (un colisionador con forma de cubo). Tenemos que hacer que ese cubo se vuelva invisible.

En la pestaña "scene" tocamos un objeto, y desplegamos el árbol. El primer objeto corresponde al cubo, el segundo a la barrera, tocamos en el primero. Y en el recuadro de abajo a la izquierda cambiamos "Is Transparent" de "true" a "false". "Is Rendeable" también de "true" a "false". Y el cubo desaparecerá, dejando a la vista la barrera.

[Imagen: RwyNztt.png]

[Imagen: oLCyLSF.png]

[Imagen: sumMW3j.png]

Si hace falta (que seguramente sí) también retocamos el shader para dejar el aspecto del objeto a nuestro gusto.

Salvamos persistence, y repetimos con todos los demás pobjects. Después exportamos en formato kn5 y lo agregamos a la lista del archivo models.ini.

Pero ojo. Yo escogí la barrera con flechas. Eso significa que habrá que hacer dos kn5, uno para cada sentido. Si fueran conos, barerras sin flechas, etc, no haría falta, pero en este caso sí.

[Imagen: XeDq4ba.png]

[Imagen: 9nQ3vSF.png]

[Imagen: oTf3qEE.png]

Resultado en partida:

[Imagen: puYzMeB.png]

[Imagen: upD3nH5.jpg]

[Imagen: fn4koNO.png]


- Plantando césped.

Hay una opción de Assetto Corsa llamada "3D grass" que nos permite crear césped en 3D para la pista, es necesario tener instalado el Custom Shader Patch. Pero yo no lo suelo usar, el resultado es discutible y además en pistas como estas, donde la mayor parte del terreno es tierra y solo hay matorrales de vegetación, es recomendable simplemente "plantar" objetos 3d de césped.

RTB nos trae de fábrica varios objetos de vegetación para el proyecto, pero a mi no me gustan por lo que creé mis propios objetos de césped, matorrales, vegetación, etc.

Es recomendable que la vegetación se haga en un archivo aparte, como con los árboles: consumen muchos recursos del PC y puede dar error si nos pasamos en el número de objetos. De hecho para el Jarama hice cuatro archivos kn5 de vegetación, porque si no subdividía en varios kn5 tanto el editor como el juego colapsaban. Así que en Kotarr me toca al menos añadir un kn5 más, solo para la vegetación.

El proceso es el mismo que ya hemos hecho: crear una copia del proyecto solo para la vegetación (con el terreno, el asfalto y los pianos solamente), "plantar" el césped usando la función "lasso", exportar en fbx, limpiar todo menos los objetos en 3dSimEd, exportar en un nuevo fbx, cargarlo en KSeditor para crear el kn5, y añadir la línea con el nuevo kn5 a los archivos model.ini.

[Imagen: 8v0t3y7.png]

La función "lasso" es dibujar el área donde queremos plantar el césped. Podemos elegir la densidad, la rotación, la separación entre objetos, etc.

[Imagen: SwmUHul.png]

[Imagen: ThkUG9Y.png]

[Imagen: A2vPiVE.png]

Fijaros en la cantidad de objetos (marcados en amarillo al seleccionarlos todos a la vez). Son muchísimos. Por eso es recomendable ir haciendo pruebas. Termino 1/3 del circuito y exporto. Si el programa no colapsa sigo. Y así hasta que o bien colapse (y entonces ya sé hasta dónde puedo hacer para cada kn5) o bien esté todo hecho (y entonces tendré un solo kn5 con el césped).

[Imagen: uYrchmA.png]

[Imagen: sEGme7J.png]

[Imagen: ceriLn8.png]

Bueno. Como es un circuito pequeño no colapsó. Hora de exportar, pasarlo a fbx con el 3dSimEd, depurar, y luego a KSeditor.

[Imagen: 0SVI2KB.png]

[Imagen: z0MYHQI.png]

[Imagen: aUrRCKi.png]

[Imagen: wZhCcVt.png]

Todo bien. Después de añadir el nuevo kn5 a los model.ini toca una prueba en partida.

[Imagen: TXvgSWO.png]

[Imagen: vIJIPa9.png]

[Imagen: QAgD2e3.png]

[Imagen: 8Mxyv8a.png]

Y listo. Nos acercamos al final del apartado gráfico.

Nota. Límite de imágenes alcanzado, continúo en el siguiente post.
Responder


Mensajes en este tema
RE: Diseñando una pista en 3D [+Assetto Corsa +mods +tutorial +hilo de seguimiento] - por Stig's Cousin - 10-06-2022, 18:24

Salto de foro: