Kit NPC

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

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

Per utilizzare un NPC nel tuo gioco:

  1. Seleziona uno dei seguenti kit NPC:

    Zombie che sbava
    Soldati
    Robot RO-01
    Robot NP-C 9000
  2. Nella pagina dell'oggetto NPC, fai clic sul pulsante verde Ottieni e conferma la transazione.

  3. In Studio, apri il Toolbox.

  4. Seleziona la sezione Inventario del tuo toolbox.

  5. Individua l'NPC e cliccaci sopra per aggiungerlo nel posto.

Struttura del personaggio

Ogni modello NPC contiene tipicamente i seguenti oggetti:

Nome oggetto o [Tipo]TipoDescrizione
AnimazioniFolderContiene Animazioni, come un AttackAnimation o DeathAnimation.
Pose InizialiFolderContiene informazioni di posizionamento.
AnimateScriptCarica e riproduce animazioni sul rig del personaggio. Vedi Animate per ulteriori dettagli.
[Accessorio]AccessoryUno dei possibili diversi Accessori per l'NPC come cappelli, armi, ecc.
SaluteScriptRigenera tipicamente la salute del Humanoid nel tempo. Disabilitare questo impedisce al personaggio di rigenerare salute.
UmanoideHumanoidGestisce le proprietà relative all'Humanoid, come Humanoid.Health, Humanoid.WalkSpeed, Humanoid.DisplayDistanceType, ecc.
NPCScript

Definisce comportamenti specifici del personaggio, come vagare, attaccare, ecc. Parent il seguente oggetto:

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

Ragdoll (ModuleScript) definisce una funzione che trasforma un personaggio in un corpo informale influenzato dalla fisica (parenta un RigTypes ModuleScript che definisce diverse funzioni di supporto).

RbxNpcSoundsScriptDefinisce e gestisce il comportamento relativo agli effetti sonori del personaggio come correre, morire, ecc.
BodyPartsBasePartDiverse parti del corpo del personaggio attaccate al HumanoidRootPart o a parti del corpo vicine tramite oggetti Motor6D o vincoli. Vedi BodyParts per ulteriori dettagli.
HumanoidRootPartBasePartUna parte speciale invisibile considerata la radice del rig; questa è anche la PrimaryPart del Model del personaggio.
ConfigurazioneConfigurationContiene oggetti valore che regolano vari comportamenti. Vedi Configurazione per ulteriori dettagli.

Note di design

Quando utilizzi il kit NPC, tieni a mente le seguenti note di design:

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

  • I Soldati, Zombie che sbava e Robot NP-C 9000 utilizzano Rthro come base del loro rig. Tuttavia, i Robot RO-01 utilizzano una base Rthro modificata che aggiunge parti di razzo collegate all'UpperTorso usando WeldConstraints. Utilizzare giunti semplici in questo modo ti consente di includere ulteriore geometria per i tuoi personaggi senza modificare il rig di base originale.

  • A un livello base, le animazioni NPC possono essere personalizzate modificando l'AnimationId degli oggetti Animazione esistenti all'interno delle pose dello script Animate o di quelle all'interno della cartella Animazioni. Tale cambiamento è essenzialmente uno scambio di asset - per modificare i dettagli minori, puoi creare copie personalizzate delle animazioni esistenti e per riprodurre animazioni in diverse condizioni, puoi modificare direttamente gli script Animate o NPC. Per maggiori informazioni, vedi Animazione.

Animate

Lo script Script Animate nel Model NPC gestisce le configurazioni relative all'animazione e contiene i seguenti oggetti:

