NPCs (personagens não jogadores) podem adicionar muita profundidade a uma experiência.Todos os seguintes NPCs podem ser personalizados visualmente, seu comportamento modificado , e os zumbis/soldados podem até mesmo defender uma área atacando jogadores ou outros personagens usando um sistema de etiquetas para definir o comportamento.
Para usar um NPC em seu jogo:
Na página de itens do NPC, clique no botão verde Obter e confirme a transação.
No Roblox Studio, abra a Caixa de Ferramentas ( Ver → Caixa de Ferramentas ).
Selecione a seção da sua caixa de ferramentas Inventário .
Localize o NPC e clique nele para adicioná-lo ao local.
Estrutura de personagem
Cada modelo de NPC geralmente contém os seguintes objetos:
Nome do objeto ou [Tipo] | Tipo | Descrição |
---|---|---|
Animações | Folder | Contém Animations , como um AttackAnimation ou DeathAnimation. |
Poses iniciais | Folder | Contém informações de posicionamento. |
Animação | Script | Carrega e joga animações no modelo de personagem. Veja Anime para mais detalhes. |
[Acessório] | Accessory | Uma das possivelmente múltiplas Accessories para o NPC, como chapéus, armas, etc. |
Saúde | Script | Regenera tipicamente a saúde Humanoid ao longo do tempo. Desabilitar isso impedirá que o personagem regenere saúde. |
Humanóide | Humanoid | Gere propriedades relacionadas Humanoid relacionadas, como Humanoid.Health , Humanoid.WalkSpeed , Humanoid.DisplayDistanceType , etc. |
NPC | Script > | Define comportamentos específicos de personagens, como roaming, ataque, etc.Pais dos seguintes objetos: Empregada ( ModuleScript ) define uma classe útil na liberação de recursos usados.: Ragdoll ( ModuleScript ) define uma função que transforma um personagem em um corpo solto afetado por física (pais de um RigTypes ModuleScript que define várias funções auxiliares). |
RbxNpcSounds | Script | Define e gerencia comportamentos relacionados a efeitos de som de personagem, como correr, morrer, etc. |
Partes do Corpo | BasePart | Várias partes do corpo de personagens anexadas à HumanoidRootPart ou partes vizinhas do corpo através do Motor6D ou objetos de restrição.Veja Partes do Corpo para mais detalhes. |
Parte de Raiz Humanoide | BasePart | Uma parte invisível especial que é considerada a raiz do rig / plataforma / equipamento; este também é o PrimaryPart da personagem's Model. |
Configuração | Configuration | Contém objetos de valor que ajustam vários comportamentos. Veja Configuração para mais detalhes. |
Notas de design
Ao usar o kit NPC, tenha em mente as seguintes notas de design:
A aparência visual de um NPC pode ser personalizada adicionando/modificando vários objetos [BodyParts] e adicionando objetos Accessory.
Os Soldados, Zumbi Drooling e NP-C 9000 Robots usam Rthro como base de seu rig / plataforma / equipamento.No entanto, os Robôs RO-01 usam uma base modificada de Rthro que adiciona peças de propulsão conectadas ao Torso Superior usando WeldConstraints.Usar juntas simples dessa maneira permite que você inclua geometria extra para seus personagens sem alterar o rig / plataforma / equipamentooriginal de base.
Em um nível básico, as animações de NPC podem ser personalizadas modificando o AnimationId de objetos de animação existentes dentro das poses do script Animação , ou aqueles dentro da pasta Animações .Tal mudança é essencialmente uma troca de ativos - para alterar os detalhes finais, você pode criar cópias personalizadas de animações existentes e para jogar animações sob diferentes condições, você pode editar os scripts Animate ou NPC diretamente.Para mais informações, veja Animação.
Animação
A Animação na NPC gere configurações relacionadas à animação e contém os seguintes objetos:
Nome do objeto ou [Tipo] | Tipo | Descrição |
---|---|---|
Percento de Amortecimento de Escala | NumberValue | Define como as velocidades de animação são modificadas à medida que o personagem é dimensionado (menos de 1 implica que a reprodução de animação seja invertida à medida que um personagem é dimensionado). |
Jogar Emote | BindableFunction | Isso pode ser invocado por outros scripts para forçar a suposição de uma posição. |
[Posição] | StringValue | Referência a uma categoria de animação tocável, como inativo, andar, pular, etc.Este objeto pode ser pai de qualquer número de Animations.Estes Animations pais de um Peso ( NumberValue ) que prioriza uma das múltiplas animações para tocar enquanto a posição é assumida; geralmente usado para adicionar variedade às poses inativas e de dança. |
Partes do Corpo
A Parte do Corpo BasePart no NPC Model representa as várias partes do corpo de personagens e contém os seguintes objetos:
Nome do objeto ou [Tipo] | Tipo | Descrição |
---|---|---|
Tipo de Escala de Avatar | StringValue | Determina como a peça será escalada; os valores podem ser Clássico , ProporçõesNormais ou ProporçõesDelgadas . |
Tamanho Original | Vector3Value | Determina o tamanho da peça quando a escala de personagens é 1. |
[Ataque] | Attachment | Define um ponto relativo à peça individual que scripts, efeitos e objetos como um Tool ou Accessory podem utilizar durante a posicionamento. |
[Motor6D] | Motor6D | Uma junta animada entre duas partes do corpo.Observe que Animator depende do nome de Motor6Ds para ser consistente com o da Motor6Ds usada quando uma animação foi criada, então evite renomear este Objeto. |
[Compartilhado] | WeldConstraint , Constraint , JointInstance | Uma junta não animada entre duas partes do corpo. |
[Som] | Sound | Comumente encontrado na cabeça ou ; toca sons dentro do rig controlados pelo script . |
Configuração
Cada NPC inclui um objeto Configuration dentro de sua hierarquia que atua como um container de objetos de valor.Estes são usados pelo script do NPC para ajustar vários comportamentos.A menos que especificado de outra forma, estes se aplicam a todos os personagens.
Nome do objeto ou [Tipo] | Tipo | Descrição |
---|---|---|
Destruir ao Morte | BoolValue | Causa a destruição de todo o NPC pouco depois de morrer. Desabilite isso para que os bonecos de pano sejam persistentes. |
PatrulhaAtivada | BoolValue | Faz com que o NPC se mova em uma área ao redor de sua posição de partida. |
Patrulha de Raio | NumberValue | Define a distância máxima que um NPC irá percorrer a partir de sua posição inicial, assumindo que PatrulhaAtivada seja verdadeira. |
RagdollAtivado | BoolValue | Faz com que o NPC fique limpo quando morre, em vez de se separar. |
Danificação de Ataque | NumberValue | Define quanta saúde é perdida por uma vítima quando atacada pelo NPC. Isso se aplica apenas a kits de Zumbi e Soldado. |
Atrasador de Ataque | NumberValue | Define o número mínimo de segundos entre tiros. Isso se aplica apenas a kits de Soldado. |
Modo de Ataque | NumberValue | Especifica o que o soldado vai atacar, com base no sistema de marcação . Isso se aplica apenas a kits de Soldado. |
Raio de Ataque | NumberValue | Define a distância máxima que o NPC deve estar de uma vítima potencial antes de tentar atacar. Isso se aplica apenas a kits de Zumbi e Soldado. |
Capacidade de Corte | NumberValue | Define quantas balas o soldado pode atirar antes de precisar recarregar. Isso se aplica apenas a kits de Soldado. |
Atraso de Recarregamento | NumberValue | Define quantos segundos devem passar antes que o clipe de armas do soldado seja recarregado. Isso se aplica apenas a kits de Soldado. |
Atribuir marcas
O script NPC usa tags CollectionService para gerenciar agressão a outros personagens e jogadores.Várias etiquetas da tabela a seguir podem ser atribuídas da seguinte forma:
Para atribuir tag(s) a outro NPC, atribua-os ao nível superior do NPC usando a seção Etiquetas de suas propriedades ou o Editor de Etiquetas do Studio .
Para atribuir uma tag a um personagem Player caracter, você pode adicionar um Script a StarterCharacterScripts com um chamado CollectionService:AddTag(). Por exemplo:
local CollectionService = game:GetService("CollectionService")CollectionService:AddTag(script.Parent, "SoldierEnemy")
Marcação | Propósito |
---|---|
Inimigo de Soldado ou Amigo de Soldado | Determina se um soldado, com base em seu valor de configuração de Modo de Ataque , deve atacar outro personagem.Quando o modo de ataque do soldado é definido como AttackMode, outros personagens devem ser marcados com SoldierEnemy para serem considerados atacáveis.Quando o modo de ataque do soldado é definido como , todos os objetos sem a tag SoldadoAmigo são considerados atacáveis.Quando o modo de ataque do soldado é definido para , essas etiquetas são ignoradas completamente e o soldado atacará todos os personagens. |
Amigo Zumbi | Esta etiqueta é usada pelo zumbi para determinar se ele não deve atacar um personagem.Quando aplicado, o zumbi se torna dócil em relação ao personagem marcado. |