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 gioco. 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 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. Trova l'NPC e fai clic su di esso per aggiungerlo nel luogo.

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 sulle pose.
AnimateScriptCarica e riproduce animazioni sul rig del personaggio. Vedi Animate per ulteriori dettagli.
[Accessorio]AccessoryUno dei possibili accessori Accessori per l'NPC come cappelli, armi, ecc.
SaluteScriptRigenera tipicamente la salute del Humanoid nel tempo. Disabilitare questo impedirà al personaggio di rigenerare salute.
UmanoideHumanoidGestisce le proprietà relative al Humanoid, come Humanoid.Health, Humanoid.WalkSpeed, Humanoid.DisplayDistanceType, ecc.
NPCScript

Definisce comportamenti specifici del personaggio come vagare, attaccare, ecc. Contiene i seguenti oggetti:

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

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

RbxNpcSoundsScriptDefinisce e gestisce il comportamento relativo agli effetti sonori del personaggio come correre, morire, ecc.
BodyPartsBasePartVari parti del corpo del personaggio attaccate a HumanoidRootPart o parti del corpo vicine tramite oggetti Motor6D o constraint. 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, lo Zombie che sbava e i 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 utilizzando WeldConstraints. Utilizzare giunti semplici in questo modo consente di includere geometria extra per i tuoi personaggi senza cambiare il rig di base originale.

  • A un livello base, le animazioni NPC possono essere personalizzate modificando l'AnimationId degli oggetti Animation esistenti all'interno delle pose dello script Animate, o quelli all'interno della cartella Animazioni. Tale cambiamento è essenzialmente uno scambio di asset - per cambiare i dettagli più fini, puoi creare copie personalizzate delle animazioni esistenti, e per riprodurre animazioni in condizioni diverse, puoi modificare direttamente gli script Animate o NPC. Per ulteriori 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à di animazione vengono modificate man mano che il personaggio viene scalato (meno di 1 implica che la riproduzione dell'animazione si scala inversamente man mano che il 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 inattivo, salto, camminata, ecc. Questo oggetto può contenere qualsiasi numero di Animazioni.

Queste Animazioni contengono un Weight (NumberValue) che prioritizza una delle molte animazioni da riprodurre mentre la posa è assunta; tipicamente usato per aggiungere varietà alle pose inattive e di danza.

BodyParts

La BodyPart 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]Motor6DUn giunto animato tra due parti del corpo. Nota che Animator dipende dal nome di Motor6Ds per essere coerente con quello di Motor6Ds utilizzato quando è stata creata un'animazione, quindi evita di rinominare questo oggetto.
[Joint]WeldConstraint, Constraint, JointInstanceUn giunto non animato tra due parti del corpo.
[Sound]SoundComunemente trovato nella testa o in 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 sono 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
DestroyOnDeathBoolValueFa sì che l'intero NPC venga distrutto poco dopo la sua morte. Disabilita questo per rendere i ragdoll persistenti.
PatrolEnabledBoolValueFa sì che l'NPC vaghi in un'area attorno alla sua posizione iniziale.
PatrolRadiusNumberValueDefinisce la distanza massima che un NPC può vagare dalla sua posizione iniziale, assumendo che PatrolEnabled sia vero.
RagdollEnabledBoolValueFa sì che l'NPC diventi floscio quando muore, invece di rompersi.
AttackDamageNumberValueDefinisce quanto salute viene persa da una vittima quando attaccata dall'NPC. Questo si applica solo ai kit Zombie e Soldato.
AttackDelayNumberValueDefinisce il numero minimo di secondi tra i colpi. Questo si applica solo ai kit Soldato.
AttackModeNumberValueSpecifica cosa attaccherà il soldato, in base al sistema di tagging. Questo si applica solo ai kit Soldato.
AttackRadiusNumberValueDefinisce la distanza massima che l'NPC deve avere da una potenziale vittima prima di tentare di attaccare. Questo si applica solo ai kit Zombie e Soldato.
ClipCapacityNumberValueDefinisce quanti proiettili il soldato può sparare prima di dover ricaricare. Questo si applica solo ai kit Soldato.
ReloadDelayNumberValueDefinisce quanti secondi devono passare prima che il caricatore dell'arma del soldato venga ricaricato. Questo si applica solo ai kit Soldato.

Assegna tag

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

  • Per assegnare tag a un altro NPC, assegnali al Model di livello superiore dell'NPC utilizzando la sezione Tags delle sue proprietà.

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

    local CollectionService = game:GetService("CollectionService")
    CollectionService:AddTag(script.Parent, "SoldierEnemy")
TagScopo
SoldierEnemy o SoldierFriend

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

ZombieFriendQuesto tag è utilizzato dallo zombie per determinare se non dovrebbe attaccare un personaggio. Quando applicato, lo zombie diventa docile nei confronti del 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.