IA Oculta - Cubriéndose detrás de la geometría del mundo | Tutorial de IA Parte 29 | Unity

Find AI Tools
No difficulty
No complicated process
Find ai tools

IA Oculta - Cubriéndose detrás de la geometría del mundo | Tutorial de IA Parte 29 | Unity

Tabla de contenidos

  1. Introducción
  2. Encontrar una buena ubicación de ocultamiento
  3. Configuración del script personalizable
  4. Consideraciones de tamaño y distancia
  5. Implementación de la lógica de ocultamiento
  6. Optimización del rendimiento
  7. Integración con un sistema de IA
  8. Escenarios de uso
  9. Conclusiones
  10. Referencias

🕵️‍♀️ Encontrar una buena ubicación de ocultamiento

Cuando se trata de hacer que la IA persiga a un jugador, es relativamente sencillo. Solo tienes que establecer el destino a donde se encuentra el jugador. Pero cuando quieres que el agente de navegación se oculte del jugador, eso es un poco más complicado. No está claro de inmediato cómo encontrar un lugar que sea un buen escondite para el jugador. En este video vamos a ver cómo elegir un buen lugar de ocultamiento. También crearemos un script configurable que te permitirá personalizar qué objetos son lugares de ocultamiento válidos para el agente de navegación.

Configuración del script personalizable

Para poder personalizar qué objetos son lugares de ocultamiento válidos, vamos a utilizar un conjunto de capas que consideraremos objetos en los que podemos escondernos. Una vez que hayamos determinado qué objetos podemos escondernos, encontraremos una ubicación en esa malla cercana a ese objeto y luego verificaremos si eso realmente proporcionará cobertura al agente de la malla de navegación del jugador. Si lo hace, entonces consideramos que es un lugar válido y podríamos ir allí. Si no lo es, muestreamos otra posición un poco más alejada del jugador y vemos si esa es en realidad un lugar mejor. Habrá muchas opciones de configuración aquí que podemos hacer para refinar realmente los objetos que un agente considerará para ocultarse. Consideraremos si el objeto es lo suficientemente grande, si el jugador está demasiado cerca y también consideraremos lo que vamos a llamar "sensibilidad de ocultamiento", que será la calidad del lugar de ocultamiento, y eso será un número entre menos uno y uno. Esto fue en realidad un comentario de YouTube solicitado, así que si tienes alguna pregunta o sugerencia para un tema, deja un comentario a continuación.

Puedes encontrar más detalles y código fuente en el repositorio de GitHub aquí.

Implementación de la lógica de ocultamiento

En la implementación del script de movimiento del enemigo, utilizaremos el componente NavMeshAgent para que el enemigo se mueva por la malla. También vamos a utilizar un script llamado EnemyLineOfSightChecker para verificar si el jugador está dentro del rango de visión del enemigo. Este script tiene un colisionador de esferas que se utiliza para detectar si el jugador está en el rango de visión del enemigo. Si el jugador está en el rango de visión, el script llamará a la función OnGainSight y si el jugador sale del rango de visión, el script llamará a la función OnLoseSight. En estas funciones, detendremos o iniciaremos la rutina que verifica si hay lugares de ocultamiento válidos.

Para encontrar un buen lugar de ocultamiento, utilizaremos un método llamado FindClosestEdge que busca el borde más cercano en la malla de navegación. Este borde debería estar orientado hacia el objetivo (es decir, el jugador) y no hacia él. Esto nos indica si es un lugar de ocultamiento válido o no. Si no podemos encontrar un borde cerca del objeto, mostrará un error en la consola y debemos revisar la configuración de la escena.

Optimización del rendimiento

Uno de los desafíos de este enfoque es que estamos realizando cálculos y verificaciones constantemente, lo que puede afectar el rendimiento si la escena es complicada o hay muchos objetos en los que se puede esconder. Para mitigar este problema, podemos ajustar la frecuencia de actualización del script. Esto le dará un control sobre la frecuencia con la que se verifican los lugares de ocultamiento. Recuerda que un valor de actualización más bajo aumentará el rendimiento, pero también puede haber un retraso en la respuesta del enemigo a los cambios en el entorno.

Integración con un sistema de IA

Este enfoque de ocultamiento se puede integrar en un sistema de IA más completo, como un árbol de comportamiento o una máquina de estados. Por ejemplo, cuando un enemigo detecta una granada, puede entrar en un estado de ocultamiento en el que tratará de encontrar el mejor lugar para esconderse hasta que la granada explote. Una vez que la amenaza ha sido eliminada, el enemigo puede volver a su estado de comportamiento normal, como atacar al jugador.

Escenarios de uso

Este enfoque puede ser utilizado en una variedad de escenarios en los juegos. Por ejemplo, en un juego de sigilo, los enemigos pueden buscar lugares de ocultamiento para evitar ser detectados por el jugador. En un juego de combate, los enemigos pueden buscar cubiertas para protegerse de los disparos del jugador. También se puede combinar con otras técnicas de comportamiento de IA para crear enemigos más inteligentes y desafiantes.

Referencias

Conclusiones

En este video hemos abordado cómo encontrar un buen lugar de ocultamiento para un agente de navegación. Hemos creado un script personalizable que permite al desarrollador especificar qué objetos pueden ser lugares de ocultamiento válidos. También hemos discutido cómo optimizar el rendimiento al ajustar la frecuencia de actualización y cómo integrar esta lógica en un sistema de IA más completo. Esperamos que esta información sea útil para aquellos que estén interesados en agregar funcionalidad de ocultamiento a sus juegos.

Preguntas frecuentes

1. ¿Puedo usar este enfoque para juegos en 2D?

Sí, este enfoque se puede adaptar para juegos en 2D. En lugar de utilizar una malla de navegación tridimensional, puedes utilizar colisionadores y raycasts para detectar objetos y calcular las posiciones de ocultamiento.

2. ¿Cómo puedo ajustar la sensibilidad de ocultamiento?

Puedes ajustar la sensibilidad de ocultamiento modificando el valor de "hide sensitivity" en el script del movimiento del enemigo. Un valor negativo hará que el enemigo busque lugares de ocultamiento más cercanos al jugador, mientras que un valor positivo hará que busque lugares más lejanos.

3. ¿Este enfoque funciona con múltiples jugadores?

Sí, este enfoque puede funcionar con múltiples jugadores. Solo necesitas ajustar la lógica para detectar y seguir a diferentes jugadores según sea necesario.

4. ¿Cómo puedo hacer que la IA salga de su escondite?

Puedes agregar lógica adicional en tu sistema de IA para que la IA salga de su escondite en situaciones específicas. Por ejemplo, puedes hacer que la IA salga de su escondite cuando el jugador está fuera de su rango de detección o cuando la amenaza ha sido eliminada.

5. ¿Este enfoque se puede utilizar en otros tipos de juegos?

Sí, este enfoque se puede utilizar en una variedad de juegos, como juegos de estrategia en tiempo real, juegos de sigilo, juegos de disparos en primera persona y muchos otros. Solo necesitas adaptar la lógica y las variables a las necesidades específicas de tu juego.

Recuerda que este es solo un ejemplo de cómo podrías abordar el problema del ocultamiento en un juego. Hay muchas otras formas de lograr este efecto y puedes personalizar y ajustar este enfoque según tus necesidades y requerimientos específicos.

Espero que esta información sea útil para ti. ¡Buena suerte con tu proyecto de juego!

Most people like

Are you spending too much time looking for ai tools?
App rating
4.9
AI Tools
100k+
Trusted Users
5000+
WHY YOU SHOULD CHOOSE TOOLIFY

TOOLIFY is the best ai tool source.