NPC-Kit

*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.

NPCs (Nicht-Spieler-Charaktere) können einer Erfahrung viel Tiefe verleihen. Alle folgenden NPCs können visuell angepasst, ihr Verhalten geändert und die Zombies/Soldaten können sogar ein Gebiet verteidigen, indem sie Spieler oder andere Charaktere mithilfe eines Tag-Systems angreifen, um das Verhalten festzulegen.

Um einen NPC in deinem Spiel zu verwenden:

  1. Wähle eines der folgenden NPC-Kits aus:

    Sabbernder Zombie
    Soldaten
    RO-01 Roboter
    NP-C 9000 Roboter
  2. Klicke auf der NPC-Artikel-Seite auf die grüne Holen-Schaltfläche und bestätige die Transaktion.

  3. Öffne im Studio das Toolbox.

  4. Wähle den Abschnitt Inventar deiner Toolbox aus.

  5. Suche den NPC und klicke darauf, um ihn in den Ort hinzuzufügen.

Charakterstruktur

Jedes NPC-Modell enthält typischerweise die folgenden Objekte:

Objektname oder [Typ]TypBeschreibung
AnimationenFolderEnthält Animations, wie z.B. eine AttackAnimation oder DeathAnimation.
InitialposenFolderEnthält Posing-Informationen.
AnimateScriptLädt und spielt Animationen auf dem Charakter-Rig ab. Siehe Animate für weitere Details.
[Zubehör]AccessoryEines von möglicherweise mehreren Accessories für den NPC, wie Hüte, Waffen usw.
GesundheitScriptRegeneriert typischerweise die Humanoid Gesundheit über die Zeit. Das Deaktivieren verhindert, dass der Charakter Gesundheit regeneriert.
HumanoidHumanoidVerwaltet Humanoid-bezogene Eigenschaften wie Humanoid.Health, Humanoid.WalkSpeed, Humanoid.DisplayDistanceType usw.
NPCScript

Definiert charakter-spezifisches Verhalten wie Umherstreifen, Angreifen usw. Beinhaltet folgende Objekte:

Maid (ModuleScript) definiert eine Klasse, die nützlich ist, um verwendete Ressourcen freizugeben.

Ragdoll (ModuleScript) definiert eine Funktion, die einen Charakter in einen lockeren, physikalisch beeinflussten Körper verwandelt (enthält ein RigTypes ModuleScript, das mehrere Hilfsfunktionen definiert).

RbxNpcSoundsScriptDefiniert und verwaltet Verhalten, das mit Charaktergeräuschen wie Laufen, Sterben usw. verbunden ist.
BodyPartsBasePartVerschiedene Körperteile des Charakters, die an die HumanoidRootPart oder benachbarte Körperteile durch Motor6D- oder Einschränkungsobjekte angeheftet sind. Siehe BodyParts für mehr Details.
HumanoidRootPartBasePartEin spezielles unsichtbares Teil, das als Wurzel des Rigs angesehen wird; dies ist auch das PrimaryPart des Model des Charakters.
KonfigurationConfigurationEnthält Wertobjekte, die verschiedene Verhaltensweisen einstellen. Siehe Konfiguration für weitere Details.

Entwurfshinweise

Beim Verwenden des NPC-Kits solltest du die folgenden Entwurfshinweise beachten:

  • Das visuelle Erscheinungsbild eines NPC kann angepasst werden, indem verschiedene [BodyParts]-Objekte hinzugefügt oder geändert werden und Accessory-Objekte hinzugefügt werden.

  • Die Soldaten, der sabbernde Zombie und die NP-C 9000 Roboter verwenden Rthro als Grundlage ihres Rigs. Die RO-01 Roboter nutzen jedoch eine modifizierte Rthro-Basis, die Trennteile enthält, die mit dem UpperTorso über WeldConstraints verbunden sind. Durch die Verwendung einfacher Gelenke auf diese Weise kannst du zusätzliche Geometrie für deine Charaktere einfügen, ohne das ursprüngliche Basisrig zu ändern.

  • Auf einer grundlegenden Ebene können die NPC-Animationen angepasst werden, indem die AnimationId vorhandener Animationsobjekte innerhalb der Animate-Skriptposen oder denen innerhalb des Animations-Ordners geändert werden. Eine solche Änderung ist im Wesentlichen ein Asset-Tausch - um die feinen Details zu ändern, kannst du benutzerdefinierte Kopien vorhandener Animationen erstellen, und um Animationen unter unterschiedlichen Bedingungen abzuspielen, kannst du die Animate- oder NPC-Skripte direkt bearbeiten. Für weitere Informationen siehe Animation.

Animate

Das Animate Script im NPC Model behandelt Animation bezogene Konfigurationen und enthält die folgenden Objekte:

Objektname oder [Typ]TypBeschreibung
ScaleDampeningPercentNumberValueDefiniert, wie die Animationsgeschwindigkeiten verändert werden, wenn der Charakter skaliert wird (weniger als 1 bedeutet, dass die Animationse wiedergegeben wird, als ob die Umwandlung umgekehrt ist, wenn der Charakter skaliert wird).
PlayEmoteBindableFunctionKann von anderen Skripten aufgerufen werden, um die Annahme einer Pose zu erzwingen.
[Pose]StringValueReferenz auf eine spielbare Animationskategorie wie Stehen, Springen, Gehen usw. Dieses Objekt kann beliebig viele Animations als Eltern haben.

