Kit di NPC

*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.

I NPC (personaggi non giocatori) possono aggiungere molta profondità a un'esperienza.Tutti i seguenti NPC possono essere personalizzati visivamente, il loro comportamento modificato, e gli zombie/soldati possono persino difendere un'area attaccando i giocatori o altri personaggi usando un sistema di etichette per impostare il comportamento.

Per utilizzare un NPC nel tuo Gioco:

  1. Seleziona uno dei seguenti kit NPC:

    Zombie Drooling
    Soldati
    Robot RO-01
    Robot NP-C 9000
  2. Sulla pagina dell'elemento del NPC, fai clic sul pulsante verde Ottieni e conferma la transazione.

  3. In Roblox Studio, apri la Toolbox ( VediToolbox ).

  4. Seleziona la sezione Inventory della tua toolbox.

  5. Individua il NPC e cliccalo per aggiungerlo al Posto.

Struttura del personaggio

Ogni modello NPC tipicamente contiene i seguenti oggetti:

Nome oggetto o [Tipo]TipoDescrizione
AnimazioniFolderContiene Animations , come un AttackAnimation o DeathAnimation .
Posizioni inizialiFolderContiene informazioni di posing.
AnimareScriptCarica e riproduce le animazioni sul character Piattaforma di test. Vedi Anima per maggiori dettagli.
[Accessorio]AccessoryUna di possibilmente multiple Accessories per il NPC come cappelli, armi, ecc.
SaluteScriptTipicamente rigenera la salute Humanoid nel tempo. Disabilitare questo impedirà al personaggio di rigenerare la salute.
UmanoideHumanoidGestisce Humanoid proprietà correlate, come Humanoid.Health , Humanoid.WalkSpeed , Humanoid.DisplayDistanceType , ecc.
NPCScript >

Definisce comportamenti specifici del personaggio come il roaming, l'attacco, ecc.Genitori dei seguenti oggetti:

Maid ( ModuleScript ) definisce una classe utile per rilasciare le risorse utilizzate.:

Ragdoll ( ModuleScript ) definisce una funzione che trasforma un personaggio in un corpo lento colpito dalla fisica (parents un RigTypes ModuleScript che definisce diverse funzioni ausiliarie).

Suoni RbxNpcScriptDefinisce e gestisce il comportamento correlato agli effetti sonori del personaggio come correre, morire, ecc.
Parti del corpoBasePartDiverse parti del corpo del personaggio attaccate alla HumanoidRootPart o alle parti del corpo vicine attraverso Motor6D o oggetti di restrizione.Vedi BodyParts per maggiori dettagli.
Parte radicale umanoideBasePartUna parte invisibile speciale che viene considerata la radice della Piattaforma di test; questa è anche la PrimaryPart del personaggio di Model.
ConfigurazioneConfigurationContiene oggetti di valore che tuning varie comportamenti. Vedi Configurazione per maggiori dettagli.

Note di design

Quando si utilizza il kit NPC, tieni presente le seguenti note di progettazione:

  • L'aspetto visivo di un NPC può essere personalizzato aggiungendo/modificando vari oggetti [BodyParts] e aggiungendo oggetti Accessory.

  • I soldati, lo zombie gocciolante e i robot NP-C 9000 utilizzano Rthro come base del loro Piattaforma di test.Tuttavia, i robot RO-01 utilizzano una base Rthro modificata che aggiunge parti thruster connesse al Torso superiore utilizzando WeldConstraints .L'uso di articolazioni semplici in questo modo ti consente di includere una geometria extra per i tuoi personaggi senza modificare la base originale del Piattaforma di test.

  • A Livellodi base, le animazioni NPC possono essere personalizzate modificando il AnimationId di oggetti di animazione esistenti all'interno delle posizioni di script Animare o quelle all'interno della cartella Animazioni .Un tale cambiamento è essenzialmente uno scambio di risorse - per modificare i dettagli più fini, puoi creare copie personalizzate di animazioni esistenti e per giocare le animazioni in condizioni diverse, puoi modificare gli script Animate o NPC direttamente.Per ulteriori informazioni, vedi Animazione .

Animare

L'Animazione nell'NPC gestisce le configurazioni relative all'animazione e contiene i seguenti oggetti:

Nome oggetto o [Tipo]TipoDescrizione
ScaleDampeningPercentNumberValueDefinisce come le velocità di animazione vengono modificate quando il personaggio viene ridimensionato (meno di 1 implica che le scale di riproduzione dell'animazione vengono invertite all'interno di un personaggio quando viene ridimensionato).
GiocaEmoteBindableFunctionQuesto può essere invocato da altri script per forzare l'assunzione di una posa.
[Posa]StringValueRiferimento a una categoria di animazione riproducibile come Inattivo, Inattiva, Inattivi, Salta, Camminata, ecc.Questo oggetto può genere qualsiasi numero di Animations . Questi Animations genitori a Peso ( NumberValue ) che priorizza una delle multiple animazioni da giocare mentre la posa è supposta; tipicamente usato per aggiungere varietà alle posizioni inattive e di danza.

