# Sistema Control Interactuar con IA

Con este sistema lo que se pretende es añadir a los editores un simple control de IA´s para poder darles mas vida a las misiones.

* Se puede hablar con ellas (solo con texto, ya que con audio dependeria de cada editor y las frases que quisiese poner, se hace inviable).
  * Activa acciones a elegir. Mismo desplegable que para las tareas.
* Se le puede exposar (actualmente no es necesario llevar bridas para ello. El juego base no las dispone, asi que por ese motivo he decidido que no sea necesario)
  * Activa acciones a elegir. Mismo desplegable que para las tareas.
  * La IA comienza a seguir al jugador que la a exposado, \[color=#FF0000]muy importante\[/color] **ANDANDO**, una persona que va exposada y contra su voluntad no va al mismo ritmo que su captor, asi que para misiones hay que tenerlo en cuenta.
* Puede empezar la mision exposada o captiva y tener que rescatarla. En el momento que se le rescate, puede, si lo desea el editor, darle un arma para que siga al jugador que la a soltado armada. El arma es configurable desde el editor.

### **CONFIGURACION:**

{% stepper %}
{% step %}

### 1. Duplicar el prefab

El primer paso es duplicar el prefab de la IA con la que queramos interactuar en la mision, y guardarla en nuestra mision.

![](/files/1f8ef0cb2d1b34ce723694403a415936096ddf98)
{% endstep %}

{% step %}

### 2. Editar el prefab

Ahora, procedemos a editar nuestro prefab.

![](/files/8121236ba36c3f5f9eb0e75b3b834f5b7a4b8780)

Cuando tengamos nuestro nuevo prefab abierto, procedemos a añadir un nuevo componente en la parte derecha, en el inspector, como se muestra la siguiente imagen.

Pinchamos en “***+ Add Component***” y buscamos el componente “***BH\_NPCInteractionComponent***”.

![](/files/1c296649cf1bb6a7a9030da600257ca67678e271)

![](/files/d5a730bf35830b1ef8de21bb375f83eff3061434)
{% endstep %}

{% step %}

### 3. Configurar el componente

#### Parametros

* ***Can Talk:*** Se puede hablar con ella.
* ***Can Arrest:*** Se puede arrestar.
* ***Escort On Arrest:*** Sigue al jugador que la a capturado.
* ***On Talk Actions:*** Listado de acciones que se realizaran una vez se hable con la IA.
* ***On Arrest Actions:*** Listado de acciones que se realizaran cuando se capture la IA.
* ***Start As Prisoner:*** Iniciar la mision captiva. Estara estatica en un radio de 2.00 mts.
* ***Rescue Weapon:*** Prefab del arma que quiera darle el editor cuando sea liberada. Si no se rellena este campo, la IA simplemente seguira al jugador desarmada.
* ***On Rescue Actions:*** Listado de acciones que se realizaran cuando se libere a la IA.
* ***Join Player Group on Rescue:*** Unirse al grupo del jugador cuando se rescate a la IA. Es necesario disponer configurada la tecla de **Mando**
* ***Join Player Grouo on Arrest:*** Unirse al grupo del jugador cuando se apresa la IA. Es necesario disponer configurada la tecla de **Mando**
* ***Release Behavior:*** Seleccionar en que estado se queda la IA apresada una vez que se demos a Soltar. Disponibles 4 opciones. Mismo bando del jugador; Vuelve a la faccion original; Faccion neutral, es decir, civil; Desaparece, esta opcion es util si no deseas que se quede la IA en ningun sitio y necesitas que desaparezca de la mision.
* ***Enable Watchdog:*** Sistema de emergencia en caso de que no se una al grupo del jugador una vez rescatada o apresada la IA. Si se activa es posible que genere conflicto con el sistema nativo del Refoger de dar ordenes a las IAs.
* ***Watchdog Max Distance:*** Distancia en la cual se hara transportacion automatica de la IA, con respecto al jugador que la rescata o apresa. Util por si se pierde la IA. Debe estar activa la funcion de Watchdog.
* ***Prisioner Start Faction Key:*** Faccion con la que comienza el prisionero. Ideal si un soldado aliado, debe de estar cerca de sus captores y no lo eliminen.
* ***Rescue Faction Key:*** Faccion a la que se convertira el prisionero (IA que comienza de prisionera) cuando sea rescatada.

El listado de acciones es el mismo que se cumple cuando se activa un trigger, una tarea, etc…
{% endstep %}

{% step %}

### 4. Añadir las acciones a la IA

Una vez configurado este componente como deseemos, debemos añadirle las acciones a la IA. Estas acciones son las que aparecen en el juego cuando un jugador se acerca a un objeto interactuable y se ejecuta con el boton de accion.

Para ello debemos buscar en el listado de la derecha del Inspector, el componente “ActionsManagerComponent”, normalmente debe de estar añadido y estara por el final del listado.

![](/files/a598fe44f2996a04dfe15f05532b202bb81156d3)

Procedemos a añadir las acciones. Nos dirijimos al apartado “***Additional Actions*****, y pinchamos en “+” para añadir las acciones que queramos interactuar.**”

![](/files/fa1ea46b8c4c2f34e9cc36a419534d2fbeba9579)

Debemos añadir un Additional Actions por cada accion que deseemos. Y las cuatro disponibles son:

![](/files/b9c405f2b4097c4c67af4398a6d17050d027349a)

* ***BH\_ArrestAction*** — Accion para arrestar a la IA
* ***BH\_ReleaseAction*** — Accion de soltar la IA una vez capturada. Esta accion solo estara disponible una vez capturada.
* ***BH\_RescueAction*** — Accion de rescatar a la IA. Esta accion es la si se desea que la IA empiece la mision captiva.
* **BH\_TalkAction** — Accion de hablar con la IA.
  {% endstep %}

{% step %}

### 5. Configurar cada acción

Independientemente que se quiera poner una o varias acciones, la configuracion de una de ellas, es la misma para el resto, solo cambia la frase que queramos que aparezca en la mision.

![](/files/23162c03570e6d865a002e2aea20ce0c62aefcaf)

Solo se deben configurar dos parametros.

**Parent Context List** y **UI Info**

**Parent Context List**, le damos añadir, y elegimos “Default”.

![](/files/213bc5b32e50f401942a14913bf912b091d5ff70)

**UI Info**, pinchamos en setclass y seleccionamos UIInfo.

![](/files/718d209abbff6d27b92cddf08183de8d81a36674)

Una vez seleccionado, buscamos el campo “Name” y introducimos el texto que queramos ver en la mision.

![](/files/7a222e0d2947f7746795cf6f431b27efd989d60e)
{% endstep %}

{% step %}

### 6. Añadir componentes al GAMEMODE

Y por ultimo, en el sitema de juego, en el GAMEMODE añadimos los componentes **BH\_NPCInteractionManager** y **SCR\_CommandingManagerComponent**, puedes dejar por defecto los valores, como se ve en laa siguientes imagenes.

![](/files/4e5426055fdb9ff784cd59b91078f36776f90a77) ![](/files/f77e32192943f9858f809e9744b0d583fc2966c9)

Ya no habria que configurar nada mas. Y esto se puede añadir a tanta IA como necesitemos en la mision.
{% endstep %}

{% step %}

### 7. Guardar y usar el prefab en la mision

Guardamos el prefab, y en la mision, a la hora de añadir esta IA, hay que tener en cuenta que hay que poner la nuestra, la que hemos editado.

![](/files/ed713f52ffac4f5196558900657b2783ec3c27d7)

![](/files/de817c575e72f2d9d32d9fbc357a7052ef27df62) ![](/files/8c682d7d482771b3277f83b6805751becb000ad9)
{% endstep %}
{% endstepper %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://bhelma.gitbook.io/bhelma-core/sistema-control-interactuar-con-ia.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