Diese Animations haben eine Gewichtung (NumberValue) als Eltern, die eine von mehreren Animationen priorisiert, die abgespielt werden sollen, während die Pose angenommen wird; typischerweise verwendet, um Abwechslung zu stehenden und tanzenden Posen hinzuzufügen.

BodyParts

Die BodyPart BasePart im NPC Model repräsentiert die verschiedenen Körperteile des Charakters und enthält die folgenden Objekte:

Objektname oder [Typ]TypBeschreibung
AvatarPartScaleTypeStringValueBestimmt, wie das Teil skaliert wird; Werte können Classic, ProportionsNormal oder ProportionsSlender sein.
OriginalSizeVector3ValueBestimmt die Größe des Teils, wenn die Skalierung des Charakters 1 beträgt.
[Attachment]AttachmentDefiniert einen Punkt in Bezug auf das einzelne Teil, den Skripte, Effekte und Objekte wie ein Tool oder Accessory während der Positionierung verwenden können.
[Motor6D]Motor6DEin animiertes Gelenk zwischen zwei Körperteilen. Beachte, dass Animator vom Namen der Motor6Ds abhängt, um konsistent mit der oben genannten Verwendung zu sein, also vermeide es, dieses Objekt umzubenennen.
[Gelenk]WeldConstraint, Constraint, JointInstanceEin nicht-animiertes Gelenk zwischen zwei Körperteilen.
[Sound]SoundFindet sich häufig im Kopf oder HumanoidRootPart; spielt Geräusche aus dem Rig ab, die vom RbxNpcSounds-Skript gesteuert werden.

Konfiguration

Jedes NPC enthält ein Configuration-Objekt innerhalb seiner Hierarchie, das als Container für Wertobjekte dient. Diese werden vom NPC-Skript verwendet, um verschiedene Verhaltensweisen einzustellen. Sofern nicht anders angegeben, gelten diese für alle Charaktere.

Objektname oder [Typ]TypBeschreibung
DestroyOnDeathBoolValueVeranlasst, dass das gesamte NPC kurz nach seinem Tod zerstört wird. Deaktiviere dies, damit Ragdolls persistent bleiben.
PatrolEnabledBoolValueVeranlasst das NPC, sich in einem Bereich um seine Startposition zu bewegen.
PatrolRadiusNumberValueDefiniert die maximale Distanz, die ein NPC von seiner Startposition abweichen kann, sofern PatrolEnabled aktiv ist.
RagdollEnabledBoolValueVeranlasst das NPC, beim Sterben schlaff zu werden, anstatt auseinanderzufallen.
AttackDamageNumberValueDefiniert, wie viel Gesundheit ein Opfer verliert, wenn es vom NPC angegriffen wird. Das gilt nur für Zombie- und Soldaten-Kits.
AttackDelayNumberValueDefiniert die minimale Anzahl an Sekunden zwischen Schüssen. Das gilt nur für Soldaten-Kits.
AttackModeNumberValueBestimmt, was der Soldat angreifen wird, basierend auf dem Tagging-System. Das gilt nur für Soldaten-Kits.
AttackRadiusNumberValueDefiniert die maximale Distanz, die das NPC von einem potenziellen Opfer entfernt sein muss, bevor es versucht anzugreifen. Das gilt nur für Zombie- und Soldaten-Kits.
ClipCapacityNumberValueDefiniert, wie viele Kugeln der Soldat feuern kann, bevor er nachladen muss. Das gilt nur für Soldaten-Kits.
ReloadDelayNumberValueDefiniert, wie viele Sekunden vergehen müssen, bevor der Waffenspeicher des Soldaten nachgeladen wird. Das gilt nur für Soldaten-Kits.

Tags zuweisen

Das NPC-Skript verwendet CollectionService-Tags, um die Aggressivität gegenüber anderen Charakteren und Spielern zu verwalten. Verschiedene Tags aus der folgenden Tabelle können wie folgt zugewiesen werden:

  • Um Tag(s) einem anderen NPC zuzuweisen, weise sie dem obersten Model des NPCs im Tags-Abschnitt seiner Eigenschaften zu.

  • Um ein Tag zu einem Player-Charakter zuzuweisen, kannst du ein Script zu StarterCharacterScripts hinzufügen, das einen CollectionService:AddTag()-Aufruf enthält. Zum Beispiel:


    local CollectionService = game:GetService("CollectionService")
    CollectionService:AddTag(script.Parent, "SoldierEnemy")
TagZweck
SoldierEnemy oder SoldierFriendBestimmt, ob ein Soldat, basierend auf seinem AttackMode-Konfigurationswert, einen anderen Charakter angreifen sollte. Wenn der AttackMode des Soldaten auf 1 eingestellt ist, müssen andere Charaktere mit SoldierEnemy getaggt werden, um als angreifbar betrachtet zu werden. Wenn der AttackMode des Soldaten auf 2 eingestellt ist, werden alle Objekte ohne das SoldierFriend-Tag als angreifbar betrachtet. Wenn der AttackMode des Soldaten auf 3 eingestellt ist, werden diese Tags vollständig ignoriert und der Soldat wird alle Charaktere angreifen.
ZombieFriendDieses Tag wird vom Zombie verwendet, um zu bestimmen, ob er einen Charakter nicht angreifen sollte. Wenn angewendet, wird der Zombie gegenüber dem taggierten Charakter friedlich.
©2026 Roblox Corporation. Roblox, das Roblox-Logo und "Powering Imagination" gehören zu unseren eingetragenen und nicht eingetragenen Markenzeichen in den USA und anderen Ländern.