Parti del corpo

La BodyPart BasePart nel NPC Model rappresenta le varie parti del corpo dei personaggi e contiene i seguenti oggetti:

Nome oggetto o [Tipo]TipoDescrizione
Tipo di scala dell'avatarStringValueDetermina come verrà ridimensionata la parte; i valori possono essere Classico , ProporzioniNormali o ProporzioniSottili .
Dimensione originaleVector3ValueDetermina la dimensione della parte quando la ridimensionamento del personaggio è 1.
[Allegato]AttachmentDefinisce un punto relativo alla parte individuale che gli script, gli effetti e gli oggetti come un Tool o un Accessory possono utilizzare durante la posizionamento.
[Motore6D]Motor6DUna giunta animata tra due parti del corpo.Nota che Animator dipende dal nome di Motor6Ds per essere coerente con quello dell'Motor6Ds utilizzato quando è stata creata un'oggetto, quindi evita di rinominarlo.
[Congiunto]WeldConstraint , Constraint , JointInstanceUna giunta non animata tra due parti del corpo.
[Suono]SoundComunemente trovato nella testa o HumanoidRootPart ; riproduce suoni all'interno del rig come controllati dallo script RbxNpcSounds.

Configurazione

Ogni NPC include un oggetto Configuration all'interno della sua gerarchia che funge da contenitore di oggetti di valore.Vengono utilizzati dallo script NPC per regolare vari comportamenti.A meno che non sia diversamente specificato, questi si applicano a tutti i personaggi.

Nome oggetto o [Tipo]TipoDescrizione
DistruggiOnDeathBoolValueCausa la distruzione di tutto l'NPC poco dopo la sua morte. Disabilita questo per i ragdoll essere persistenti.
PatrollatoAbilitatoBoolValueFa sì che il NPC si aggiri in un'area intorno alla sua posizione di partenza.
Raggio di PatrolamentoNumberValueDefinisce la distanza massima che un NPC vagherà dalla sua posizione di partenza, supponendo che PatrolEnabled sia vero.
RagdollAbilitatoBoolValueFa sì che l'NPC vada limpido quando muore, invece di rompersi.
Danno di AttaccoNumberValueDefinisce quanta salute viene persa da una vittima quando viene attaccata dall'NPC. Si applica solo ai kit Zombie e Soldato.
Ritardo AttaccoNumberValueDefinisce il numero minimo di secondi tra i colpi. Si applica solo ai kit del Soldato.
Modalità attaccoNumberValueSpecifica ciò che il soldato attaccherà, in base al sistema di marcatura. Questo si applica solo ai kit del soldato.
Raggio di AttaccoNumberValueDefinisce la distanza massima a cui il NPC deve essere da una potenziale vittima prima di tentare di attaccare. Si applica solo ai kit Zombie e Soldato.
Capacità di clipNumberValueDefinisce quante pallottole il soldato può sparare prima di ricaricare. Si applica solo ai kit del soldato.
Ritardo di ricaricaNumberValueDefinisce quanti secondi devono passare prima che la clip dell'arma del soldato venga ricaricata. Si applica solo ai kit del soldato.

Assegna etichette

Lo script NPC utilizza i tag CollectionService per gestire l'aggressione verso altri personaggi e giocatori.Diverse etichette dalla tabella seguente possono essere assegnate come segue:

  • Per assegnare un tag (o più) a un altro NPC, assegnarli al livello superiore dell'NPC utilizzando la sezione Tag delle sue proprietà, o l'editor di tag di Studio .

  • Per assegnare un tag a un personaggio Player , puoi aggiungere un Script a StarterCharacterScripts con una chiamata CollectionService:AddTag(). Ad esempio:


    local CollectionService = game:GetService("CollectionService")
    CollectionService:AddTag(script.Parent, "SoldierEnemy")
EtichettaScopo
Soldato nemico o Soldato amico

Determina se un soldato, in base al suo valore di configurazione AttackMode , debba attaccare un altro personaggio.Quando l'attacco del soldato è impostato su ModalitàAttacco , gli altri personaggi devono essere contrassegnati con SoldierEnemy per essere considerati attaccabili.Quando l'attacco del soldato è impostato su ModalitàAttacco , tutti gli oggetti senza il tag SoldierFriend sono considerati attaccabili.Quando l'attacco del soldato è impostato su Modalità Attacco a , questi tag vengono ignorati completamente e il soldato attaccherà tutti i personaggi.

Amico zombie Questo tag viene utilizzato dallo zombie per determinare se non dovrebbe attaccare un personaggio.Quando viene applicato, lo zombie diventa docile verso il personaggio contrassegnato.