IA
Unreal Engine
La muestra que se ve en el vídeo de la parte superior contiene distintos comportamientos y formas de crear IAs en Unreal Engine 5:
-
Gallinas y cerdo: Se mueven de hierba en hierba comiendo, de forma aleatoria pero buscando siempre una hierba visible (que no se acabe de comer alguno de sus compañeros) y que no esté ocupada por otro animal. Se implementaron creando un Nav Mesh Bounds Volume y colocando en él Waypoints para que la IA de los animales busque mediante Pathfinding como llegar a la hierba que le toque.
​​
-
Pollito y gato: El pollito persigue al jugador mientras lo ve y cuando lo pierde se vuelve al cercado de las gallinas a comer. Por otro lado, el gato duerme en su waypoint más cercano y cuando el pollito se acerca lo acecha hasta perderlo de vista. Se implementaron utilizando Blackboards y Behavior Trees. Ambos buscan a su target correspondiente en un rango y si lo encuentran, empiezan a perseguirlo. Si en el proceso lo pierden de vista (dejan de tener a su target enfrente con un pequeño ángulo de error), van hasta el último punto donde lo han visto y luego vuelven a su casa, en el caso del pollito la entrada del cercado y en el del gato la cama más cercana. Para evitar que el gato persiguiera al pollito hasta su casa, se crearon agentes con sus respectivos tamaños y con ello sólo se generó la nav mesh por el hueco del cercado para el agente más estrecho, impidiéndole al gato encontrar un camino para llegar a su presa.​​
​
-
Perro: Patrulla alrededor de las ovejas hasta que percibe visualmente al jugador y lo persigue. Se implementó gracias al componente AIPerception. Este se añadió al pawn del perro y se configuró para detectar mediante su AISight a otros componentes AIPerceptionStimuliSource, uno de ellos presente en el personaje del jugador.
​
-
Mapache: Huye al ver al jugador a cierta distancia y se esconde de él. Se implementó utilizando, dentro de las Utiliy Functions de Unreal Engine, el Environment Query System. Se crearon dos querys, una para encontrar al jugador más cercano a la vista, y otra para seleccionar un punto dentro del grid que abarca el mapa para esconderse fuera de la vista del jugador, pero buscando desplazarse lo mínimo.
