NPCs (Nichtspielercharaktere) können einer Erlebnisviel Tiefe hinzufügen.Alle folgenden NPCs können visuell angepasst werden, ihr Verhalten modifiziert wird, und Zombies/Soldaten können sogar einen Bereich verteidigen, indem sie Spieler oder andere Charaktere mit einem Tag-System angreifen, um das Verhalten festzulegen.
Um einen NPC in deinem Spiel zu verwenden:
Auf der Artikelseite des NPCs klicke auf die grüne Abholen -Schaltfläche und bestätige die Transaktion.
Öffne in Roblox Studio die Werkzeugkiste ( Ansicht → Werkzeugkiste ).
Wählen Sie Ihren Werkzeugkasten Inventar Abschnitt aus.
Suchen Sie den NPC und klicken Sie darauf, um ihn zum Orthinzuzufügen.
Zeichenstruktur
Jedes NPC-Modell enthält in der Regel die folgenden Objekte:
Objektname oder [Typ] | Typ | Beschreibung |
---|---|---|
Animationen | Folder | Enthält Animations , wie eine AttackAnimation oder DeathAnimation . |
Initialpositionen | Folder | Enthält Positionsinformationen. |
Animieren | Script | Lädt und spielt Animationen auf dem Charakter-Rig aus. Siehe Animieren für weitere Details. |
[Zubehör] | Accessory | Einer von möglicherweise mehreren Accessories für den NPC wie Hüte, Waffen usw. |
Gesundheit | Script | Regeneriert typischerweise die Humanoid Gesundheit im Laufe der Zeit. Wenn du diese deaktivierst, regeneriert der Charakter keine Gesundheit. |
Menschlich | Humanoid | Verwaltet Humanoid verwandte Eigenschaften wie Humanoid.Health , Humanoid.WalkSpeed , Humanoid.DisplayDistanceType usw. |
NPC | Script > | Definiert charakterpezifische Verhaltensweisen wie Roaming, Angriffe usw.Eltern der folgenden Objekte: Dienstmädchen ( ModuleScript ) definiert eine Klasse, die bei der Freigabe von verwendeten Ressourcen nützlich ist.: Ragdoll ( ModuleScript ) definiert eine Funktion, die einen Charakter in einen lockeren physikalisch beeinflussten Körper verwandelt (eltern ein RigTypes ModuleScript , das mehrere Hilfsfunktionen definiert). |
RbxNpcSounds | Script | Definiert und verwaltet Verhalten, das sich auf Charakter-Soundeffekte wie Laufen, Sterben usw. bezieht |
Körperteile | BasePart | Verschiedene Körperteile von Charakteren, die mit der HumanoidRootPart oder benachbarten Körperteilen durch Motor6D oder Einschränkungsobjekte verbunden sind.Siehe Körperteile für weitere Details. |
Humanoide Wurzelteil | BasePart | Ein besonderes unsichtbares Teil, das als Wurzel des Rigs betrachtet wird; dies ist auch die PrimaryPart des Charakters Model. |
Konfigurieren | Configuration | Enthält Wertobjekte, die verschiedene Verhaltensweisen anpassen. Siehe Konfiguration für weitere Details. |
Designhinweise
Wenn du das NPC-Kit verwendest, denke an die folgenden Designnotizen:
Das visuelle Erscheinungsbild eines NPCs kann angepasst werden, indem verschiedene [Körperteile]-Objekte hinzugefügt/modifiziert und Accessory Objekte hinzugefügt werden.
Die Soldaten, der salivierende Zombie und die NP-C 9000 Roboter verwenden Rthro als Basis ihres Rigs.Die RO-01-Roboter verwenden jedoch eine modifizierte Rthro-Basis, die Antriebsteile hinzufügt, die mit dem Oberkörper verbunden sind, indem sie WeldConstraints verwenden.Die Verwendung einfacher Gelenke auf diese Weise ermöglicht es dir, zusätzliche Geometrie für deine Charaktere einzuschließen, ohne die ursprüngliche Basisrüstung zu ändern.
Auf einer grundlegenden Stufekönnen NPC-Animationen angepasst werden, indem die AnimationId von vorhandenen Animationsobjekten innerhalb der Animations-Skripte oder jene innerhalb des Animations-Ordners modifiziert werden.Eine solche Änderung ist im Wesentlichen ein Asset-Wechsel - um die feineren Details zu ändern, kannst du benutzerdefinierte Kopien bestehender Animationen erstellen, und um Animationen unter verschiedenen Bedingungen abzuspielen, kannst du die Animate - oder NPC -Skripte direkt bearbeiten.Für weitere Informationen, siehe Animation.
Animieren
Die Animation im NPC verwaltet animationsbezogene Konfigurationen und enthält die folgenden Objekte:
Objektname oder [Typ] | Typ | Beschreibung |
---|---|---|
Skalierungsdämpfungspunktzahl | NumberValue | Legt fest, wie die Animationstempo modifiziert wird, wenn der Charakter skaliert (weniger als 1 bedeutet, dass die Animation-Wiedergabeskala umgekehrt skaliert, wenn ein Charakter skaliert wird). |
SpielEmote | BindableFunction | Dies kann von anderen Skripten aufgerufen werden, um die Annahme einer Pose zu erzwingen. |
[Haltung] | StringValue | Verweis auf eine abspielbare Animationskategorie wie untätig, springen, Gehen usw.Dieses Objekt kann eine beliebige Anzahl von Animations Eltern haben. Diese Animations Gewicht ( NumberValue ) priorisieren eine von mehreren Animationen, die während der Pose abgespielt werden; wird in der Regel verwendet, um der Leere und Tanzpose Vielfalt hinzuzufügen. |
Körperteile
Die BodyPart BasePart im NPC Model repräsentiert die verschiedenen Körperteile der verschiedenen Charaktere und enthält die folgenden Objekte:
Objektname oder [Typ] | Typ | Beschreibung |
---|---|---|
AvatarPartScaleTyp | StringValue | Legt fest, wie das Teil skaliert wird; Werte können Klassisch , ProportionenNormal oder ProportionenSchlank sein. |
Originale Größe | Vector3Value | Bestimmt die Größe des Teils, wenn die Zeichenskalierung 1 ist. |
[Anhänge] | Attachment | Definiert einen Punkt in Bezug auf das einzelne Teil, das Skripte, Effekte und Objekte wie ein Tool oder Accessory während der Positionierung nutzen können. |
[Aufzug6D] | Motor6D | Eine animierte Verbindung zwischen zwei Körperteilen.Beachten Sie, dass auf den Namen von angewiesen ist, um konsistent zu sein mit dem, der verwendet wurde, als eine Animation erstellt wurde, vermeiden Sie daher, dieses Objekt umzubenennen. |
[Gemeinsamer] | WeldConstraint , Constraint , JointInstance | Ein nicht animierter Gelenk zwischen zwei Körperteilen. |
[Klang] | Sound | Gewöhnlich im Kopf oder ; spielt Geräusche aus dem Rig, die vom Skript, das. PL: die Skriptsgesteuert werden. |
Konfigurieren
Jeder NPC enthält ein Configuration Objekt innerhalb seiner Hierarchie, das als Container von Wertobjekten fungiert.Diese werden vom NPC-Skript verwendet, um verschiedene Verhaltensweisen anzupassen.Es sei denn, anders angegeben, gelten diese für alle Zeichen.
Objektname oder [Typ] | Typ | Beschreibung |
---|---|---|
Zerstören bei Tod | BoolValue | Verursacht, dass der gesamte NPC kurz nach seinem Tod zerstört wird. Deaktiviere dies, damit Ragdolls persistent sind. |
Patrouille aktiviert | BoolValue | Verursacht, dass der NPC in einem Bereich um seine Startposition herum wandert. |
Patrouillenradius | NumberValue | Legt die maximale Entfernung fest, die ein NPC von seiner Startposition aus wandern wird, unter der Annahme, dass PatrolEnabled wahr ist. |
RagdollEnabled | BoolValue | Verursacht, dass der NPC beim Tod schlapp wird, anstatt sich zu zerlegen. |
Angriffsschaden | NumberValue | Legt fest, wie viel Gesundheit durch ein Opfer verloren geht, wenn es vom NPC angegriffen wird. Dies gilt nur für Zombie- und Soldaten-Kits. |
Angriffsverzögerung | NumberValue | Legt die minimale Anzahl von Sekunden zwischen Schüssen fest. Dies gilt nur für Soldaten-Kits. |
Angriffsmodus | NumberValue | Gibt an, worauf der Soldat angreifen wird, basierend auf dem Markierungssystem. Dies gilt nur für Soldatenkits. |
Angriffsradius | NumberValue | Legt die maximale Entfernung fest, die der NPC von einem potenziellen Opfer entfernt sein muss, bevor er angreift. Dies gilt nur für Zombie- und Soldaten-Kits. |
Clip-Kapazität | NumberValue | Legt fest, wie viele Kugeln der Soldat abfeuern kann, bevor er nachladen muss. Dies gilt nur für Soldatenkits. |
Nachladeverzögerung | NumberValue | Legt fest, wie viele Sekunden vergehen müssen, bevor der Waffenclip des Soldaten neu geladen wird. Dies gilt nur für Soldatenkits. |
Tags zuweisen
Das NPC -Skript verwendet CollectionService-Tags, um Aggressionen gegen andere Charaktere und Spieler zu verwalten.Verschiedene Tags aus der folgenden Tabelle können wie folgt zugewiesen werden:
Um einem anderen NPC ein Tag(e) zuzuweisen, weise sie dem obersten Level des NPCs zu Model mit der Tags Sektion seiner Eigenschaften oder dem Tag-Editor von Studio zu.
Um einem Player Zeichen einen Tag zuzuweisen, kannst du einen Script zu StarterCharacterScripts mit einem CollectionService:AddTag() Aufruf hinzufügen. Zum Beispiel:
local CollectionService = game:GetService("CollectionService")CollectionService:AddTag(script.Parent, "SoldierEnemy")
Zeichen | Zweck |
---|---|
Feind des Soldaten oder Freund des Soldaten | Bestimmt, ob ein Soldat, basierend auf seinem Angriffsmodus Konfigurationswert, einen anderen Charakter angreifen sollte.Wenn der Angriffsmodus des Soldaten auf festgelegt ist , müssen andere Charaktere mit SoldierEnemy gekennzeichnet werden, um als angreifbar angesehen zu werden.Wenn der Angriffsmodus des Soldaten auf gesetzt ist , werden alle Objekte ohne das SoldierFriend Tag als angreifbar angesehen.Wenn der Angriffsmodus des Soldaten auf gesetzt ist, werden diese Tags vollständig ignoriert und der Soldat wird alle Charaktere angreifen. |
ZombieFreund | Dieser Tag wird vom Zombie verwendet, um zu bestimmen, ob er einen Charakter nicht angreifen sollte.Wenn angewendet, wird der Zombie gegenüber dem markierten Charakter gehorsam. |