Nome oggetto o [Tipo]TipoDescrizione
ScaleDampeningPercentNumberValueDefinisce come le velocità delle animazioni vengono modificate man mano che il personaggio viene scalato (un valore inferiore a 1 implica che la riproduzione dell'animazione scala inversamente man mano che un personaggio viene scalato).
PlayEmoteBindableFunctionQuesto può essere invocato da altri script per forzare l'assunzione di una posa.
[Pose]StringValueRiferimento a una categoria di animazione riproducibile come fermo, salto, camminare, ecc. Questo oggetto può parentare un numero qualsiasi di Animazioni.

Queste Animazioni parentano un Weight (NumberValue) che priorizza una delle molteplici animazioni da riprodurre mentre la posa è assunta; tipicamente usato per aggiungere varietà alle pose ferme e di danza.

BodyParts

La parte del corpo BasePart nel Model NPC rappresenta le varie parti del corpo del personaggio e contiene i seguenti oggetti:

Nome oggetto o [Tipo]TipoDescrizione
AvatarPartScaleTypeStringValueDetermina come la parte sarà scalata; i valori possono essere Classic, ProportionsNormal, o ProportionsSlender.
OriginalSizeVector3ValueDetermina la dimensione della parte quando la scala del personaggio è 1.
[Attachment]AttachmentDefinisce un punto relativo alla parte individuale che script, effetti, e oggetti come un Tool o Accessory possono utilizzare durante il posizionamento.
[Motor6D]Motor6DUna giuntura animata tra due parti del corpo. Nota che Animator dipende dal nome dei Motor6Ds per essere coerente con quello dei Motor6Ds utilizzati quando è stata creata un'animazione, quindi evita di rinominare questo oggetto.
[Joint]WeldConstraint, Constraint, JointInstanceUna giuntura non animata tra due parti del corpo.
[Sound]SoundComunemente trovato nella testa o HumanoidRootPart; riproduce suoni all'interno del rig come controllato dallo script RbxNpcSounds.

Configurazione

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

Nome oggetto o [Tipo]TipoDescrizione
DestroyOnDeathBoolValueCauses l'intero NPC a essere distrutto poco dopo la sua morte. Disabilita questo per fare in modo che i ragdoll siano persistenti.
PatrolEnabledBoolValueFa sì che l'NPC vaghi in un'area intorno alla sua posizione di partenza.
PatrolRadiusNumberValueDefinisce la massima distanza che un NPC può vagabondare dalla sua posizione di partenza, assumendo che PatrolEnabled sia vero.
RagdollEnabledBoolValueFa sì che l'NPC diventi floscio quando muore, invece di rompersi in pezzi.
AttackDamageNumberValueDefinisce quanto salute viene persa da una vittima quando attaccata dall'NPC. Questo si applica solo ai kit Zombie e Soldati.
AttackDelayNumberValueDefinisce il numero minimo di secondi tra i colpi. Questo si applica solo ai kit Soldati.
AttackModeNumberValueSpecifica cosa attaccherà il soldato, basato sul sistema di tagging. Questo si applica solo ai kit Soldati.
AttackRadiusNumberValueDefinisce la massima distanza che l'NPC deve avere da una potenziale vittima prima di tentare di attaccare. Questo si applica solo ai kit Zombie e Soldati.
ClipCapacityNumberValueDefinisce quanti proiettili il soldato può sparare prima di aver bisogno di ricaricare. Questo si applica solo ai kit Soldati.
ReloadDelayNumberValueDefinisce quanti secondi devono passare prima che il caricatore dell'arma del soldato venga ricaricato. Questo si applica solo ai kit Soldati.

Assegna tag

Lo script NPC utilizza i tag del CollectionService per gestire l'aggressività verso altri personaggi e giocatori. Vari tag della seguente tabella possono essere assegnati come segue:

  • Per assegnare tag ad un altro NPC, falli assegnare al Model principale dell'NPC utilizzando la sezione Tags delle sue proprietà.

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


    local CollectionService = game:GetService("CollectionService")
    CollectionService:AddTag(script.Parent, "SoldatoNemico")
TagScopo
SoldatoNemico o SoldatoAmicoDetermina se un soldato, basato sul suo valore di configurazione AttackMode, dovrebbe attaccare un altro personaggio. Quando AttackMode del soldato è impostato su 1, altri personaggi devono essere contrassegnati con SoldatoNemico per essere considerati attaccabili. Quando AttackMode del soldato è impostato su 2, tutti gli oggetti senza il tag SoldatoAmico vengono considerati attaccabili. Quando AttackMode del soldato è impostato su 3, questi tag vengono completamente ignorati e il soldato attaccherà tutti i personaggi.
ZombieAmicoQuesto tag è utilizzato dallo zombie per determinare se non dovrebbe attaccare un personaggio. Quando applicato, lo zombie diventa docile verso il personaggio contrassegnato.
© 2026 Roblox Corporation. Roblox, il logo Roblox e Powering Imagination sono tra i nostri marchi registrati e non registrati negli Stati Uniti. e altri paesi.