Prerequisiti
Ora che hai creato la tua prima persona e ne hai perfezionato la personalità interagendo con essa nello Strumento di modifica dei prompt, puoi aggiungere il tuo PNG a una conversazione. Per conversare con un PNG in gioco, devi:
Definisci un nuovo
npc_behaviorin Verse.Aggiungi il tuo
npc_behavioralla Definizione personaggio PNG.Aggiungi la Definizione personaggio PNG a un Generatore di PNG.
Assicurati di avere la Chat vocale abilitata, poiché è necessaria per conversare con i PNG persona.
Creare un comportamento PNG vuoto
Per configurare un comportamento PNG personalizzato in Verse, segui questi passaggi:
Nella Barra del menu, seleziona Verse > Verse Explorer.
In Verse Explorer fai clic con il pulsante destro del mouse sul nome del tuo progetto e scegli Aggiungi nuovo file di Verse al progetto per aprire la finestra Crea script Verse.
Nella finestra Crea script Verse, fai clic su Comportamento PNG di base per selezionarlo come modello.
Nomina il comportamento PNG persona_npc_behavior in Configura.
Seleziona Crea per creare il tuo file di Verse.
Se selezioni Comportamento PNG invece di Comportamento PNG di base e scegli Crea per il tuo persona_npc_behavior, il file di Verse creato contiene un npc_behavior predefinito con funzionalità esistenti che devi sostituire con i comportamenti qui illustrati. Questo tutorial fornisce uno script Verse npc_behavior completo che puoi utilizzare, quindi puoi scegliere tranquillamente Comportamento PNG di base con Crea o Crea vuoto poiché lo script fornisce tutto ciò di cui hai bisogno.
Il persona_npc_behavior è il luogo in cui puoi definire e aggiungere un persona_component al tuo PNG tramite Verse. Tutti i PNG generati dai Generatori PNG sono agents e hanno un'entity associata. Questa entity associata è il modo in cui aggiungi i componenti di Scene Graph, come il persona_component, a un agente PNG.
Il persona_component viene aggiunto automaticamente quando un Modificatore persona viene aggiunto a un PNG.
I comportamenti PNG sono definiti in Verse ereditando dalla classe base npc_behavior. Per maggiori informazioni sui comportamenti PNG, consulta la pagina Comprendere il comportamento dei PNG.
Modificare il comportamento della persona PNG
Verse è necessario per aggiungere la persona del tuo PNG come target di conversazione per il giocatore. Senza aggiungere il PNG come target di conversazione per il tuo giocatore, non puoi conversare con la persona PNG.
Nelle sezioni seguenti, lo script Verse definisce il persona_npc_behavior . Per aggiungere questo codice Verse al tuo persona_npc_behavior vuoto, segui questi passaggi:
Nella Barra del menu, seleziona Verse > Apri progetto in VS Code…
Una volta aperto VS Code, trova il file
persona_npc_behavior.versein Explorer di VS Code.Copia e incolla il contenuto di
persona_npc_behavior.versequi sotto nel tuo file di Verse nel progetto.Compila il tuo codice Verse nella Barra degli strumenti di UEFN o all'interno di VS Code.
Puoi anche utilizzare Verse per creare esperienze in cui un team di giocatori interagisce con agenti LLM. Verse gestisce le interazioni tra più giocatori e gli agenti LLM utilizzando CreateAudioTeamAndAddPlayers(), AddMember() e AddChatChannel().
Per una guida passo-passo dello script Verse, segui i passaggi in Spiegazione dello script.
persona_npc_behavior.verse
using { /Fortnite.com/AI }
using { /Fortnite.com/Devices }
using { /Fortnite.com/Playspaces }
using { /UnrealEngine.com/Conversations }
using { /UnrealEngine.com/Temporary/Diagnostics }
using { /Verse.org/Chat }
using { /Verse.org/SceneGraph }
using { /Verse.org/Simulation }
Spiegazione dello script
Il
TeamNameè il nome del canale vocale che viene creato.OptionAgentGroupcontiene il gruppo di agenti che entrano nel canale vocale (TeamName).OptionVoiceChannelè la variabile del canale vocale effettivo in cui si trovano i giocatori e i PNG.Verse#Team name for the Team Voice Channel we are creating. TeamName<localizes>:message = "Persona Chat" #Variable that stores the agent group we are using to create the voice channel. We can use this group to create new channels or get current players in a conversation. var OptionAgentGroup:?agent_group(team_member_info) = false #Variable that stores the Voice Channel that our players and NPC will be inside of. This is what actually holds the conversation. var OptionVoiceChannel:?voice_channel(team_member_info) = falseAddPlayersAsConversationTargetinstaura una conversazione vocale live tra il PNG e ogni giocatore nel suo spazio di gioco. La funzione raccoglie prima tutto ciò di cui ha bisogno e solo se tutti questi passaggi hanno successo costruisce il gruppo di agenti e il canale vocale, collega i giocatori e i PNG al gruppo e al canale e registra i giocatori come target di conversazione.Per prima cosa, crea un nuovo
agent_groupdi tipoteam_member_info, che contiene tutti i partecipanti alla conversazione. Crea quindi un voice_channel (anch'esso di tipoteam_member_info), nominandolo conTeamNamee puntando il suo gruppo al gruppo di agenti appena creato. Questo canale è quello che veicola l'audio della conversazione.Successivamente popola il gruppo: esegue un loop su ogni giocatore nello spazio di gioco e aggiunge ciascuno come membro, poi aggiunge anche l'agente PNG, così tutti i partecipanti condividono un unico gruppo.
Quindi chiama
SimEntity.AddChatChannel(TeamVoiceChannel)per registrare il canale vocale con il sistema di chat audio, che porta il canale online. Infine, esegue nuovamente il loop sui giocatori, chiamandoSetConversationTargetsu ciascuno in modo che siano puntati sulpersona_componentdel PNG attraverso quel canale.L'ultimo passaggio memorizza il gruppo e il canale nelle variabili
OptionAgentGroupeOptionVoiceChannel(racchiuse inoption{}), in modo che le funzioni di supporto successive possano fare riferimento o modificare la conversazione senza ricostruirla.Verse# Add the Player as a conversation target for this NPC AddPlayersAsConversationTarget():void= if: NPCEntity := GetEntity[] Playspace := NPCEntity.GetPlayspaceForEntity[] NPCAgent := GetAgent[] Players := NPCEntity.GetPlayspaceForEntity[].GetPlayers() SimEntity := Players[0].GetSimulationEntity[] PersonaComponent := NPCEntity.GetComponent[persona_component]RemovePlayerAsConversationTargetrimuove un singolo giocatore dalla conversazione del PNG. Accetta un argomento giocatore e chiamaClearConversationTarget(), che scollega quel giocatore da qualsiasi target di conversazione a cui era associato (l'operazione inversa della chiamata aSetConversationTargeteffettuata inAddPlayersAsConversationTarget).Verse# Remove Player as a conversation target RemovePlayerAsConversationTarget(Player:player):void= Player.ClearConversationTarget() Logger.Print("Removed from NPC conversation", ?Level := log_level.Debug)OnBeginaggiunge l'output strutturato alla sessione e imposta il giocatore come target di conversazione. In un gioco in cui i giocatori possono unirsi in ritardo, è consigliabile aggiungerli all'PlayerAddedEvento quando un giocatore si avvicina a un PNG tramite un attivatore.VerseOnBegin<override>()<suspends>:void= AddPlayersAsConversationTarget()In
OnEndlaConversationviene ripulita e rimossa da tutti i giocatori. Questa è una buona pratica.VerseOnEnd<override>():void= for (Player : GetEntity[].GetPlayspaceForEntity[].GetPlayers()): RemovePlayerAsConversationTarget(Player)
Aggiungi il comportamento PNG alla Definizione personaggio PNG
Per aggiungere il tuo persona_npc_behavior alla definizione del personaggio PNG, segui questi passaggi:
Vai alla tua PersonaNPCDefinition nel Cassetto dei contenuti.
Seleziona PersonaNPCDefinition per aprirla e modificarla.
In Comportamento personaggio PNG, seleziona Comportamento Verse > persona_npc_behavior.
Assicurati di salvare le modifiche alla Definizione personaggio PNG prima di chiudere la scheda.
Una volta che la Definizione personaggio PNG è aggiunta a un Generatore di PNG, la tua persona PNG viene automaticamente aggiunta come target di conversazione per il tuo giocatore.
Aggiungere Generatore di PNG con Definizione personaggio PNG
Per generare un PNG con la tua persona personalizzata, devi aggiungere un Generatore di PNG al tuo livello e aggiungere la tua PersonaNPCDefinition. Per aggiungere un dispositivo Generatore di PNG, trascina la tua PersonaNPCDefinition dal Cassetto dei contenuti nella Viewport.
Parlare con il tuo PNG
Per conversare con il tuo PNG, avvia una sessione e inizia il gioco. Premi il tasto o il pulsante sul tuo dispositivo di input indicato sullo schermo e dialoga con il tuo PNG.