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]
Bueno, pues ya averigüé por qué la IA no iba bien. De hecho para el Jarama está totalmente lista, a partir de ahora las pistas terminadas al 100% y sus links de descarga los pondré en el primer post, para que sea más fácil localizarlas.

Dejo la solución a la IA aquí, para si alguien le pueda resultar de utilidad Smile .

Veréis, todo lo dicho en este post sobre cómo hacer la IA para el juego es correcto. Entonces ¿por qué falla? Porque lo dicho en ese post es solo una parte de lo necesario para que la IA funcione bien. La segunda parte viene del propio mapa.

Las flechitas que hemos creado con la trazada le dicen a la IA por dónde debe ir, pero ¿debe ir sí o sí por esas flechas, o hay cierto margen? Pues hay cierto margen. Es decir, si tú corres por encima de las flechas, la IA tiene que buscar un camino alternativo sin desviarse mucho de las flechas.

¿Cómo consigue ese margen o camino alternativo? Pues de los bordes de la pista. Establece cuál es el límite del objeto 1ROAD y a partir de ahí busca distancia adecuada entre el borde de la carretera y la flecha. Perfecto. Entonces si el objeto 1ROAD de nuestra pista está diseñado de esta manera...

[Imagen: gHsHdEz.jpg]

... nuestra IA encontrará los límites de la carretera sin problemas, y eso le permitirá funcionar correctamente. El problema viene cuando nuestro objeto 1ROAD es algo como esto...

[Imagen: UyI3Td2.jpg]

... al tener múltiples caminos la IA es incapaz de establecer cuáles son los bordes del recorrido, y por lo tanto el margen que tiene para salirse de las flechitas para adelantar, evitar colisionar con nosotros, etc, y por lo tanto se vuelve "loca"... los coches que conduce la IA se pierden, se frenan y no avanzan, se golpean contra objetos, etc.

¿Cuál es la solución? Pues es simple: el objeto 1ROAD es solo para el asfalto del trazado y el/los objeto/s 1RUNOFF para aquellas calles aledañas, carreteras, etc, por las que también podemos circular, pero, que no forman parte del trazado de la carrera. Ejemplo:

[Imagen: 2bDfMVp.jpg]

Con esta corrección sobre el diseño 3D queda todo preparado para un correcto funcionamiento de la IA.

Después en data / surfaces.ini tenemos que deshabilitar todas las superficies excepto la superficie ROAD, que es la del recorrido del circuito. Eso se hace cambiando en todas las superficies IS_VALID_TRACK=1 por IS_VALID_TRACK=0, excepto en la superficie ROAD.

Luego eliminamos todas las IAs grabadas previamente (fast_lane.ai, pit_lane.ai y ideal_line.ai), encendemos el juego y las grabamos de nuevo en el modo Practique con la app de la IA encendida. Una vez hecho, si reiniciamos el juego con la app de la IA activada, veremos que hay unas líneas rojas a los bordes de la pista, unas líneas rojas que antes no había. Esas líneas rojas le dicen a la IA cuál es el límite de la pista.

[Imagen: LlpIc12.jpg]

Así pues la IA irá por la zona asfaltada, siguiendo la línea malva (flechas) y dentro de las líneas rojas (bordes de la pista), salvo que la empujemos y la saquemos de la pista al césped, arena, etc, en cuyo caso volverá a meterse dentro de las líneas rojas. En cambio nosotros podemos salirnos, explorar todo el mapa, etc.

Ojo, recordad que en el archivo data / surface.ini se definen las superficies del juego, así que una vez grabada la IA correctamente habrá que editarlo otra vez y cambiar de nuevo la línea IS_VALID_TRACK=0 por IS_VALID_TRACK=1 en todas las superficies que lo deseemos. Yo solo dejo con valor cero la superficie GRASS (césped) y SAND (arena), así si atajamos por una de esas dos superficies el juego nos penalizará. Si tenéis dudas a la hora de crear un mod usad mi archivo surface.ini para vuestras pistas.

¿Y ahora qué? Pues me toca modificar las pistas Tokio (short) y Shanghai, pues no tienen el trazado del objeto 1ROAD definido (son toda la superficie del mapa) para que funcione bien la IA. Si puedo, pues como fueron diseñados para otros juegos a lo mejor no puedo y se tienen que quedar así. Ya os diré.


Edit 1. Pues la pista Tokio (short) ya está modificada, y la IA ahora funciona correctamente. Todo el mapa era una única superficie (1ROAD) y la he subdividido entre 1ROAD (trazado) y 1RUNOFF (el resto). Tal que así:

[Imagen: nlQdhqs.jpg]

[Imagen: 4ntEpJJ.jpg]

Luego he exportado el diseño en MTS, importado el MTS en el programa 3DsimEd, exportado en FBX, e importado el FBX en el editor del juego. He borrado las antiguas IAs, cargado la pista, grabado unas nuevas y tachán, va perfecto Smile .





Podéis descargarla ya corregida en el primer post de este tema, es la versión definitiva Guiño .


Edit 2.Bueno, pues en contra de lo que me esperaba me ha sido "fácil" corregir la inteligencia artificial de la pista Shanghai.

Lo pongo entrecomillado porque me ha costado bastante dar con la tecla, pero una vez que encontré el fallo en el diseño 3D, quedó corregida en media hora escasa. Tenéis el link de descarga en el primer post (en el mismo sitio que antes, pero si le dais a descargar ya os descargáis la nueva versión). Y dejo subiéndose un vídeo en el que se ve cómo funciona ahora Sisi1 . Así pues doy esta pista también por terminada (y van tres Smile ). Aquí se pueden ver las líneas rojas.

[Imagen: kgQZLZl.jpg]

De paso he aprovechado para modificar algunas texturas Sisi1 .

[Imagen: M5j531J.jpg]

[Imagen: 7XAHiQm.jpg]

Y un vídeo con la pista y sus oponentes funcionando.





Saludos para todos.
Responder


Mensajes en este tema
RE: Diseñando una pista en 3D [+Assetto Corsa +mods +tutorial +hilo de seguimiento] - por Stig's Cousin - 26-12-2018, 10:45

Salto de foro: