Ta funkcja 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.
W tym samouczku zaprezentowano, jak można użyć systemu niestandardowych ekwipunków i przedmiotów z wykorzystaniem narzędzia Scene Graph i Verse, aby utworzyć niestandardowy przedmiot karty magnetycznej.
Po zbudowaniu tego przykładu dowiesz się, jak utworzyć niestandardową kartę magnetyczna. Następnie możesz używać niestandardowej karty magnetycznej w grach, które zawierają miejsca docelowe do znalezienia i w których karty magnetyczne są używane do uzyskiwania dostępu do zablokowanych obszarów. Kilka przykładów:
Zamknięty pokój zawierający obiekt do zrabowania
Następny obszar w grze
Skarb lub nagrody za pokonanie bossa
Zanim zaczniesz
Aby ukończyć ten samouczek, musisz znać UEFN, narzędzie Scene Graph i kod Verse.
Konfigurowanie projektu
Wykonaj poniższe kroki, aby skonfigurować projekt oraz włączyć system niestandardowych ekwipunków i przedmiotów.
Otwórz UEFN i utwórz projekt na podstawie dowolnego szablonu wyspy. W oknie Szablony wysp możesz wybrać projekt Pusty, jeśli chcesz pracować z wykorzystaniem płaskiego obszaru. Nadaj nazwę nowemu projektowi i kliknij Utwórz, aby otworzyć go w edytorze.
Na pasku narzędzi kliknij Projekt i wybierz Ustawienia projektu.
Przewiń w dół do sekcji Dostęp eksperymentalny i zaznacz pole System ekwipunku. To włączy system niestandardowych ekwipunków i przedmiotów.
Budowanie pomieszczenia
Najpierw musisz zbudować pomieszczenie na potrzeby tego przykładu. Przykład ma formę demonstracji porównującej dwoje zamkniętych drzwi:
W pierwszym przypadku zademonstrowano, jak karta magnetyczna Fortnite otwiera drzwi wyposażone w urządzenie kłódki, przy czym jest używane urządzenie przycisku warunkowego w celu ustalenia, czy gracz ma kartę magnetyczną.
W drugim przypadku zademonstrowano, jak można użyć niestandardowej karty magnetycznej zamiast istniejącego przedmiotu karty magnetycznej Fortnite i wykorzystać Verse w celu ustalenia, czy gracz ma niestandardową kartę magnetyczną.
Aby zbudować pomieszczenie na potrzeby tego przykładu, możesz użyć następujących zasobów Fortnite:
Pomieszczenie: w przeglądarce zawartości wybierz kolejno Fortnite > Zasoby szarej skrzynki > Demo. W tym przykładzie są używane zasoby DemoRoom.
Pomieszczenie demonstracyjne: w przeglądarce zawartości wybierz kolejno Fortnite > Zasoby szarej skrzynki > Demo. Użyj zasobu DemoDisplay.
Drzwi:
Drzwi w zielonej ścianie: wybierz kolejno Fortnite > Galerie > Budowanie > Wykrzywione Wieże, ściany – galeria N. Znajdź element Suburban Interior Door C 02 a8a9d603 na końcu pierwszego rzędu.
Drzwi w beżowej ścianie z ciemnym wykończeniem u góry: w tej samej galerii co powyżej tuż po lewej stronie znajduje się element Suburban Interior Door C 02 a9577d9d.
Stół: wybierz kolejno Fortnite > Rekwizyty > Super. Znajdź element Academy Round Table A 13a04066.
Konfiguracja urządzeń
Wymagane urządzenia:
1 x punkt startowy gracza
2 x urządzenie kłódki
1 x urządzenie przycisku warunkowego
2 x urządzenie wolumenu
1 x ustawiacz przedmiotów (przedmiot karty magnetycznej Władz)
Konfigurowanie drzwi dla karty magnetycznej Fortnite
Wybierz jedne drzwi, aby skonfigurować typowe zamknięte drzwi Fortnite. Aby skonfigurować urządzenia dla pierwszych drzwi, wykonaj poniższe kroki.
Umieść jedno urządzenie kłódki na ścianie obok drzwi. W panelu szczegółów dostosuj opcje urządzenia w poniższy sposób. Opcje, których nie ma na liście, można pozostawić z wartościami domyślnymi.
Opcja
Wartość
Wyjaśnienie
Widoczność podczas gry
False (niezaznaczone)
Spowoduje to ukrycie urządzenia kłódki w trakcie gry, dzięki czemu gracze nie będą go widzieli.
Zamknięte na klucz na początku
Zablokowano
Dzięki temu drzwi są zablokowane po rozpoczęciu gry.
Ukryj interakcję, jeśli zablokowano
True (zaznaczone)
Ukrywa monit o interakcję, gdy drzwi są zamknięte.
Początkowa pozycja drzwi
Zamknięte
To sprawia, że domyślna pozycja początkowa drzwi to Zamknięte.
W sekcji Opcje użytkownika – funkcje skonfiguruj poniże funkcje dla urządzenia kłódki.
Skonfigurowanie funkcji kłódki może nie być możliwe, dopóki nie umieścisz urządzenia wolumenu (patrz: poniższy krok 3).
Funkcja
Urządzenie docelowe
Zdarzenie do powiązania
Wyjaśnienie
Odblokuj
Przycisk warunkowy
Po zadziałaniu
Drzwi zostaną odblokowane, gdy aktywuje się przycisk warunkowy.
Zablokuj
Przestrzeń
Po opuszczeniu
Drzwi zostaną zablokowane, gdy gracz opuści wolumen dla drzwi urządzeń Fortnite.
Umieść jedno urządzenie wolumenu (wyśrodkowane na drzwiach). W panelu szczegółów dostosuj opcje urządzenia w poniższy sposób. Opcje, których nie ma na liście, można pozostawić z wartościami domyślnymi.
Opcja
Wartość
Wyjaśnienie
Kształt przestrzeni
Cylinder
Określa kształt przestrzeni.
Wysokość przestrzeni
x 0,25
To określa, jak wysoko znajdzie się walec wolumenu.
Promień przestrzeni
0.9x
To ustawia promień walca wolumenu. Określa, jak blisko lub daleko znajduje się on od lokalizacji urządzenia. Chcesz, aby promień był stosunkowo mały, więc gracz musi podejść blisko drzwi, aby wejść do wolumenu.
Umieść urządzenie przycisku warunkowego obok drzwi (pod urządzeniem kłódki). Dostosuj opcje w pokazany poniżej sposób. Opcje, których nie ma na liście, można pozostawić z wartościami domyślnymi.
Opcja
Wartość
Wyjaśnienie
Wymagane przedmioty kluczowe
True (zaznaczone), 1
Zaznacz tę opcję, aby wskazać, że do spełnienia warunku wymagany jest przedmiot kluczowy. W polu wprowadź wartość 1, aby wskazać, że wymagana jest tylko jedna karta magnetyczna.
Przedmiot kluczowy 1
Karta magnetyczna Władz (nazwa w grze) lub AGID_CP_Keycard_Agency (identyfikator przedmiotu)
Aby wybrać wymagany przedmiot, kliknij listę rozwijaną i wyszukaj „keycard”. Istnieje kilka przedmiotów kart magnetycznych, ale w tym przykładzie użyto przedmiotu „Karta magnetyczna Władz”.
W sekcji Opcje użytkownika – funkcje ustaw poniższe funkcje dla urządzenia przycisku warunkowego.
Funkcja
Urządzenie docelowe
Zdarzenie do powiązania
Wyjaśnienie
Aktywuj
Przestrzeń
Po wejściu
Gdy gracz wejdzie do wolumenu dla drzwi urządzeń Fortnite, aktywuje się przycisk warunkowy. Sprawdza, czy gracz ma kartę magnetyczną Władz.
Konfigurowanie drzwi dla niestandardowej karty magnetycznej
Aby skonfigurować urządzenia dla drugich drzwi, wykonaj poniższe kroki.
Opcje dla obu urządzeń kłódki są takie same, więc możesz skopiować pierwsze urządzenie kłódki i wkleić jego kopię do swojego poziomu. Być może zechcesz zmienić nazwę urządzenia, aby odróżnić je od pierwszego.
W sekcji Opcje użytkownika – funkcje skonfiguruj poniże funkcje dla urządzenia kłódki.
Być może nie będziesz w stanie ustawić tej funkcji, dopóki nie umieścisz punktu startowego gracza (w tym miejscu zakotwicz link do tej sekcji).
Funkcja
Urządzenie docelowe
Zdarzenie do powiązania
Wyjaśnienie
Zablokuj
Panel startowy gracza 1
Po pojawieniu się gracza
Gdy gracz spawnuje się z panelu startowego gracza 1, urządzenie kłódki aktywuje się i blokuje drzwi.
Opcje dla obu urządzeń wolumenu są takie same, więc możesz również skopiować pierwszy wolumen i wkleić jego kopię do swojego poziomu. Być może zechcesz zmienić nazwę urządzenia, aby odróżnić je od pierwszego.
Przygotowywanie stołu na karty magnetyczne
Wykonaj poniższe kroki, aby skonfigurować stół z kartą magnetyczną Fortnite i niestandardową kartą magnetyczną.
Umieść urządzenie ustawiacza przedmiotów z boku stołu, tak aby znajdowało się najbliżej zamkniętych drzwi, które tylko korzystają z urządzeń.
W panelu szczegółów dostosuj opcje urządzenia dla ustawiacza przedmiotów w pokazany poniżej sposób.
Opcja
Wartość
Wyjaśnienie
Lista przedmiotów
Karta magnetyczna Władz
Kliknij +, aby dodać element tablicy, a następnie kliknij listę rozwijaną i wyszukaj „keycard”. Następnie wybierz przedmiot Karta magnetyczna Władz.
W przeglądarce zawartości znajdź niestandardowy przedmiot karty magnetycznej i przeciągnij go do poziomu. Umieść niestandardową kartę magnetyczną na stole, tak aby znajdowała się po stronie najbliższych zamkniętych drzwi, które są dla niej skonfigurowane.
Po utworzeniu urządzenia keycard_gameplay_device (zakotwicz link w tym miejscu) zlokalizuj urządzenie Verse w przeglądarce zawartości i przeciągnij je do poziomu.
Konfigurowanie punktu startowego gracza
Na koniec musisz umieścić punkt startowy gracza. W tym przykładzie potrzebny jest tylko jeden punkt startowy gracza. Jeśli jednak tworzysz grę przeznaczoną dla wielu graczy, możesz wykonać poniższe kroki, aby skonfigurować więcej punktów startowych gracza. Możesz też skonfigurować je w inny sposób, w zależności od tego, jak ma wyglądać przygoda na wyspie.
Umieść punkt startowy gracza w miejscu, w którym gracz będzie od razu widział stół i dwoje drzwi.
Dostosuj opcje urządzenia w pokazany poniżej sposób.
Opcja
Wartość
Wyjaśnienie
Widoczność podczas gry
False (niezaznaczone)
W tym przykładzie punkt startowy gracza jest niewidoczny.
Po skonfigurowaniu pomieszczenia i urządzeń możesz utworzyć niestandardową kartę magnetyczną.
Tworzenie niestandardowego gotowca jednostki przedmiotu
W przeglądarce zawartości kliknij prawym przyciskiem myszy, aby otworzyć menu kontekstowe, a następnie wybierz Definicja gotowca jednostki. Spowoduje to dodanie nowego gotowca jednostki Scene Graph do przeglądarki zawartości.
Zmień nazwę gotowca na Item_Keycard.
Przeciągnij instancję nowego gotowca do świata (w tym celu przeciągnij ją do okna wizualizacji). Dzięki temu można go wybrać na panelu Outliner.
Gdy wybierzesz gotowiec Item_Keycard, w panelu szczegółów kliknij +Komponent i wybierz komponent item_component. Aby znaleźć ten komponent, możesz przewinąć listę lub wpisać „item” na pasku wyszukiwania w celu ograniczenia liczby wyników wyszukiwania i ułatwienia sobie szukania.
Ponownie kliknij +Komponent i wybierz item_details_component. Ten komponent przechowuje dane tekstowe dotyczące przedmiotu.
Komponent item_details ma trzy pola właściwości wyświetlane w panelu szczegółów: Name (Nazwa), Description (Opis) i ShortDescription (Krótki opis). W tych polach wprowadź nazwę, opis przedmiotu oraz krótką opisową etykietę.
Ponownie kliknij +Komponent i wybierz item_icon_component.
W panelu szczegóły rozwiń sekcję item_icon_component. Musisz wybrać obraz 2D, który będzie wyświetlany w UI gry (na przykład w ekwipunku gracza) w celu reprezentowania przedmiotu.
Kliknij listę rozwijaną obok pola Brak, aby otworzyć menu kontekstowe, i na pasku wyszukiwania wpisz część nazwy obrazu. W tym przykładzie używamy obrazu PNG o nazwie T_Icon_Keycard.png.
Z wyników wyszukiwania wybierz odpowiedni obraz.
Ponownie kliknij +Komponent i wybierz komponent mesh_component. W tym przykładzie wybierz opcję Płaszczyzna.
To spowoduje dodanie siatki płaszczyzny do przedmiotu. W zależności od ustawień ta płaszczyzna na początku może być bardzo duża. Wykonaj poniższe kroki, aby zmienić rozmiar płaszczyzny na równy rozmiarowi karty magnetycznej.
Na pasku narzędzi u góry okna wizualizacji wybierz narzędzie Skala. Możesz także nacisnąć klawisz R, aby przejść do narzędzia Skala.
Dalej na prawo od narzędzia Skala kliknij listę rozwijaną ustawienia Wstępnie ustawiony współczynnik skali. Ustaw wartość 0.0625. To pozwala zmniejszyć płaszczyznę do bardzo małych rozmiarów, aby mogła reprezentować kartę magnetyczną.
Ponownie kliknij +Komponent i wybierz fort_item_pickup_component. Dodanie tego komponentu powoduje dodanie całej funkcjonalności przedmiotów Fortnite:
Animacja podnoszenia przedmiotu i animacja upuszczania przedmiotu
Interakcja umożliwiająca dodanie przedmiotu do ekwipunku
Domyślny widżet przedmiotu, który wyświetla się, gdy gracz patrzy na przedmiot
Siatka przedmiotu jest wyłączana po podniesieniu przedmiotu
Siatka przedmiotu jest włączana po upuszczeniu przedmiotu
Teraz, gdy już masz gotowy podstawowy niestandardowy gotowiec karty magnetycznej, możesz utworzyć niestandardowy komponent Verse, dzięki któremu przedmiot stanie się unikatowy. To pozwoli sprawdzić go za pomocą kodu Verse w celu stwierdzenia, czy ten przedmiot otwiera określone zamknięte drzwi.
Tworzenie niestandardowego komponentu Verse
Zazwyczaj w przypadku dużego projektu, który zawiera wiele plików kodu Verse, warto utworzyć nowy plik Verse dla niestandardowego komponentu. W tym celu wykonaj następujące czynności.
Przykład wykorzystany w tym samouczku jest niewielki, dlatego niestandardowy komponent keycard_item_component został zdefiniowany w pliku Verse dla niestandardowego urządzenia keycard_gameplay_device. Procedurę opisano w sekcji Pisanie kodu Verse na potrzeby rozgrywki.
Gdy wybierzesz nowy przedmiot karty magnetycznej, w panelu szczegółów kliknij +Komponent i wybierz Nowy komponent Verse. Otworzy się okno Utwórz komponent Verse.
Możesz również utworzyć komponent Verse poprzez dodanie nowego pliku Verse za pomocą Eksploratora Verse.
W sekcji Wybierz szablon wybierz Komponent Scene Graph.
U dołu w polu Nazwa komponentu wpisz keycard_item_component. Następnie kliknij Utwórz.
W panelu szczegółów kliknij +Komponent i w pasku wyszukiwania wpisz „keycard”. Na liście powinien pojawić się nowy komponent Verse, więc wybierz go, aby dodać do niestandardowego przedmiotu karty magnetycznej.
Na pasku menu kliknij kolejno Verse > Eksplorator Verse. Znajdź nowy komponent Verse, kliknij go prawym przyciskiem myszy i wybierz Otwórz w Visual Studio Code.
Pisanie kodu Verse na potrzeby rozgrywki
Tworzysz niestandardowy przedmiot (kartę magnetyczną) i chcesz aktywować urządzenie, gdy gracz będzie mieć tę niestandardową kartę magnetyczną w ekwipunku, dlatego musisz utworzyć urządzenie Verse, aby mogło to się wydarzyć.
Na pasku menu wybierz kolejno Verse > Eksplorator Verse. Eksplorator Verse otwiera się na karcie obok panelu Outliner.
W Eksploratorze Verse kliknij prawym przyciskiem myszy nazwę projektu i wybierz Dodaj nowy plik Verse do projektu, aby otworzyć okno Utwórz skrypt Verse.
W oknie Utwórz skrypt Verse w sekcji Wybierz szablon kliknij Urządzenie Verse, aby wybrać to urządzenie. W polu Nazwa urządzenia wpisz keycard_gameplay_device. Następnie kliknij przycisk Utwórz, aby utworzyć plik Verse.
W Eksploratorze Verse kliknij dwukrotnie nowe urządzenie Verse, aby otworzyć plik w Visual Studio (VS) Code. Upewnij się, że w górnych wierszach kodu znajdują się wszystkie poniższe elementy.
Verseusing { /Fortnite.com/Devices } using { /Fortnite.com/Itemization } using { /Verse.org/Simulation } using { /Verse.org/SceneGraph } using { /Verse.org/Random } using { /UnrealEngine.com/Itemization } using { /UnrealEngine.com/Temporary/Diagnostics }Następnie dodaj kod definiujący niestandardowy komponent przedmiotu.
Verse# KEYCARD ITEM COMPONENT keycard_item_component := class(item_component) :Możemy dodać funkcję pomocniczą, która umożliwi nam odnalezienie ekwipunku głównego agenta docelowego.
Verse# Helper function that gets the first descendant inventory component from an agent. # This will be the root inventory. GetAgentInventory(Agent:agent)<decides><transacts>:inventory_component= TargetInventory := (for (I : Agent.FindDescendantComponents(inventory_component)) { I })[0]Następnie zdefiniuj niestandardowe urządzenie Verse jako podklasę urządzenia
creative_device. Poniżej skonfiguruj edytowalną właściwość dla urządzeń wolumenu i kłódki. Dzięki temu możesz wybrać konkretną instancję urządzenia wolumenu lub kłódki w edytorze (ważne, ponieważ masz dwa urządzenia wolumenu i dwa urządzenia kłódki).Verse# DEVICE //// GAMEPLAY keycard_gameplay_device := class(creative_device) : # Use a volume_device to be able to check when a player approaches @editable VolumeDevice:?volume_device = false # The lock device is attached to a wall/door prop. This can be activated to lock/unlock the door it is attached to. @editable LockDevice:?lock_device = falseTeraz użyjesz zapytania, aby sprawdzić, czy istnieje urządzenie wolumenu, i subskrybujesz zdarzenia W momencie wejścia agenta i W momencie wyjścia agenta dla urządzenia wolumenu.
Verse# Subscribe to the entry and exit events on the Volume to determine when a player/agent approaches. OnBegin<override>()<suspends>:void= if: TargetVolume := VolumeDevice? then: TargetVolume.AgentEntersEvent.Subscribe(OnAgentEntersEvent) TargetVolume.AgentExitsEvent.Subscribe(OnAgentExitsEvent)Chcesz sprawdzić, czy w ekwipunku gracza znajduje się niestandardowa karta magnetyczna. W tym celu musisz sprawdzić, czy istnieje cokolwiek z komponentem
keycard_item_component. Ten kod wymaga również obecności komponentukeycard_item_componentw celu otwarcia urządzenia kłódki.VerseOnAgentEntersEvent(Agent:agent):void= # Get the inventory from the player that is entering. if(TargetInventory := GetAgentInventory[Agent]): # Check the item in the inventory, if it has the keycard_item_component, proceed for(item : TargetInventory.FindItems(), KeycardComponent := item.GetComponent[keycard_item_component]) # If there is a valid lock_device, then this opens the door. if(TargetDoorLock := LockDevice?):Na koniec, jeśli w grze uczestniczy więcej niż jeden gracz i jeden gracz ma kartę magnetyczną, ten kod zagwarantuje, że kłódka pozostanie otwarta. Jeśli jednak gracz z kartą magnetyczną opuści wolumen, kłódka zostanie ponownie zamknięta.
VerseOnAgentExitsEvent(Agent:agent):void= # Start by assuming that no one has the required keycard_item_component. var AgentWithKeycardInVolume:logic = false if(TargetVolume := VolumeDevice?): # Get the Agents that are inside the volume_device as an array. for(TargetAgent:TargetVolume.GetAgentsInVolume()): # Use the same check to see if any of the agents in the volume_device have a keycard_item_component.
Oto pełny fragment kodu Verse.
using { /Fortnite.com/Devices }
using { /Fortnite.com/Itemization }
using { /Verse.org/Simulation }
using { /Verse.org/SceneGraph }
using { /UnrealEngine.com/Itemization }
using { /UnrealEngine.com/Temporary/Diagnostics }
# KEYCARD ITEM COMPONENT
keycard_item_component := class(item_component) :