I NPC (non-player) 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 usare un NPC nel tuo Gioco:
Seleziona uno dei seguenti kit NPC:
Nella pagina dell'elemento NPC, fai clic sul pulsante verde Ottieni e conferma la transazione.
In Roblox Studio, apri la Toolbox ( Visualizza → Toolbox ).
Seleziona la tua toolbox Inventario sezione.
Trova il NPC e clicca per aggiungerlo al Posto.
Struttura del personaggio
Ogni modello NPC tipicamente contiene i seguenti oggetti:
Nome dell'oggetto o [Tipo] | Tipo | Descrizione |
---|---|---|
Animazioni | Folder | Contiene Animations , come un AttackAnimation o DeathAnimation . |
Posizioni iniziali | Folder | Contiene informazioni di posizionamento. |
Animare | Script | Carica e riproduce animazioni sulla Piattaforma di testdel personaggio. Vedi Animare per ulteriori dettagli. |
[Accessori] | Accessory | Uno dei possibili più Accessories per l'NPC come cappelli, armi, ecc. |
Salute | Script | Tipicamente rigenera la salute Humanoid nel tempo. Disabilitando questo impedirà al personaggio di rigenerare la salute. |
Umanoide | Humanoid | Gestisce le proprietà Humanoid , come Humanoid.Health, Humanoid.WalkSpeed, 1> Class.Humanoid.DisplayDistanceType1>, ecc. |
NPC | Script | Defines character-specific behaviors such as roaming, attacking, etc. Parents the following objects: Maid ( ModuleScript ) defines a class useful in releasing resources used. 2> 3>Ragdoll |
Suoni RbxNpc | Script | Difini e gestisci comportamenti relativi agli effetti sonori del personaggio come l'esecuzione, la morte, ecc. |
Parti del corpo | BasePart | Varie parti del corpo del personaggio attaccate alla parte superiore dell'albero umano o alle parti del corpo vicine tramite Motor6D o oggetti di limitazione. Vedi BodyParts per ulteriori dettagli. |
Parte umanoide | BasePart | Una parte invisibile speciale che è considerata la radice del Piattaforma di test; questo è anche il PrimaryPart del personaggio's Model . |
Configurazione | Configuration | Contiene oggetti di valore che regolano diversi comportamenti. Vedi Configurazione per ulteriori dettagli. |
Note di design
Quando si utilizza il kit NPC, tieni presente le seguenti note di design:
L'aspetto visivo di un NPC può essere personalizzato aggiungendo/modificando varie [BodyPart] oggetti e aggiungendo Accessory oggetti.
I Soldati, Drooling Zombie e NP-C 9000 Robots utilizzano Rthro come base della loro Piattaforma di test. Tuttavia, i RO-01 Robots utilizzano una base Rthro modificata che aggiunge parti di spinta connesse all' UpperTorso utilizzando WeldConstraints . Utilizzando le semplici articolazioni in questo modo puoi includere una geometria Piattaforma di testper i tuoi person
A Livellodi base, le animazioni NPC possono essere personalizzate modificando il AnimationId di esse oggetti di animazione esistenti all'interno della posizione di script Animate o quelle all'interno della cartella Animazioni . Tale
Animazione
L'Animazione Script nella maniglia NPC Model gestisce le configurazioni correlate all'animazione e contiene i seguenti oggetti:
Nome dell'oggetto o [Tipo] | Tipo | Descrizione |
---|---|---|
ScaleDampeningPercent | NumberValue | Define come le velocità di animazione vengono modificate mentre il personaggio viene ingrandito (meno di 1 implica che l'animazione viene riprodotta in modo inversato mentre il personaggio viene ingrandito). |
Emote di gioco | BindableFunction | Questo può essere invocato da altri script per forzare l'assunzione di una posa. |
[Pose] | StringValue | Riferimento a una categoria di animazione giocabile come inattiva, Salta, Camminata, ecc. Questo oggetto può essere genitore di qualsiasi numero di Animations . Questi genitori 5> Class.Animation|Animazioni5> sono genitori di un 8> Weight8> ( 1> Class.NumberValue 1> ) che prioritizza una delle |
Parti del corpo
The BodyPart BasePart in the NPC Model rappresenta le varie parti del corpo del personaggio e contiene i seguenti oggetti:
Nome dell'oggetto o [Tipo] | Tipo | Descrizione |
---|---|---|
AvatarPartScaleType | StringValue | Determina il modo in cui viene ridimensionata la parte; i valori possono essere Classici , ProportioniNormali o ProportioniSlender . |
Dimensione originale | Vector3Value | Determina la dimensione della parte quando lo scaling del personaggio è 1. |
[Accessorio] | Attachment | Difini un punto rispetto alla parte individuale che gli script, gli effetti e gli oggetti come un Tool o un Accessory possono utilizzare durante la posizione. |
[Motore6D] | Motor6D | Un'animazione congiunta tra due parti del corpo. Nota che Animator dipende dal nome di Motor6Ds per essere coerente con quello dell'animazione usata quando è stata creata, quindi evita di rinominare questo oggetto. |
[Joint] | WeldConstraint , Constraint , JointInstance | Una joint non animata tra due parti del corpo. |
[Suono] | Sound | Comunemente trovato nella testa o HumanoidRootPart ; riproduce suoni all'interno del rig controllato dalla script RbxNpcSounds . |
Configurazione
Ogni NPC include un oggetto Configuration all'interno della sua gerarchia che agisce come un container di oggetti di valore. Questi vengono utilizzati dal script NPC per ottimizzare diversi comportamenti. A meno che non sia specificato altrimenti, questi si applicano a tutti i personaggi.
Nome dell'oggetto o [Tipo] | Tipo | Descrizione |
---|---|---|
Destruzione in caso di morte | BoolValue | Causa l'intero NPC essere distrutto poco dopo la sua morte. Disabilita questo per i ragdolls essere persistenti. |
PatrolEnabled: | BoolValue | Causa il NPC a vagare in un'area intorno alla sua posizione di partenza. |
Raggio di Patrouille | NumberValue | Define la distanza massima che un NPC perderà dalla sua posizione di partenza, supponendo che PatrolEnabled sia vero. |
RagdollAbilitato | BoolValue | Fa in modo che il NPC vada incontro a un limbo quando muore, invece di rompersi. |
Danno d'attacco | NumberValue | Difini quanta salute viene persa da una vittima quando viene attaccata dall'NPC. Questo si applica solo ai kit Zombie e Soldato. |
Ritardo di attacco | NumberValue | Difini il numero minimo di secondi tra i colpi. Questo si applica solo ai kit dei soldati. |
Modalità attacco | NumberValue | Specifica cosa attaccherà il soldato, in base al sistema di etichettatura. Questo si applica solo ai kit del soldato. |
Raggio d'attacco | NumberValue | Difini la distanza massima che l'NPC deve essere da una potenziale vittima prima di tentare di attaccare. Questo si applica solo ai kit Zombie e Soldato. |
Capacità di clip | NumberValue | Difiniisce il numero di proiettili che il soldato può sparare prima di dover ricaricare. Questo si applica solo ai kit del soldato. |
Ritardo di ricarica | NumberValue | Difini il numero di secondi prima che il Clip dell'arma del soldato sia ricaricato. Questo si applica solo ai kit del soldato. |
Assegnare Tag
Lo script NPC usa CollectionService tags per gestire l'aggressione verso altri personaggi e giocatori. Diversi tag dalla seguente tabella possono essere assegnati come segue:
Per assegnare i tag a un altro NPC, assegnali al livello superiore di Model utilizzando la sezione Tag della sua proprietà, o il Editor dei Tag di Studio.
Tag | Scopo |
---|---|
Soldato nemico o Soldato amico | Determina se un soldato, in base alla sua configurazione AttackMode , dovrebbe attaccare un altro personaggio. Quando |
ZombieFriend | Questa etichetta viene utilizzata dal zombie per determinare se non dovrebbe attaccare un personaggio. Quando viene applicata, la zombie diventa docile verso il personaggio contrassegnato. |