Para hacer el centinela Poison Drone que persiga al jugador, en primer lugar, he creado un blueprint en el que he añadido algunas piezas del pack de assets que he comprado, este pack de assets tiene piezas y materiales interesantes y me permite crear diferentes prototipos de drones para mi juego.
Ya enseñé parte de este diseño en el post anterior, ahora ha quedado algo así. No me interesa evolucionar más este diseño por ahora ya que para ser un prototipo ya me vale:
El ojo rojo brillará en la oscuridad, pretendo ayudar al jugador a localizar al Poison Drone a la vez que hacer que sea inquietante.
Luego, para indicar a la IA por donde puede circular, he añadido al escenario un NavMeshBoundsVolume:
La IA de perseguir al jugador se activará cuando el centinela lo vea dentor de su radio de visión o lo oiga, para ello he añadido un componente "Pawn Sensing" que me proporciona los eventos necesarios para controlar esto:
En el Event Graph del blueprint he añadido la lógica con el nodo "AI Move To":
He creado un nuevo evento "Follow Player" para poder separar la lógica de perseguir, de la de patrullar, de buscar, etc. Por ahora solamente se activa el evento Follow Player pero en un futuro necesitaré aplicar distintos comportamientos que se activarán con nuevos eventos en determinadas circumstancias.
Ya lo acabaré de desarrollar más adelante.
Por ahora el resultado obtenido es interesante pero el drone gira bruscamente:
Para hacer el movimiento más suave he modificado dos parámetros:
- Con el elemento principal del blueprint seleccionado he ido a la sección de detalles Pawn y he desactivado la opción "Use Controller Rotation Yaw".
- Con el componente Character Movement seleccionado he ido a la sección de detalles Character Movement (Rotation Settings) y he activado la opción "Orient Rotation to Movement".
El resultado ha sido satisfactorio:
Por ahora lo dejo aquí pero seguiré trabajando en la IA de este centinela a partir de este punto pero por ahora tengo:
- Un prototipo que espera quieto hasta ver al jugador.
- Cuando puede ver al jugador lo persigue hasta que lo toca.
- Puede perseguirlo por el escenario evitando los obstáculos.