6 tipos de personagem NPC (com exemplos 3D ao vivo de mundos reais)
Crie seus próprios tipos de personagem NPC
Missão, vendedor, inimigo, companheiro, fundo, interativo — os seis tipos de personagem NPC, cada um ilustrado com um mundo 3D real no qual você pode entrar agora mesmo.
A maioria dos tipos de personagem NPC que chega a um mundo 3D real se encaixa em seis categorias: missão, vendedor, inimigo, companheiro, fundo e interativo. A categoria que você escolhe decide quais sistemas você precisa conectar — estado de diálogo, inventário, busca de caminhos, agressão ou absolutamente nada — e decide o que quebra primeiro quando um jogador faz algo que você não planejou.
Esta página aborda esses seis tipos de personagem NPC um de cada vez. Cada um recebe uma definição, o mecanismo que o faz funcionar na engine, o modo de falha que vemos com mais frequência e um mundo ao vivo do construtor de jogos 3D do Neta Studio que você pode percorrer em vez de olhar para uma captura de tela.
Resposta rápida: os seis tipos
Os seis tipos são os NPCs de missão, que distribuem e concluem objetivos; os NPCs vendedores, que trocam itens por moeda; os NPCs inimigos, que lutam e permanecem entre combates; os NPCs companheiros, que seguem o jogador; os NPCs de fundo, que povoam uma cena sem interagir; e os NPCs interativos, que são objetos, animais e instalações que respondem no lugar.
Essa é a taxonomia inteira em uma frase. O restante desta página os trata um de cada vez — o que cada tipo faz mecanicamente, o que quebra primeiro e um mundo do construtor que você pode abrir e percorrer.
Por que o tipo vem antes do modelo
Malha, rig e conjunto de animações são em grande parte intercambiáveis entre os tipos. A mesma malha de aldeão no mesmo clipe de ócio pode ser um fornecedor de missões, um vendedor ou um personagem de fundo. O que muda é a pilha de componentes: um grafo de diálogo, uma tabela de inventário, um agente de navmesh, um raio de agressão, um volume de gatilho ou uma flag de save.
Escolha o tipo primeiro e você passa o tempo ajustando o único sistema de que ele realmente precisa. Escolha o modelo primeiro e você constrói quatro sistemas que nunca usa. Mini World é o lugar mais barato para compará-los lado a lado, porque todos os seis cabem em uma única cena sem tela de carregamento entre eles.
NPCs de missão
Um NPC de missão é dono do estado da história. Ele oferece um objetivo, sabe se esse objetivo foi concluído e dá uma recompensa quando for. Mecanicamente, isso é um grafo de diálogo com pelo menos três condições de entrada — não iniciada, ativa, concluída — mais uma referência a uma flag de objetivo que o resto do mundo pode definir.
O modo de falha é armazenar essa flag no próprio NPC. Se o NPC for destruído, descarregado do streaming ou o mundo for recarregado, a missão volta para não iniciada enquanto o jogador ainda segura o item que lhe disseram para coletar. O jogador agora tem um item de inventário sem dono e sem entrega. Coloque a flag no save do jogador, vinculada a um ID de missão estável, e faça o grafo de diálogo ler essa variável quando o painel abrir, e não quando o NPC surgir.
A segunda coisa que precisa estar certa é a verificação de entrega. Se a conclusão só dispara dentro de um volume estreito aos pés do NPC, os jogadores que entregam de um veículo em movimento ou do outro lado de uma cerca vão perdê-la. Dê à verificação de conclusão um raio generoso mais um teste de linha de visão, e mantenha-a separada do prompt de interação, para que passar perto do NPC não conclua automaticamente uma missão que o jogador ainda não leu.
The Cyclops' Island é o caminho mais curto para ver o ciclo inteiro. Há um único fornecedor, uma curta cadeia de objetivos e uma recompensa que abre o resto da ilha. Aproxime-se, aceite o objetivo, vá embora, volte e observe o que acontece com a condição de entrada do diálogo quando você retorna com o item. Essa transição de três estados é todo o NPC de missão, e depois de vê-la uma vez, você consegue recriá-la em qualquer lugar.
NPCs vendedores
Um NPC vendedor troca itens por moeda. Essa é toda a mecânica. Mecanicamente, um vendedor são duas tabelas e uma verificação: uma lista de estoque de IDs de itens com preços de compra, uma regra de preço de venda e uma comparação de moeda que roda antes de a transação ser confirmada.
O papel econômico é maior que a transação. Os vendedores são o principal sumidouro de moeda, e é isso que impede o loot de se acumular em um número com o qual o jogador deixa de se importar. Eles também são a válvula de ritmo: o que um vendedor tem em estoque determina o que o jogador pode tentar em seguida. Quando um testador fica travado, a primeira coisa a inspecionar é o estoque do vendedor, não a dificuldade dos inimigos.
Este é o tipo mais fácil de construir. Um volume de gatilho, uma lista de itens e um painel. Sem navmesh, sem agressão, sem grafo de diálogo, se você não quiser um. O painel é a maior parte do trabalho.
Também é o tipo mais fácil de deixar entediante. Estoque fixo transforma um vendedor em uma máquina de venda automática: o jogador compra uma vez e nunca mais volta. Duas correções baratas. Primeiro, reabastecer — mude a lista de estoque em um temporizador ou quando um evento do mundo disparar. Segundo, bloqueio — esconda itens até o jogador ter ido a algum lugar ou ter concluído algo. Nenhuma das duas precisa de um sistema novo. Mantenha o preço de venda estritamente abaixo do preço de compra, ou o jogador tem um ciclo infinito e a economia acaba antes da segunda área.
NPCs inimigos
Um NPC inimigo é um ator hostil que existe no mundo esteja o jogador lutando contra ele ou não. Ele tem estados fora de combate — ócio, patrulha, alerta — e uma transição para o combate. Essa é a linha entre um NPC inimigo e um simples oponente controlado pela CPU.
Um oponente controlado pela CPU existe apenas dentro de uma partida. Ele surge no início da partida, é removido no fim e não carrega estado entre rodadas. Seu comportamento é limitado pelas regras da partida, e a partida é o mundo inteiro. Um NPC inimigo precisa responder a perguntas que nunca são feitas a um oponente controlado pela CPU: para onde ele vai quando o jogador sai, ele volta depois de morrer, ele ainda existe depois que o jogador salva e recarrega.
Por que a distinção importa para o design: o posicionamento de NPCs inimigos é design de nível, não ajuste de partida. Você está escolhendo raio de agressão, rota de patrulha e distância de coleira em coordenadas do mundo, e esses números mudam como o nível é lido. Um raio de agressão maior que as linhas de visão do nível inicia o combate antes de o jogador conseguir ver o inimigo. Uma coleira longa demais transforma um combate em uma perseguição pelo mapa que arrasta todos os outros encontros para dentro dela. Dê a cada inimigo três números por instância que você pode ajustar: raio de agressão, distância de coleira e tempo para desengajar.
A persistência é a outra metade. Decida por inimigo se ele reaparece e em qual gatilho — ao recarregar o mundo, em um temporizador ou nunca. Se você não decidir, o comportamento padrão é quase sempre nunca, e você terá apagado silenciosamente um pedaço do mundo depois de uma jogada. A morte do inimigo também precisa de uma regra de cadáver: ou o corpo desaparece em um temporizador e solta o loot naquele momento, ou ele permanece e a tabela de loot é lida do cadáver. Misturar as duas coisas produz inimigos que podem ser saqueados duas vezes.
NPCs companheiros
Um companheiro segue o jogador, participa da travessia ou do combate e carrega estado entre cenas — vida, inventário, às vezes afinidade. É o único tipo que fica na tela a maior parte do tempo e faz algo na maioria desses quadros.
O problema de caminho é o que torna os companheiros difíceis. Um companheiro é um agente de navmesh cujo alvo é outro agente em movimento. As portas falham primeiro: se o raio do agente no companheiro for maior que a abertura da porta menos a folga, ele se recusa a passar e o jogador segue sozinho. Escadas estreitas, escadas de mão e plataformas móveis falham da mesma forma. Três configurações dão conta da maior parte disso. Deslocamento de seguimento — mirar em um ponto atrás do jogador em vez de no transform exato do jogador —, uma distância de parada para que o companheiro não invada a câmera e uma regra de recuperação.
A regra de recuperação não é opcional. Se o companheiro ficou fora da linha de visão por mais de alguns segundos e está mais de alguns comprimentos de corpo atrás, teletransporte-o para o ponto de navmesh mais próximo atrás do jogador. Todo jogador acaba deixando um companheiro preso na geometria, e todo jogador percebe quando isso acontece. Sem o teletransporte, a falha não é que o companheiro se perde; é que o jogador precisa voltar para buscá-lo, duas vezes, e depois para de levá-lo.
Essa superfície de contato também é o motivo de os companheiros serem o tipo mais difícil de lançar. Um companheiro toca tudo: ele atrai a agressão dos inimigos, bloqueia o próprio movimento do jogador, aciona placas de pressão, conta no orçamento de spawns, aparece em sequências roteirizadas que foram bloqueadas para um ator só e fica na frente da câmera durante o diálogo. Todos os outros sistemas agora precisam responder o que o companheiro faz ali. Um vendedor não faz nada quando você passa por ele. Um companheiro faz algo em todas as cenas, inclusive naquelas que nunca foram projetadas para ele. É por isso que os companheiros são cortados com mais frequência do que qualquer outra coisa desta lista.
NPCs de fundo
Um NPC de fundo existe para fazer um lugar parecer habitado. Sem diálogo, sem inventário, sem interação. Normalmente três ou quatro clipes de ócio, um loop de caminhada e ou um caminho por spline ou um pequeno raio de patrulha.
Você precisa de menos deles do que imagina. O que conta é quantos estão dentro do frustum da câmera ao mesmo tempo, não quantos existem no nível. Uma rua parece povoada com um punhado de personagens visíveis, desde que alguns deles estejam se movendo. O olho lê movimento e silhueta, não contagem de cabeças. Coloque um conjunto esparso de âncoras onde a câmera realmente olha — ao longo da rota principal, perto das portas que o jogador usa — e deixe o resto do nível vazio.
A coisa específica que faz uma multidão parecer errada é a sincronização. Se todos os NPCs de fundo começam o mesmo ócio no mesmo quadro, a cena parece uma fileira de manequins. Desloque o início do clipe de cada instância por uma fração aleatória da duração do clipe e dê aos personagens que andam velocidades ligeiramente diferentes, para que se separem ao longo de uma linha de visão longa. Agent Sprite Forge é a maneira mais rápida de produzir o pequeno conjunto de clipes de que uma multidão precisa — alguns ócios e uma caminhada — sem animar cada personagem à mão.
O controle de custo importa mais aqui do que em qualquer outro lugar, porque os NPCs de fundo são o único tipo que você coloca em massa. Mantenha-os fora do navmesh para que não consumam consultas de caminho de que os agentes reais precisam. Compartilhe um único esqueleto e um único atlas de material entre todos eles. Dê a eles ou nenhuma colisão, ou um raio de empurrão que não possa bloquear o jogador. E não dê a nenhum um grafo de diálogo na esperança de que o jogador fale com ele — uma fala de espaço reservado ensina ao jogador que o mundo é raso, e ele vai testar.
NPCs interativos
NPCs interativos respondem no lugar: botões, alavancas, portas, placas, animais. Eles têm um estado e uma resposta. Não têm agenda, rota nem árvore de diálogo.
A fronteira com um objeto de cenário é o estado. Um objeto de cenário reproduz uma animação e volta ao repouso, ou faz uma coisa sem memória de tê-la feito. No momento em que um objeto tem uma variável de estado persistente — trancado ou destrancado, ligado ou desligado, alimentado ou com fome — e se comporta de maneira diferente na segunda interação, ele está em território de NPC e precisa da mesma disciplina de save que uma flag de missão. Um bit de estado e uma resposta é um objeto de cenário. Dois ou mais estados com respostas diferentes é um NPC, mesmo quando o NPC é uma porta.
Os animais pertencem a esta categoria, não ao fundo. Um animal que foge quando o jogador cruza um raio tem uma entrada de percepção e uma resposta, o que é uma pequena máquina de estados. A implementação é a mesma que você usaria para uma porta: um raio de interação ou de percepção, uma variável de estado gravada no save e uma máquina de estados de animação com pelo menos dois clipes.
O modo de falha são prompts que disparam através da geometria. Se o raio de interação é generoso e o teste de linha de visão está faltando, os jogadores recebem um prompt de interação para uma porta do outro lado de uma parede. Condicione o prompt a um raycast mais o raio, e condicione a interação em si à mesma verificação, e não apenas ao prompt. Caso contrário, o prompt desaparece na parede, mas uma entrada na fila ainda abre a porta.
Qual tipo você deve construir?
Escolha pelo objetivo, não pela aparência do personagem. A primeira coluna é o que você quer que o jogador faça. A segunda é o tipo que produz isso. A terceira é a coisa que fica caro mudar depois que todo o resto é construído em cima dela.
Se um personagem faz dois trabalhos, construa-o como um único personagem com dois conjuntos de componentes, em vez de dois personagens lado a lado. Um vendedor que também dá uma missão é um único interativo com dois painéis e uma única referência de save compartilhada. O custo é que os dois fluxos agora precisam ser testados um contra o outro — um jogador que termina a missão antes de abrir a loja vai encontrar o estoque em um estado para o qual talvez você não tenha escrito um caso.
Se você não tem certeza de onde um personagem se encaixa, comece pelo fundo e acrescente. Adicionar um volume de gatilho e um grafo de diálogo transforma um NPC de fundo em um fornecedor de missões sem tocar na malha. O inverso é caro: remover a interação de um companheiro significa testar de novo cada cena em que ele apareceu.
| Objetivo | Tipo | Primeira coisa a acertar |
|---|---|---|
| O jogador precisa de um motivo para viajar a algum lugar | NPC de missão | Flag de missão no save do jogador, vinculada a um ID de missão estável |
| O jogador precisa converter loot em equipamento utilizável | NPC vendedor | Tabela de estoque mais uma verificação de moeda que roda antes de a transação ser confirmada |
| O jogador precisa de um teste de habilidade ou de recurso | NPC inimigo | Raio de agressão, distância de coleira e tempo para desengajar, ajustados por instância |
| O jogador precisa sobreviver a uma rota longa | NPC companheiro | Deslocamento de seguimento, distância de parada e uma regra de teletransporte de recuperação |
| A cena precisa parecer habitada | NPC de fundo | Clipes compartilhados com deslocamentos de fase aleatórios e nenhum agente de navmesh |
| O mundo precisa reagir ao jogador no lugar | NPC interativo | Uma variável de estado persistente e um volume de gatilho com uma condição de linha de visão |
Entre no mundo ao qual ele pertence
Um sprite é um personagem sem lugar para ficar. O último passo é o que ninguém mais oferece: pegue a folha que você acabou de criar e coloque-a em um mundo pelo qual alguém possa andar — uma pequena ilha, um planeta, uma esquina de rua chuvosa. Cada mundo neste site foi feito a partir de uma descrição escrita e publicado como uma página que você pode jogar.
FAQ
Quantos tipos de personagem NPC existem? +
Seis, conforme os dividimos: missão, vendedor, inimigo, companheiro, fundo e interativo. A divisão é funcional, não biológica. Ela é organizada pelos sistemas de que o personagem precisa — estado de diálogo, inventário, busca de caminhos, agressão ou uma única flag de estado — então dois personagens com modelos completamente diferentes podem ser do mesmo tipo.
Um inimigo é um NPC? +
Sim, se ele existe no mundo fora do combate. Um NPC inimigo tem estados de ócio, patrulha e alerta, e persiste entre combates, então precisa de uma regra de reaparecimento e de uma regra de save. Um oponente controlado pela CPU que só existe dentro de uma partida não é um NPC nesse sentido, porque nada nele sobrevive à partida.
Qual tipo é o mais fácil de construir? +
Vendedor. Um volume de gatilho, uma lista de itens com preços, uma verificação de moeda e um painel. Não há navmesh, nem grafo de diálogo, nem estado a persistir além do inventário e do dinheiro do jogador, que você já tem.
NPCs companheiros precisam de AI? +
Eles precisam de caminho e de uma regra de seguimento muito mais do que precisam de tomada de decisão. A parte difícil é permanecer no navmesh ao lado de um alvo em movimento por portas e escadas, além de um teletransporte de recuperação para quando isso falhar. Escolher o que o companheiro ataca é a parte pequena do trabalho.
O que é um NPC de fundo? +
Um personagem não interativo colocado para fazer uma cena parecer habitada. Sem diálogo, sem inventário, normalmente sem agente de navmesh e muitas vezes sem colisão. Ele existe para a câmera, então o que importa é quantos estão visíveis ao mesmo tempo e se seus loops de animação estão deslocados uns em relação aos outros.
Um NPC pode ser dois tipos? +
Sim, e normalmente deveria ser — um vendedor que também dá uma missão é um único interativo com dois painéis e uma única referência de save compartilhada. O custo é o teste combinatório: cada estado de missão multiplicado por cada estado de loja é um caso que você precisa verificar, e os que os jogadores encontram primeiro são os que você não escreveu.
Voltar ao Construtor de Jogos 3D
Todos os 31 mundos, jogos e cenas 3D finalizados vivem em uma única página — todos eles jogáveis.