Funkcja ta jest w stanie eksperymentalnym, więc możesz ją wypróbować, przesłać swoją opinię i zobaczyć, co planujemy wdrożyć. Aktualnie nie możesz opublikować projektu, w którym wykorzystano niestandardowy ekwipunek i przedmioty.
Pamiętaj, że nie gwarantujemy kompatybilności wstecznej zasobów utworzonych na etapie eksperymentalnym, interfejsy API tych funkcji mogą ulec zmianie i możemy wedle własnego uznania usunąć całe funkcje eksperymentalne lub określone funkcje. Przed rozpoczęciem pracy z tą funkcją sprawdź listę znanych problemów.
Przedmioty i systemy ekwipunku mają kluczowe znaczenie w wielu rodzajach gier. Korzystając z jednostek i komponentów Scene Graph, możesz dostosować ekwipunek gracza Fortnite i tworzyć niestandardowe przedmioty unikatowe dla twojej wyspy.
Przedmioty to obiekty na wyspie, których gracze oraz agenci mogą używać i które mogą posiadać. Ekwipunek obejmuje istniejący ekwipunek gracza Fortnite, a także wszelkie niestandardowe ekwipunki utworzone za pomocą komponentu inventory_component. Niestandardowy ekwipunek i przedmioty to system do tworzenia przedmiotów i przechowywania przedmiotów oraz sterowania nimi. System ten jest funkcją eksperymentalną, którą trzeba włączyć w ustawieniach projektu, aby móc korzystać z niej przy użyciu Scene Graph w UEFN i Verse.
Podstawy Scene Graph
Scene Graph to system jednostek i komponentów, zbudowany na bazie Verse. Jednostki to kontenery dla komponentów, a komponenty zapewniają jednostce funkcjonalność. Jednostki można łączyć ze sobą w relacjach nadrzędności i podrzędności, tworząc hierarchie. Układy jednostek i komponentów wielokrotnego użytku nazywane są gotowcami. Aby uzyskać więcej informacji na temat jednostek i komponentów, patrz: Praca z jednostkami i komponentami. Aby uzyskać więcej informacji na temat gotowców w Scene Graph, patrz: Gotowce i instancje gotowców.
Znane problemy
Niestandardowy ekwipunek i przedmioty to pierwszy system, który wykorzystuje Scene Graph w UEFN. W związku z tym podczas korzystania z niego można napotkać szereg błędów występujących w wersji eksperymentalnej. Listę znanych problemów można znaleźć tutaj. Pracujemy obecnie nad wieloma poprawkami i ulepszeniami, które zostaną uwzględnione w kolejnych wersjach.
Przedmioty
Przedmiot to jednostka w Scene Graph zawierająca komponent item_component. Domyślnie przedmioty można łączyć i układać w stosy, można przypisywać im kategorie do porównywania i sortowania, a także dodawać je do wyposażenia i z niego usuwać.
System niestandardowego ekwipunku i przedmiotów wykorzystuje Scene Graph, dlatego możesz dodawać do przedmiotów komponenty, aby zwiększyć ich funkcjonalność. Wstępnie system zawiera kilka podstawowych komponentów, które wymieniono w poniższej tabeli.
| Komponent | Opis |
|---|---|
| Ten komponent sprawia, że jednostka staje się przedmiotem. Ponadto dzięki niemu można układać taką jednostkę w stosy. Może ona również należeć do ekwipunku i podlegać jego kontroli. |
| Przechowuje ikonę przedmiotu wyświetlaną w UI Fortnite. |
| Zawiera dane tekstowe, takie jak nazwa i opis przedmiotu. |
| Przechowuje zasób siatki, który reprezentuje przedmiot w grze. |
| Dzięki niemu dany przedmiot może być traktowany tak samo, jak przedmioty do podnoszenia w Fortnite. Zawiera również monit interakcji o podniesienie przedmiotu, UI oraz animacje podnoszenia/upuszczania. |
Przedmiot może mieć tylko jeden komponent każdego typu. Obejmuje to komponenty, które dziedziczą z innych komponentów, które są już dołączone do przedmiotu.
Jeśli zatem utworzysz na przykład niestandardowy komponent dla konkretnego przedmiotu, który jest elementem podrzędnym item_component, twój niestandardowy komponent będzie wyświetlany zamiast ogólnego komponentu przedmiotu.
Modularność przedmiotu
Dzięki niestandardowemu ekwipunkowi i przedmiotom możemy wprowadzić odpowiednią modularność. To oznacza, że można używać komponentów do tworzenia dodatkowych funkcji przedmiotów. Poniżej przedstawiono przykłady komponentów dołączonych do jednostki przedmiotu, które zapewniają funkcjonalność.
Jednostka
item_component: zmienia jednostkę w przedmiot.item_details_component: przechowuje dane tekstowe, takie jak nazwa i opis przedmiotu.item_icon_component: przechowuje ikonę przedmiotu, która jest wyświetlana w UI Fortnite.mesh_component: przechowuje zasób siatki, który reprezentuje przedmiot w grze.
Ekwipunki
Ekwipunek to jednostka, która ma komponent inventory_component.
Ekwipunek jest kontenerem na jednostki przedmiotów i steruje tym, co dzieje się z takimi przedmiotami.
System niestandardowego ekwipunku i przedmiotów wykorzystuje ekwipunki i podekwipunki do podziału przedmiotów na kategorie. Ułatwia to sortowanie, dodawanie i pobieranie przedmiotów w ekwipunku. Przedmiot może istnieć tylko w jednym ekwipunku naraz, dlatego ekwipunki decydują również o tym, jaki element jest właścicielem jednostek przedmiotu.
Domyślnie w ekwipunku można przechowywać nieskończoną liczbę przedmiotów dowolnego rodzaju. Można jednak tworzyć ograniczenia i reguły, które określają, jakie przedmioty można dodać. Poniżej przedstawiono kilka przykładów takich ograniczeń i reguł:
Dodawanie do ekwipunku tylko tych przedmiotów, które spełniają wymagany typ zapytania.
Ograniczenie liczby przedmiotów w ekwipunku.
Zezwalanie przedmiotom o wyższym priorytecie na wyrzucanie przedmiotów o niższym priorytecie, gdy ekwipunek jest pełny.
Ograniczenie ekwipunku do pojedynczego przedmiotu.
Gdy funkcja AddItem() nie może zostać rozstrzygnięta na docelowym ekwipunku, szuka innych ekwipunków, w których można potencjalnie przechowywać przedmiot. Funkcja wykorzystuje hierarchie Scene Graph
– najpierw spróbuje dodać przedmiot do ekwipunku równorzędnego (czyli takiego, który ma ten sam ekwipunek nadrzędny co początkowy ekwipunek docelowy), a następnie sprawdzi ekwipunki podrzędne (tj. ekwipunki, dla których początkowy ekwipunek docelowy jest elementem nadrzędnym). Funkcja sprawdzi wszystkie ekwipunki w hierarchii przed zwróceniem niepowodzenia.
Filtrowanie ekwipunku za pomocą zdarzeń sceny
Gdy ekwipunek jest celem wywołania funkcji AddItem(), otrzyma zdarzenie sceny (add_item_event). Zastępując funkcję OnReceive() komponentu, można wyzwolić logikę niestandardową, która wpływa na wpis przedmiotu. Pozwala to zastosować reguły ekwipunku, takie jak sprawdzanie typu przedmiotu przed zezwoleniem, dopuszczenie w ekwipunku tylko określonej liczby przedmiotów itd. Zdarzenie OnReceive() jest zaimplementowane w klasie bazowej komponentu i jest dostępne dla wszystkich komponentów Scene Graph.
Zdarzenie add_item_event zbiera odpowiedzi ze wszystkich ekwipunków, do których dotrze. Możesz polecić komponentom ekwipunku modyfikację zdarzenia tak, aby te komponenty ekwipunku oferowały same siebie, pobierając dodawany przedmiot. Zdarzenie zawiera tablicę o nazwie inventory_with_priority, którą można ustawić i aktualizować o ekwipunek docelowy. Pozwala to na wyznaczenie ekwipunku docelowego z priorytetem pobierania przedmiotu. Po rozesłaniu zdarzenia sceny wszystkie ekwipunki z ustawionym priorytetem będą uwzględniane przy pobieraniu przedmiotu, a przedmiot zostanie pobrany do ekwipunku o najwyższym priorytecie.
W wersji eksperymentalnej systemu niestandardowego ekwipunku i przedmiotów dostępne jest tylko zdarzenie add_item_event. Jednak w kolejnych aktualizacjach dodane zostaną także inne zdarzenia.
Ekwipunki w Fortnite
System niestandardowego ekwipunku i przedmiotów zawiera szereg podklas inventory_component, zwanych fort_inventory_components. Mają one opcję filtrowania przedmiotów i elementy UI, które naśladują ekwipunek gracza Fortnite Battle Royale.
| Komponent | Opis |
|---|---|
| Odpowiada slotowi zbieraka w domyślnym ekwipunku gracza Fortnite. |
| Odpowiada paskowi szybkiego dostępu w domyślnym ekwipunku gracza Fortnite. |
| Odpowiada paskom narzędzi budowania w domyślnym ekwipunku gracza Fortnite. |
| Odpowiada slotowi pułapki w domyślnym ekwipunku gracza Fortnite. |
| Odpowiada sekcji walut w domyślnym ekwipunku gracza Fortnite. |
| Odpowiada sekcji przedmiotów do zebrania w domyślnym ekwipunku gracza Fortnite. |
| Odpowiada sekcji amunicji w domyślnym ekwipunku gracza Fortnite. |
Możesz też utworzyć własną konfigurację podekwipunków, aby dodawać do nich, usuwać z nich lub zastąpić domyślny ekwipunek gracza.
Przedmioty i ekwipunki są tak proste lub złożone, jak liczba komponentów dodanych do przedmiotu lub jednostki ekwipunku. W miarę rozwoju systemu niestandardowego ekwipunku i przedmiotów, dodawane będą kolejne komponenty, które zapewnią jeszcze więcej funkcjonalności.