Skip to content

COMO CREAR UNA IA CON BEHAVIOR TREES - UNREAL ENGINE 5

Tutorial en español para crear IA con Behavior Trees en Unreal Engine 5, incluyendo tareas de roaming y seguimiento del jugador.

Ask about this video. Answers come from its transcript only — with the timestamp, so you can check them.

Generated from the transcript and can be wrong — check the timestamp.

Key Takeaways

  • Los Behavior Trees permiten estructurar comportamientos complejos de IA de forma modular.
  • Crear tareas personalizadas en Blueprint facilita el control detallado de la IA.
  • El AI Controller es esencial para asignar y ejecutar el Behavior Tree en el personaje.
  • El Nav Mesh es necesario para que la IA pueda navegar correctamente en el entorno.
  • Los sensores y Blackboard permiten que la IA reaccione dinámicamente a la presencia del jugador.

What the video covers

  • Introducción a la creación de IA usando Behavior Trees en Unreal Engine 5.
  • Organización del proyecto creando carpetas específicas para IA y tareas.
  • Configuración inicial del personaje y asignación de mesh y orientación.
  • Creación y configuración de Behavior Tree y Blackboard para controlar la IA.
  • Implementación de tareas personalizadas como roaming (movimiento aleatorio) y seguimiento del jugador.
  • Uso de nodos como Selector, Sequence, Move To y Wait para definir comportamientos.
  • Creación y asignación de AI Controller para manejar el Behavior Tree.
  • Configuración del Nav Mesh para permitir el movimiento de la IA en el mapa.
  • Implementación de sensores para detectar al jugador y cambiar comportamientos mediante variables en Blackboard.
  • Uso de Decorators para controlar la activación de tareas basadas en la visibilidad del jugador.

Answers

Questions about this video

¿Qué es un Behavior Tree y para qué se usa en Unreal Engine 5?

Un Behavior Tree es una estructura que permite definir comportamientos complejos de IA de forma modular y organizada. En Unreal Engine 5 se usa para controlar las acciones y decisiones de personajes controlados por IA.

¿Cómo se crea una tarea personalizada para la IA en este tutorial?

Se crea un Blueprint basado en 'PP Task Blueprint Base' donde se definen nodos como 'Move To' y se implementa la lógica para que la IA realice acciones específicas, como moverse a un punto aleatorio o seguir al jugador.

¿Por qué es importante configurar el Nav Mesh para la IA?

El Nav Mesh define las áreas navegables del mapa para la IA, permitiendo que el personaje se mueva correctamente evitando obstáculos y zonas no transitables, lo cual es esencial para que las tareas de movimiento funcionen.

Full Transcript — Download SRT & Markdown

