NPC (postacie nie-graczy) mogą dodać wiele głębi do doświadczenia.Wszystkie następujące NPC można dostosować wizualnie, ich zachowanie zmodyfikowano , a zombie/żołnierze mogą nawet obronić obszar, atakując graczy lub inne postacie za pomocą systemu tagów tagów , aby ustawić zachowanie.
Aby użyć NPC w swojej gra:
Na stronie przedmiotu NPC kliknij zielony Zdobądź przycisk i potwierdź transakcję.
W Roblox Studio otwórz przybornik ( Zobacz → przybornik ).
Wybierz sekcję koszyka narzędzi Inwentarz .
Zlokalizuj NPC i kliknij go, aby dodać go do miejsce.
Struktura znaku
Każdy model NPC zwykle zawiera następujące obiekty:
Nazwa obiektu lub [Typ] | Typ | Opis |
---|---|---|
Animacje | Folder | Zawiera Animations , takie jak AttackAnimation lub DeathAnimation . |
Początkowe pozy | Folder | Zawiera informacje o pozowaniu. |
Animować | Script | Ładowanie i odtwarzanie animacji na postaci rig. Zobacz Animuj dla więcej szczegółów. |
[Akcesoria] | Accessory | Jeden z ewentualnie wielu Accessories dla NPC, takich jak czapki, bronie itp. |
Zdrowie | Script | Zazwyczaj regeneruje zdrowie Humanoid na przestrzeni czasu. Wyłączenie tego uniemożliwi regenerację zdrowia postaci. |
Ludzoidowy | Humanoid | Zarządza właściwościami powiązanymi Humanoid , takimi jak Humanoid.Health , Humanoid.WalkSpeed , Humanoid.DisplayDistanceType itp. |
NPC | Script > | Definiuje zachowania specyficzne dla postaci, takie jak migrowanie, atakowanie itp.Rodzice następujących obiektów: Pani domu ( ModuleScript ) definiuje klasę przydatną do uwalniania wykorzystywanych zasobów.: Ragdoll ( ModuleScript ) definiuje funkcję, która przekształca postać w luźne ciało wpływające na fizykę (jest rodzicem RigTypes ModuleScript, które definiuje kilka funkcji pomocniczych). |
Dźwięki RbxNpc | Script | Definiuje i zarządza zachowaniem związanym z efektami dźwięku postaci, takimi jak bieganie, umieranie itp. |
Ciała części | BasePart | Różne części ciała postaci przymocowane do HumanoidRootPart lub sąsiednich części ciała za pomocą Motor6D lub obiektów ograniczeń.Zobacz BodyParts dla więcej szczegółów. |
Część korzenia humanoidowego | BasePart | Specjalna niewidzialna część, która jest uważana za korzeń ramienia; jest to również PrimaryPart część postaci Model. |
Konfiguracja | Configuration | Zawiera obiekty wartości, które dostosowują różne zachowania. Zobacz Konfigurację dla więcej szczegółów. |
Notatki o projektowaniu
Podczas używania zestawu NPC pamiętaj o następujących uwagach dotyczących projektu:
Wizualny wygląd NPC można dostosować poprzez dodawanie/modyfikowanie różnych obiektów [BodyParts] i dodawanie obiektów Accessory.
Żołnierze, śliniący się zombie i roboty NP-C 9000 używają Rthro jako podstawy swojego ustawienia.Jednak roboty RO-01 korzystają z zmodyfikowanej podstawy Rthro, która dodaje części napędowe połączone z górną częścią tułowia za pomocą WeldConstraints.Wykorzystanie prostych stawów w ten sposób pozwala uwzględnić dodatkową geometrię dla twoich postaci bez zmiany oryginalnego modelu podstawowego.
Na poziomie podstawowym animacje NPC mogą być dostosowywane poprzez modyfikację AnimationId istniejących obiektów animacji w pozycjach skryptu Animuj , lub te w folderze Animacje .Taka zmiana jest zasadniczo wymianą aktywów - aby zmienić szczegóły, możesz tworzyć niestandardowe kopie istniejących animacji, a aby odtwarzać animacje w różnych warunkach, możesz edytować skrypty Animuj lub NPC bezpośrednio.Aby uzyskać więcej informacji, zobacz Animację.
Animować
Animacja w NPC obsługuje konfiguracje związane z animacją i zawiera następujące obiekty:
Nazwa obiektu lub [Typ] | Typ | Opis |
---|---|---|
Procent wygłuszania skali | NumberValue | Określa, w jaki sposób prędkości animacji są modyfikowane, gdy postać jest skalowana (mniej niż 1 oznacza odwróconą skalę odtwarzania animacji, gdy skalowana jest postać). |
OdtwarzajEmotkę | BindableFunction | Może to być wywołane przez inne skrypty w celu zmuszenia do przyjęcia pozy. |
[Pozowanie] | StringValue | Odniesienie do kategorii animacji odtwarzalnych, takich jak nieaktywność, skok, bezczynnośćitp.Ten obiekt może być rodzicem dowolnej liczby Animations.Te Animations rodzice wagi ( NumberValue ) priorytetują jedną z wielu animacji do odtwarzania, gdy poza jest domniemana; zwykle używane do dodania różnorodności do pozycji nieaktywnych i tanecznych. |
Ciała części
BodyPart BasePart w NPC Model reprezentuje różne części ciała postaci i zawiera następujące obiekty:
Nazwa obiektu lub [Typ] | Typ | Opis |
---|---|---|
Rodzaj skali awatara | StringValue | Określa, w jaki sposób część zostanie powiększona; wartości mogą być Klasyczne , ProporcjeNormalne lub ProporcjeSzczupłe . |
Oryginalny rozmiar | Vector3Value | Określa rozmiar części, gdy skalowanie znaków wynosi 1. |
[Załącznik] | Attachment | Definiuje punkt względem poszczególnej części, której skrypty, efekty i obiekty, takie jak Tool lub Accessory, mogą korzystać podczas pozycjonowania. |
[Motor6D] | Motor6D | Animowane połączenie między dwoma częściami ciała.Zauważ, że Animator zależy od nazwy Motor6Ds, aby była zgodna z nazwą Motor6Ds używaną przy tworzeniu animacji, więc unikaj zmiany nazwy tego obiektu. |
[Wspólny] | WeldConstraint , Constraint , JointInstance | Nieanimowane połączenie między dwoma częściami ciała. |
[Dźwięk] | Sound | Powszechnie znaleziony w głowie lub HumanoidRootPart ; odtwarza dźwięki z wnętrza urządzenia kontrolowane przez skrypt RbxNpcSounds. |
Konfiguracja
Każdy NPC zawiera obiekt Configuration w hierarchii, który działa jako pojemnik dla obiektów wartości.Są one używane przez skrypt NPC do dostosowania różnych zachowań.Chyba że inaczej określono, dotyczą one wszystkich znaków.
Nazwa obiektu lub [Typ] | Typ | Opis |
---|---|---|
Zniszcz po śmierci | BoolValue | Spowoduje, że cały NPC zostanie zniszczony wkrótce po śmierci. Wyłącz to, aby ragdolls były trwałe. |
PatrolowanieWłączone | BoolValue | Spowoduje, że NPC będzie się poruszał po obszarze wokół pozycji startowej. |
Promień patrolu | NumberValue | Określa maksymalną odległość, jaką NPC będzie przemierzał od swojej początkowej pozycji, założając, że PatrolEnabled jest prawdą. |
RagdollWłączone | BoolValue | Spowalnia NPC, gdy umiera, zamiast się rozpadać. |
Obrażenia od ataku | NumberValue | Określa, ile zdrowia tracone jest przez ofiarę, gdy jest atakowana przez NPC. Dotyczy to tylko zestawów Zombie i Żołnierza. |
Opóźnienie ataku | NumberValue | Określa minimalną liczbę sekund między strzałami. Dotyczy to wyłącznie zestawów żołnierzy. |
Tryb ataku | NumberValue | Określa, na co żołnierz zaatakuje, w oparciu o system oznaczania tagami. Dotyczy to wyłącznie zestawów żołnierzy. |
Promień ataku | NumberValue | Określa maksymalną odległość, na jaką NPC musi być od potencjalnej ofiary, zanim spróbuje zaatakować. Dotyczy to wyłącznie zestawów Zombie i Żołnierza. |
Pojemność klipu | NumberValue | Określa, ile pocisków może wystrzelić żołnierz, zanim będzie musiał przeładować. Dotyczy to tylko zestawów żołnierzy. |
Opóźnienie przeładowania | NumberValue | Określa, ile sekund musi upłynąć, zanim klips broni żołnierza zostanie ponownie załadowany. Dotyczy to wyłącznie zestawów żołnierzy. |
Nadaj tagi
Skrypt NPC używa tagów CollectionService do zarządzania agresją wobec innych postaci i graczy.Różne tagi z poniżego tabeli mogą być przypisane w następujący sposób:
Aby przypisać tag(i) do innego NPC, przypisz je do najwyższego poziomu NPC za pomocą sekcji Tagi jego właściwości lub edytora tagów Studio.
Aby przypisać tag do postaci Player , możesz dodać Script do StarterCharacterScripts za pomocą wezwania CollectionService:AddTag(). Na przykład:
local CollectionService = game:GetService("CollectionService")CollectionService:AddTag(script.Parent, "SoldierEnemy")
Tag | Przeznaczenie |
---|---|
Wrogi żołnierz lub Przyjaciel żołnierza | Określa, czy żołnierz, na podstawie jego wartości konfiguracji trybu ataku , powinien zaatakować innego postaci.Gdy tryb ataku żołnierza jest ustawiony na , inne postacie muszą być oznaczone wrogiem żołnierza , aby zostały uznane za atakowane.Gdy tryb ataku żołnierza jest ustawiony na , wszystkie obiekty bez tagu SoldierFriend są uważane za atakowane.Gdy tryb ataku żołnierza zostanie ustawiony na , te tagi są całkowicie ignorowane, a żołnierz zaatakuje wszystkie postacie. |
Przyjaciel zombie | Tag ten jest używany przez zombie do określenia, czy nie powinien atakować postaci.Po zastosowaniu zombie staje się posłuszny wobec oznaczonego postaci. |