23/07/2022
La Inteligencia Artificial (IA) en los videojuegos es el alma que da vida a los personajes no jugadores (NPCs). Es el sistema que permite a un enemigo patrullar una zona, buscar al jugador y decidir cuándo atacar o huir. Unreal Engine 4 nos proporciona un conjunto de herramientas increíblemente potente y flexible para crear desde las IA más sencillas hasta las más complejas, sin necesidad de escribir una sola línea de código si no lo deseamos. En esta guía completa, exploraremos los fundamentos para que puedas empezar a construir tus propias IA, desde el movimiento básico hasta la implementación de un cerebro que tome decisiones.

Antes de que cualquier personaje controlado por la IA pueda dar un solo paso, necesita un mapa del terreno transitable. Aquí es donde entra en juego la NavMesh o Malla de Navegación. La NavMesh es, en esencia, una capa invisible que se genera sobre tu nivel y que define todas las áreas por las que un personaje de IA puede caminar. El motor la utiliza para calcular las rutas más cortas y eficientes de un punto a otro, esquivando obstáculos de forma automática.
Configurar una NavMesh es un proceso sorprendentemente sencillo:
- En la ventana principal del editor, busca la pestaña "Modos" (generalmente a la izquierda).
- Dentro de la pestaña, utiliza la barra de búsqueda para encontrar el "Nav Mesh Bounds Volume".
- Arrastra este volumen a tu nivel. Verás un cubo con bordes verdes.
- Ajusta la escala y la posición de este volumen para que abarque todas las áreas por las que quieres que tu IA pueda moverse. Puede ser todo tu nivel o solo una sección específica.
- Una vez colocado, el motor generará automáticamente la malla. Para visualizarla, simplemente presiona la tecla P en el editor. Las áreas transitables se teñirán de verde.
Con esto, tu nivel está listo para albergar vida artificial. La NavMesh se adaptará a los objetos estáticos, creando agujeros alrededor de columnas, paredes o cualquier otro obstáculo, impidiendo que tu IA choque contra ellos.
¿Peón o Personaje? Eligiendo tu Entidad de IA
En Unreal Engine, las dos clases base para crear actores controlables son el Peón (Pawn) y el Personaje (Character). Aunque están relacionadas, la elección entre una y otra es fundamental para el desarrollo de tu IA.

Diferencias Clave
El Personaje es una clase hija del Peón, lo que significa que hereda todo lo de un Peón pero añade muchas funcionalidades específicas para seres humanoides o bípedos. La principal ventaja es su "Movement Component" (Componente de Movimiento), que gestiona de forma automática la gravedad, el movimiento por el suelo, los saltos, la capacidad de agacharse y la replicación en red para multijugador.
El Peón, por otro lado, es la base más fundamental. No tiene movimiento incorporado, ni gravedad, ni colisiones de cápsula preconfiguradas. Es un lienzo en blanco, ideal para cuando necesitas un control total sobre el movimiento, como en el caso de vehículos, naves espaciales, submarinos o cualquier entidad que no se mueva de forma tradicional.
Tabla Comparativa: Pawn vs. Character
| Característica | Pawn (Peón) | Character (Personaje) |
|---|---|---|
| Movimiento Incorporado | No | Sí (Movement Component) |
| Gravedad | No (Debe implementarse) | Sí, gestionada automáticamente |
| Salto / Agacharse | No | Sí, funciones predefinidas |
| Replicación Multijugador | Básica, requiere implementación manual | Avanzada y optimizada |
| Mejor uso | Vehículos, naves, IA voladora, movimiento personalizado | Enemigos humanoides, NPCs, animales terrestres |
Para la mayoría de los casos, especialmente al empezar, se recomienda utilizar la clase Character. Te ahorrará una enorme cantidad de tiempo y esfuerzo al no tener que programar la física y el movimiento básicos.