00:00
Speaker A
Buenas, soy Pixel y hoy estamos aquí en un nuevo tutorial de cómo crear una IA con Behavior 3 en Unreal. Así que nada, va a ser un tutorial bastante complicadillo, pero bueno, vamos a ir.
00:12
Speaker A
Lo primero sería crear una carpeta para tener todo organizado y vamos a ponerle IA. Vamos a crear, eh, lo primero, eh, nuestro personaje, nuestra va a ser carácter. Vamos a ponerle PPA.
00:29
Speaker A
Vamos a abrirlo. Vamos a ponerle una mesh para poder verlo y vamos a orientarlo. Sería -90 y -90.
00:42
Speaker A
Ahí está. Vale, minimizamos. Bueno, eh, sí, vamos a minimizar. Vale, creamos por aquí en Artificial Intelligent un Behavior Tree, Behavior Tree.
00:59
Speaker A
Vamos a llamar así y también un blackboard que sería tal que así, PPA. Vamos a abrir el Behavior Tree y como podemos ver, pues nos saldría esta pestaña y aquí a la derecha en Behavior 3 vamos a cambiarle al que acabamos de
01:20
Speaker A
el que acabamos de crear. Vale, desde aquí podemos ver que esto es como si empezase la secuencia y podemos sacar distintos nodos. Entonces, vamos a sacar el selector, que va a ser el que cambie desde, eh, distintos nodos. Y vamos a crear un
01:41
Speaker A
sequence por aquí y otro por aquí. Vale, lo que hace los sequences básicamente es ir uno a uno en los nodos que les pongamos. Aquí, por ejemplo, le podemos poner unit.
01:55
Speaker A
Básicamente espera X segundos que le ponga o un move to que se mueve a X posición.
02:04
Speaker A
Eh, las tareas, lo que acabamos de poner por aquí, eh, hay bastantes creadas ya de por sí, pero es preferible crearlas nosotros mismos. ¿Cómo las creamos? Pues aquí arriba en New Task, vamos a poner aquí en PP Task Blueprint Base. Vamos a
02:21
Speaker A
borrar y vamos a crear una que va a ser el roaming, es decir, el que nuestra se mueva aleatoriamente por el mapa.
02:31
Speaker A
Y vamos a crear una carpeta para las tareas. Vamos a guardarla aquí adentro y se nos abriría este blueprint aquí.
02:45
Speaker A
Y aquí adentro tendríamos que poner en Receptions. Sacamos este nodo que básicamente es como un Begin Play, ¿vale?
02:58
Speaker A
En el roaming lo que vamos a hacer es sacar el nuevo move to, move to, move to. Aquí está. Para que nuestra nuestra inteligencia artificial se mueva a un punto random. Tendremos que sacar el, eh, get random reachable point in
03:18
Speaker A
radius, radius. Ahí está y cogerle el controller, pound get actor location para poder pasarle el punto de inicio. Sería la posición de nuestro nuestra.
03:40
Speaker A
Vale, conectamos todo esto en pound, conectamos el control P, ¿vale? Entonces, en radio le vamos a poner 2000, por ejemplo, y, eh, luego aceptan radio le vamos a poner 150 también, por ejemplo, estos son valores que al final pueden cambiar
04:00
Speaker A
y demás, pero bueno. Luego si nuestra llega al punto, pues on suc le ponemos un finish execute. Ahí está.
04:13
Speaker A
y le ponemos true. Como que está terminado. Ya con esto estaría completo. Entonces cerramos por aquí y vamos a llamarla desde aquí que sería el roaming task. Ahí está.
04:29
Speaker A
La teníamos por aquí. Y vamos a sacar el wait para que espere unos dos segunditos.
04:38
Speaker A
Vale, le voy a cambiar el nombre aquí al sequence. Y a este también que sería el follow player. Vale, entonces, mm, para que esto funcione tenemos que crear el control de la guía para poder asignarle este Behavior Tree
05:02
Speaker A
porque ahora mismo no está, no está seleccionado a nada. Entonces, en Blueprint Class vamos a crear uno nuevo que vamos a buscar aquí abajo, AI Controller. Aquí está. Lo creamos. Le vamos a poner, eh, AI Controller.
05:20
Speaker A
Vamos a abrirlo y tenemos por aquí esto de aquí que básicamente es como un blueprint.
05:28
Speaker A
Y en el Event Graph tenemos por aquí esto ya creado, que no estoy muy seguro por qué, pero bueno, vamos a cerrarlo y, eh, tendremos el Begin Play, entonces tenemos que poner el mismo nodo básicamente, pero bueno. Sacamos el room
05:46
Speaker A
Behavior Tree y seleccionamos nuestro Behavior Tree. Vale, una vez hecho esto, guardamos, podemos cerrarlo y abrimos
05:58
Speaker A
nuestra en Class Defaults. Vamos a buscar aquí AI y en AI Controller Class vamos a buscar la que creamos que sería esta de aquí para asignarle ese controller.
06:15
Speaker A
Y luego la opción de arriba nos está diciendo cuándo, eh, posee este controller. Por default está puesto en cuando nosotros soltamos un actor en el mundo, pero no es la mejor opción, ya que luego si estamos jugando y fauneamos a este
06:32
Speaker A
mismo, pues no se va a mover, no se va, no nos va a perseguir ni va a pasar nada. Entonces, tendríamos que cambiarlo a placing world or spawn, es decir, que también funcionaría cuando lo spawneamos.
06:48
Speaker A
Eh, guardamos y en principio ya estaría. Entonces, sacamos la guía y tenemos que añadirle también el nav mesh para que pueda moverse por el mapa, por la sección que nosotros le digamos.
07:05
Speaker A
Vamos a agrandarlo porque en este caso, eh, nos interesa todo el, todo el espacio este. Si le damos a la P, pues podemos ver por dónde puede caminar y por dónde no. Entonces, si le damos al play, podemos ver que nuestro nuestra pues
07:23
Speaker A
está caminando por ahí a su bola y cada 2 segundos pues vuelve a encontrar otro punto y así. ¿Vale?
07:31
Speaker A
Ahora, el siguiente paso pues sería, eh, pues que nos siga. Entonces vamos a sacar aquí la de follow que no la hemos creado. Tenemos que crearla.
07:43
Speaker A
New Task. Ponemos aquí follow player. Guardamos en task y podemos llamarla ahora sí. Vale, se nos abriría la pestaña por el otro lado y lo mismo, le ponemos el receive execute a y esta vez en vez de reachable point
08:07
Speaker A
sacamos el get player character para tener una referencia a nuestro personaje. Sacamos el move to, le pasamos el pound, le pasamos el actor y le ponemos un 150 de radio aquí y on sucis, pues lo mismo, finish execute. Ahí está.
08:32
Speaker A
Vale, vamos a cerrarlo. Vamos aquí. Le vamos a poner un wait también de 3 segundos.
08:43
Speaker A
Y ahora mismo pues no funcionaría porque tampoco le hemos puesto cuándo nos ve y cuándo no el personaje, o sea, la, pero antes de eso tampoco funcionaría porque si lo, si nos vemos, o sea, si la nos ve, pues no cambiaría
09:01
Speaker A
nada de esto. O sea, básicamente le tenemos que añadir aquí a estas dos secciones, pues un decorator de tipo blackboard que nos va a decir, ¿vale?
09:15
Speaker A
Eh, o sea, nosotros podemos crear una variable de tipo boolean o de lo que sea, un int, un float y dependiendo de si cambia el resultado o no, que lo podemos cambiar aquí, pues h se va a
09:28
Speaker A
quedar en este o va a volver hacia atrás y va a ir al siguiente, depende de lo que pongamos. Entonces, le damos clic derecho, le añadimos el decorator que sería de tipo blackboard, le damos clic en blackboard y nos salen todas estas
09:41
Speaker A
opciones, ¿vale? Cambiamos al blackboard aquí arriba y vamos a crear esa boolean que la vamos a llamar on player.
09:53
Speaker A
Vale, volvemos al Behavior Tree y seleccionamos aquí. Le vamos a dejar esto aquí en on result change, que básicamente es que se active cuando cambie el resultado. Eh, vamos a abortar este nodo de aquí, es decir, self.
10:13
Speaker A
Y en key query, vamos a poner en is not set, es decir, cuando no vemos a, o sea, cuando vemos al personaje y en blackboard key seleccionamos on c y lo mismo con el follow player. Vamos a
10:33
Speaker A
añadirle el decorator. Ahí está el decorator. Seleccionamos, le ponemos en result, esta vez en is set y con la misma variable, ¿vale? Y ahora tendríamos que, eh, cambiar cuando nos ve y cuando no nos ve, es decir, cambiar esa variable. ¿Cómo lo
10:57
Speaker A
hacemos? Pues nos vamos a nuestra leñamos como un sensing, un sensing y podemos ver que nos da pues todas estas, estas líneas, estas esferas que básicamente nos dan información de, eh, cuando siente, cuando escucha o cuando ve a algo, a nuestro personaje.
11:20
Speaker A
Entonces, estas dos primeras opciones, que es la de sentir y escuchar, la vamos a poner en cero para que no nos molesten. Y la siguiente que está en 5000 es la división. Entonces, la vamos a reducir a 2000
11:33
Speaker A
y luego en el ángulo le vamos a poner 60, por ejemplo, y podemos ver que este sería el ángulo de visión de nuestro personaje.
11:43
Speaker A
Una vez hecho esto, guardamos y en eventos aquí debajo le vamos a dar on pound, es decir, cuando nos ven.
11:52
Speaker A
Tendríamos que castear a nuestro personaje, persono que nada el AI controller que creamos al principio de esta, el self.
12:09
Speaker A
Vamos a, vamos a, eh, hacer un get blackboard para conseguir nuestra pizarra y vamos a cambiarle el valor de una boolean. Estaría aq
12:33
Speaker A
keyame tenemos que poner eh bueno, vamos a crear un literal name que va a ser el mismo que eh la variable que queramos que sería C player.
12:47
Speaker A
Vale, una vez hecho esto, pues estaría listo. Vamos a darle la vuelta para que no nos vea de primera.
12:56
Speaker A
Y ya está. Y vale, está caminando por ahí. Si nosotros nos cruzásemos por delante, pues nos empezaría a seguir.
13:09
Speaker A
Y si eh nos dejamos, o sea, deja de vernos pues volvería a ser su ruta. ¿Qué pasa? Que si nos ve, pues es lo principal. O sea, le pusimos como que ignorase el roaming y nos sigue básicamente. Voy a parar a
13:28
Speaker A
ver si me deja en paz. [Música] Y ahí está. Así que nada, si queréis algún otro vídeo, eh, tenéis alguna sugerencia o alguna pregunta, decdmelo en los comentarios, dle like, suscribiros si no lo estáis y nos vemos en el siguiente vídeo. Ciao.
Topics:Unreal Engine 5IABehavior TreesBlueprintAI ControllerNav MeshTareas IARoamingSeguimiento jugadorDecorators Blackboard

Get More with the SozAI App

Transcribe recordings, audio files, and YouTube videos — with AI summaries, speaker detection, and unlimited transcriptions.

Or transcribe another YouTube video here →