No artigo anterior sobre Dispositivo NPC Spawner vimos que o NPC Spawner usa um NPC Character Definition para obter informações sobre o NPC que deve ser gerado.
A criação de um NPC Character Definition permite que o personagem customizado seja salvo como um asset do projeto e reutilizado em vários lugares.
Neste artigo, vamos criar três tipos de NPC Character Definition para que você possa ter uma ideia das opções disponíveis.
Primeiro vamos criar uma classe verse do tipo NPC Behavior que será usada em um dos NPC Character Definition.
Abra o Verse Explorer, clique com o botão-direito no nome do projeto e escolha a opção Add new Verse file to project.
Selecione o template NPC Behavior, em NPC Behavior Name coloque npc_behavior_sample e clique no botão Create.
Este é um template de exemplo de NPC Behavior. Não iremos modificar o código Verse deste template.
Compile o código Verse usando a opção Verse > Compile Verse Code do menu do UEFN.
Agora vamos iniciar a criação dos NPC Character Definition. Recomendo criar uma pasta para manter os NPC Character Definition assets.
No Content Drawer, navegue até a pasta do seu projeto, clique com o botão direito dentro do Content Drawer e selecione a opção New Folder. Escolha um nome para ela. No meu projeto eu escolhi CharDefs.
Abra a pasta criada e clique com o botão direito dentro do Content Drawer. Selecione Artificial Intelligence > NPC Character Definition.
Faça este passo três vezes e renomeie os três assets criados com estes nomes:
- NPCCharDefGuard
- NPCCharDefWild
- NPCCharDefVerse
Dê dois cliques no asset NPCCharDefGuard para editar as propriedades. Este NPC será do tipo Guard e usará o comportamento padrão. Pode manter o guarda com Team Index 1 para que ele não ataque o jogador. No Cosmetic Modifier, você pode escolher uma skin do Fortnite para o guarda.
Dê dois cliques no asset NPCCharDefWild para editá-lo. Este NPC será do tipo Wildlife, e é preciso escolher o subtipo que define o tipo de animal. No meu exemplo, escolhi Chicken.
Dê dois cliques no asset NPCCharDefVerse. Este NPC será do tipo Custom e usará uma classe Verse para definir seu comportamento. Em Behavior, selecione Verse Behavior. Em NPCBehavior Script, selecione a classe Verse que criamos no início do artigo, com o nome npc_behavior_sample.
Para demonstrar o uso dos NPC Character Definitions, vamos criar um dispositivo Verse que contém um array de dispositivos NPC Spawner. Cada elemento do array irá referenciar um NPC Spawner configurado com um NPC Character Definition diferente.
O dispositivo Verse também tem um dispositivo Button. Quando o jogador pressionar o botão, será escolhido aleatoriamente um dos NPC Spawners do array para gerar um NPC, que pode ser um guarda, um animal ou o NPC customizado com código Verse. Este processo se repete com o uso de um loop.
No Verse Explorer, clique com o botão-direito no nome do projeto e escolha a opção Add new Verse file to project.
Em Device Name coloque random_npc_spawners e clique no botão Create Empty.
Copie o código Verse abaixo para o dispositivo random_npc_spawners:
using { /Fortnite.com/Devices }
using { /Verse.org/Simulation }
using { /Verse.org/Random }
using { /UnrealEngine.com/Temporary/Diagnostics }
random_npc_spawners := class(creative_device):
@editable
NpcSpawnerArray : []npc_spawner_device = array{}
@editable
Button : button_device = button_device{}
OnBegin<override>()<suspends>:void=
loop:
Button.InteractedWithEvent.Await()
if:
IndexSpawner: int = GetRandomInt(0, NpcSpawnerArray.Length-1)
NpcSpawner := NpcSpawnerArray[ IndexSpawner ]
then:
NpcSpawner.Spawn()
A expressão Button.InteractedWithEvent.Await() suspende a execução da função OnBegin até que o jogador pressione o botão.
Em seguida, é gerado um índice aleatório que é usado para obter a referência de um dos NPC Spawner do array. As duas expressões são falíveis e por isso elas são executadas como expressões do if que fornece um contexto de falha.
Salve o arquivo e compile o código Verse usando a opção Verse > Compile Verse Code do menu do UEFN.
Acesse o Content Drawer e adicione o novo dispositivo random npc spawners ao nível. Vamos precisar de um Button Device.
Quando um NPC Character Definition é arrastado do Content Drawer para o nível, um NPC Spawner Device é criado usando o NPC Character Definition.
Arraste para o nível os três NPC Character Definitions que foram criados.
A imagem abaixo mostra os dispositivos que serão usados.
Modifique o Spawn Count para 5 em cada dos NPC Spawner Device para permitir que cada spawner tenha vários NPCs ativos.
Também desmarque Spawn On Timer para que o NPC seja gerado apenas pelo código Verse.
Selecione o random npc spawners no nível. Na aba Details, adicione três elementos ao NpcSpawnerArray e selecione as referências dos Npc Spawners que estão no nível. Selecione também a referência do Button Device.
Salve o nível e clique no botão Launch Session para carregá-lo no Fortnite. Dentro do jogo, pressione o botão para gerar um novo NPC de um dos três tipos.








