# NPC e conversazioni

Una delle caratteristiche più interessanti del Coderblock World è che, all’interno delle tue scene o land virtuali, puoi inserire degli **NPC** (*Non Playable Characters*) e creare dei flussi di conversazione che si attiveranno ogni volta che un utente interagirà con loro!

Conversazioni di questo tipo rappresentano un passo significativo verso un'esperienza di gioco più immersiva e dinamica: i dialoghi interattivi e realistici - potenziati dall'intelligenza artificiale - contribuiscono infatti a creare un ambiente più vivo e coinvolgente, rendendo l'esperienza utente unica.

<figure><img src="/files/RiqJ8p43ZWFuRjsCVpBL" alt=""><figcaption><p>NPC e conversazioni - esempio</p></figcaption></figure>

### Inserire un NPC in scena

Puoi inserire sia uno dei nostri Cody che uno dei Digital Humans come NPC nella tua scena. \
Cerca **NPC** nella barra di ricerca del Builder e scegli il tuo preferito!

<div><figure><img src="/files/xGnrSkZd4GKngMGH5LO9" alt="" width="250"><figcaption></figcaption></figure> <figure><img src="/files/tTCCl3dDqUn9T0tfTqcJ" alt="" width="258"><figcaption></figcaption></figure></div>

Una volta selezionato l'NPC, posizionalo dove preferisci all'interno della tua scena. Potrà accogliere gli utenti all'ingresso di un edificio, farsi trovare accanto a una scrivania o al tavolo di una stanza riunioni, o magari nei pressi del luogo in cui hai impostato l'inizio di una [Quest](#gestione-delle-quest-tramite-conversazione-con-npc): qualunque posto può essere adatto per un NPC nella tua scena!

### Impostare il flusso di conversazione

Una volta posizionato l'NPC, cliccaci sopra e clicca poi su '***Crea Conversation***'.

<figure><img src="/files/d0hZ6qG8uDresnwSZOPP" alt="" width="138"><figcaption></figcaption></figure>

I flussi di conversazione sono gestiti tramite dei ***Narrative Event.***\
Ogni *Narrative Event* rappresenta un 'nodo' nel flusso di conversazione, e le scelte dell'utente determineranno l'effettivo susseguirsi di nodi e di conseguenza la conversazione con l'NPC mostrata.

In ogni *Narrative*, si possono aggiungere uno o più '*Items*', che si possono considerare come '*sotto nodi'*. Puoi scegliere tra due tipologie di Items:

* **ItemText**: è un item 'informativo', 'conversazionale'. Un semplice testo che potrai decidere di inserire all'interno della conversazione e che non prevede una scelta, ma permette al flusso di conversazione di continuare fino alla fine di quel particolare Narrative Event, o fino alla presenza di un ItemChoice. Se non vi sono ItemChoice e il Narrative Event finisce (ovvero non ci sono altri ItemText), la conversazione con l'NPC terminerà.&#x20;
* **ItemChoice**: permette all'utente di effettuare una scelta per mezzo delle '*Answer*', tramite le quali il flusso di conversazione si sposta su un'altro Narrative Event. Clicca su '***Add Answer***' per inserire le scelte che può effettuare l'utente (con il testo che verrà mostrato nei pulsanti di scelta) e le relative Narratives su cui il flusso di conversazione atterrerà a seconda della scelta.

<div><figure><img src="/files/CGMy4CfQTYzqTR0gqpsq" alt="" width="315"><figcaption></figcaption></figure> <figure><img src="/files/IaMlGgfSypgXw3Db2I53" alt="" width="308"><figcaption></figcaption></figure> <figure><img src="/files/b5OzUoCiPRyRzGXPrAmm" alt="" width="316"><figcaption></figcaption></figure></div>

Per entrambe le tipologie di Items, puoi inserire in '*Dialogue Text*' ciò che dirà l'NPC quando il flusso di conversazione giungerà in quel particolare Item.

Per aggiungere un item al Narrative Event basta cliccare su '*Add ItemText*' o '*Add ItemChoice*', e questo si posizionerà dopo l'ultimo Item precedentemente creato (o come primo nel caso non hai ancora aggiunto nessun Item).

<figure><img src="/files/qxmCU1wle8SZLBNzGhWt" alt="" width="287"><figcaption></figcaption></figure>

Per ogni Item puoi anche definire delle *Conditions* e degli *Effects* che ti permettono di gestire meglio la conversazione, determinando le condizioni affinché quel 'sotto nodo' venga mostrato all'utente durante la conversazione, o gli effetti che questo attiverà.\
La principale funzione di queste due impostazioni è quella di gestire le Quest, come spiegato [QUI](/coderblock-studio/builder-tool/npc-e-conversazioni.md#gestione-delle-quest-tramite-conversazione-con-npc).

<figure><img src="/files/bnUFKqtmhHNjYCNsSrpI" alt="" width="305"><figcaption></figcaption></figure>

Una volta creata la conversazione, potrai modificarla ogni volta che vorrai cliccando sull'NPC e poi su '***Aggiorna Conversation***'.\
Ricordati sempre di cliccare su '***Salva***' nel singolo Item di una Narrative quando lo modifichi, ma anche sul '*Salva*' della conversazione generale, in alto.

<figure><img src="/files/uO9zdkcTu1X9R9G5YQ7n" alt="" width="165"><figcaption><p>NPC conversations - Save</p></figcaption></figure>

Infine, clicca in alto a destra sul pulsante verde '***Save Scene**'* per attivare le tue modifiche.

### Gestione delle Quest - *Condition* ed *Effect*

I nostri NPC non sono solo simpatici personaggi, in grado di fornire informazioni e dare compagnia agli utenti, ma possono anche svolgere un ruolo davvero cruciale all'interno del tuo ambiente virtuale.

**L'attivazione e gestione delle** [**Quest**](/coderblock-studio/builder-tool/quest-cosa-sono-e-come-crearle.md) **è, infatti, interamente demandata agli NPC** e alle loro conversazioni!

La parte del flusso di conversazione relativa alla gestione delle quest merita un approfondimento a parte. Stiamo parlando delle sezioni relative a *Condition* ed *Effect*, che trovi nel dettaglio [QUI](/coderblock-studio/builder-tool/quest-cosa-sono-e-come-crearle.md#gestione-quest-tramite-npc-condition-ed-effect).


---

# 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://docs-it.coderblock.com/coderblock-studio/builder-tool/npc-e-conversazioni.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.