El Cerebro de la IA: El Controlador y los Árboles de Comportamiento
Una vez que tenemos el cuerpo (nuestro Character Blueprint) y un mundo por el que moverse (la NavMesh), necesitamos un cerebro que tome las decisiones. En Unreal Engine, este sistema se divide en dos partes principales: el Controlador de IA (AI Controller) y el Árbol de Comportamiento (Behavior Tree).
- Cuerpo (Body): Es la representación física, nuestro Blueprint del Personaje.
- Alma (Soul): Es el AI Controller. Un actor no físico que "posee" al personaje y actúa como puente entre el cerebro y el cuerpo.
- Cerebro (Brain): Es el Behavior Tree. Un gráfico donde definimos la lógica de decisión de la IA de forma visual.
1. Creando el AI Controller
Primero, crea un nuevo Blueprint y selecciona "AIController" como la clase padre. Nómbralo de forma descriptiva, como "AIC_EnemigoBasico". Luego, abre el Blueprint de tu personaje, ve a los "Class Defaults" y en la sección "Pawn", asigna tu nuevo AI Controller a la propiedad "AI Controller Class". Finalmente, asegúrate de que la propiedad "Auto Possess AI" esté configurada como "Placed in World or Spawned" para que el controlador tome el control del personaje automáticamente.
2. Introducción a los Árboles de Comportamiento (Behavior Trees)
Un Árbol de Comportamiento es un sistema jerárquico de nodos que dicta qué acción debe realizar una IA en cada momento. Se lee de arriba hacia abajo y de izquierda a derecha. Los componentes más importantes son:
- Compuestos (Composites): Son los nodos que controlan el flujo de ejecución de sus hijos. Los dos más comunes son Sequence y Selector. Un nodo Sequence ejecuta a sus hijos en orden y se detiene si uno falla. Un nodo Selector ejecuta a sus hijos en orden hasta que uno tiene éxito, y entonces se detiene.
- Tareas (Tasks): Son los nodos finales de una rama. Representan una acción concreta, como "Moverse a", "Atacar", "Esperar" o "Reproducir un sonido".
- Decoradores (Decorators): Actúan como condiciones. Se colocan en un nodo Compuesto o Tarea y solo permiten su ejecución si la condición se cumple (por ejemplo, "¿Está el jugador a la vista?").
- Servicios (Services): Se ejecutan a intervalos regulares mientras su rama del árbol está activa. Son útiles para hacer comprobaciones continuas, como buscar al jugador en un área.
3. La Memoria: Blackboards
El Árbol de Comportamiento decide qué hacer, pero necesita información para tomar esas decisiones. Esa información se almacena en un Blackboard (Pizarra). Un Blackboard es un recurso que funciona como la memoria de la IA. Contiene un conjunto de variables (claves) que el Behavior Tree puede leer y modificar. Por ejemplo, podrías tener claves como "ObjetivoAAtacar" (un Actor), "UltimaPosicionConocidaDelJugador" (un Vector) o "TienePocaVida" (un Booleano).

Movimiento Avanzado y Lógica Práctica
Aunque los Behavior Trees son el estándar para IA complejas, Unreal también ofrece nodos más sencillos para tareas de movimiento rápidas dentro de cualquier Blueprint.
AI MoveTo: El Nodo Definitivo
Dentro de tu AI Controller o incluso en el Blueprint del personaje, puedes usar el nodo "AI MoveTo". Este nodo es mucho más potente que su versión "Simple" porque ofrece control y retroalimentación.
- Destination / Target Actor: Puedes indicarle que se mueva a una ubicación específica (Vector) o que persiga a un actor concreto (como el jugador).
- Acceptance Radius: Define a qué distancia del objetivo se considerará que la IA ha llegado. Esto evita que la IA intente alcanzar el punto exacto y se quede "vibrando" en el sitio.
- Pines de Ejecución de Salida: Tiene pines para "On Success" (si llega al destino) y "On Fail" (si no puede llegar o se interrumpe el camino). Esto es crucial para encadenar lógicas. Por ejemplo, si "On Success", puedes iniciar una tarea de ataque; si "On Fail", puedes hacer que busque una nueva ruta.
Preguntas Frecuentes (FAQ)
- ¿Mi IA no se mueve, qué puede estar pasando?
- Revisa los puntos más comunes: 1) Asegúrate de que tienes un Nav Mesh Bounds Volume cubriendo la zona y que la NavMesh se genera correctamente (pulsa 'P'). 2) Verifica que tu personaje tiene asignado un AI Controller y que está configurado para poseerlo automáticamente. 3) Comprueba que el suelo donde se mueve la IA tiene una colisión que le permita caminar sobre él.
- ¿Cuál es la diferencia principal entre un Sequence y un Selector en un Behavior Tree?
- Un Sequence es como una lista de tareas que DEBEN cumplirse en orden. Si una falla, toda la secuencia falla. Es útil para acciones como: 1. Moverse al enemigo, 2. Apuntar, 3. Atacar. Un Selector es un nodo de elección. Intenta ejecutar sus hijos de izquierda a derecha hasta que uno tiene ÉXITO. Es útil para decidir entre comportamientos: 1. ¿Veo al enemigo? (Atacar), 2. ¿Tengo poca vida? (Huir), 3. Si no, (Patrullar).
- ¿Necesito programar en C++ para crear una IA compleja?
- No necesariamente. La combinación de Blueprints, Behavior Trees y el componente AI Perception (para dar sentidos como la vista y el oído a la IA) es extremadamente potente y permite crear comportamientos muy sofisticados sin escribir código. C++ puede ser útil para optimizar tareas muy pesadas o crear nodos de comportamiento muy específicos, pero no es un requisito para empezar.
Conclusión
Hemos recorrido el camino completo para dar vida a una Inteligencia Artificial en Unreal Engine 4. Empezamos por lo más básico, preparando el terreno con una NavMesh. Luego, elegimos el cuerpo adecuado, optando por la versátil clase Character. Finalmente, le dimos un cerebro y una memoria utilizando un AI Controller, un Behavior Tree y un Blackboard. Las herramientas que ofrece Unreal son profundas y escalables. A partir de aquí, puedes empezar a experimentar: crea tareas personalizadas, usa el sistema de percepción para que tu IA reaccione al jugador y diseña árboles de comportamiento complejos que den lugar a enemigos y aliados verdaderamente inteligentes y creíbles en tu mundo.
Si quieres conocer otros artículos parecidos a Guía de IA para principiantes en Unreal Engine 4 puedes visitar la categoría Juegos.
