Il comportamento di personaggi non giocatori (PNG) svolge un ruolo cruciale in molti giochi. Dai compagni ai capi, dai mercanti alle guardie, le modalità di interazione dei PNG con il mondo attorno a loro alimenta un gameplay coinvolgente e immersivo. A un primo sguardo, questi comportamenti possono sembrare intimidatori, ma in realtà la maggior parte dei PNG segue una rigida serie di regole logiche. La comprensione di tali regole è essenziale quando si creano i PNG e in questa pagina apprenderai come i PNG interagiscono con il mondo e come puoi visualizzare e manipolare il loro comportamento per creare le tue esperienze esclusive.
Il Dispositivo Generatore di PNG facilita molte interazioni PNG e IA. Per sapere di più sul dispositivo, vedi Dispositivo Generatore di PNG, Definizione personaggio PNG, la pagina Creare un comportamento personalizzato dei PNG e Usare il Generatore di PNG con le animazioni.
Regole logiche
La maggior parte dei PNG non agisce in modo casuale, scegliendo l'azione successiva in base al proprio stato. Puoi comprendere uno stato del PNG come istantanea del mondo di PNG in un particolare momento. Le azioni intraprese da un PNG, quelle intraprese dai giocatori e qualunque altra variabile che il PNG può conoscere su tutto costituiscono lo stato del PNG. I PNG utilizzano regole logiche per decidere quando eseguire la transizione da stato a stato e possono avere molte regole diverse in base al loro stato corrente.
Macchine a stati finiti
Un modo comune per visualizzare gli stati è attraverso una Macchina a stati finiti (FSM). Una macchina a stati finiti descrive i diversi stati in cui può essere un PNG e le transizioni che esegue da uno stato all'altro. I nodi rappresentano i diversi stati e le frecce fra di essi descrivono le condizioni necessarie per eseguire la transizione da uno stato al successivo. Un diagramma di base di FSM potrebbe apparire così:
Qui la FSM ha tre stati e inizia in Stato 1. Una volta che vengono raggiunte specifiche condizioni, il PNG salta da uno stato al successivo e continua a saltare gli stati al variare delle condizioni.
Per esempio, considera la FSM per un semplice personaggio medico di battaglia. Se ci sono compagni di squadra feriti nelle vicinanze, il medico li guarisce. Se ci sono nemici nelle vicinanze, il medico li attacca. Altrimenti, rimane inattivo. Una FSM di base per questo personaggio potrebbe apparire come segue:
Le FSM ti aiutano a visualizzare e comprendere il modo in cui i personaggi lavorano e ti aiutano a mappare i modi in cui i personaggi reagiscono agli eventi e al mondo circostante.
Macchina a stati finiti, esempio con guardia
Per un esempio in gioco, prendiamo in esame il PNG guardia. I PNG guardia possono essere generati dal dispositivo di generazione delle guardie o creati con una definizione di personaggio PNG di tipo guardia. Un PNG di tipo guardia segue un insieme particolare di regole logiche, che corrispondono ai diversi stati attivi in cui può trovarsi la guardia:
Inattivo
Pattugliamento
Sospetto
Avviso
Attacco
Quando si genera una guardia, questa comincia da inattiva oppure inizia il pattugliamento se è abilitata l'opzione di pattuglia. Quando la guardia rileva un bersaglio, comincia a riempire la barra del sospetto. Se la barra è piena, la guardia entra nella fase di allerta, altrimenti ritorna a pattugliare. Mentre è in allerta, la guardia si sposta continuamente verso il bersaglio, attaccandolo se è nel raggio d'azione. Se il bersaglio è eliminato o sfugge alla guardia, la guardia ritorna a pattugliare. Puoi visualizzare la logica della guardia con la FSM seguente:
La FSM fornisce una panoramica di alto livello sul comportamento delle guardie, ma le regole e le azioni che una guardia intraprende possono essere molte di più. I PNG possono eseguire numerose azioni contemporaneamente ed è importante considerare i fattori ambientali poiché li aggiungi alle tue esperienze.
Stati PNG e Verse
I PNG in UEFN ereditano dal modulo di IA ed espongono le funzioni che puoi utilizzare per controllare direttamente il loro stato. Ad esempio, l'interfaccia navigatable ti permette di esplorare un PNG su un'area, mentre focus_interface ti permette di forzare un personaggio a focalizzarsi su un determinato oggetto o agente. Utilizzando queste interfacce nell'ambito dei Dispositivi Verse o dei Comportamenti PNG, puoi creare PNG personalizzati per arricchire le tue esperienze.
Per maggiori informazioni sulla creazione dei tuoi Comportamenti PNG, guarda la pagina Crea comportamento PNG personalizzato.
Per esempio, considera il seguente Comportamento PNG:
using { /Fortnite.com/AI }
using { /Fortnite.com/Characters }
using { /Fortnite.com/Game }
using { /Verse.org/Simulation }
on_damaged_behavior<public> := class(npc_behavior):
# This function runs when the NPC is spawned in the world and ready to follow a behavior.
OnBegin<override>()<suspends>:void=
if:
Tutti i PNG implementano l'interfaccia damageable che permette loro di subire danni. La sottoscrizione di una funzione al DamagedEvent dell'interfaccia damageable ti permette di sapere quando il tuo PNG è danneggiato e di eseguire il codice in risposta. Nello script precedente, quando un PNG che implementa questo comportamento è danneggiato, determina l'agente che lo ha danneggiato e lo archivia in una variabile InstigatingAgent. Quindi, utilizzando il Interfaccia navigabile del PNG, imposterà l'istigatore come NavigationTarget e lo inseguirà.
Questo comportamento è un'estensione del comportamento originario del PNG. Se questo script è allegato al personaggio di tipo guardia, questo adotterà comunque tutti i suoi normali comportamenti di guardia, ma quando è danneggiato si sposta direttamente verso il bersaglio. Lo stesso vale per gli animali selvatici e i personaggi di tipo personalizzato. Gli script di comportamento dei PNG sono un potente strumento per estendere le funzioni dei PNG e ti permettono di creare i tuoi PNG personalizzati più adatti alle tue esperienze. Per maggiori informazioni sulla creazione dei tuoi script di comportamento PNG personalizzato, vedi Crea il tuo comportamento PNG personalizzato.
Tipi di PNG
Tipi differenti di PNG implementano differenti comportamenti di base e i PNG personalizzati che crei a partire da questi tipi di PNG ereditano tali comportamenti. Per maggiori informazioni sui diversi tipi base di PNG e sui comportamenti associati, vedi tipi di PNG.
Navigazione nel mondo
Quando si naviga nel mondo, i PNG devono compiere delle scelte sul percorso migliore da intraprendere per giungere a destinazione. La guardia si arrampica sopra a un muro o lo butta giù? In acqua nuota o le gira attorno? I PNG prendono queste decisioni in base alla mesh di navigazione del mondo. I PNG utilizzano la mesh di navigazione per prendere decisioni con ricerca del percorso e aggiornare le scelte man mano che si aggiorna il mondo circostante. Per maggiori informazioni sull'utilizzo e la visualizzazione della mesh di navigazione, consulta la pagina Mesh di navigazione.