Masz już utworzone jednostki, które poruszają się w przód i w tył między celami. Czas zbudować gotowca, którego możesz użyć do szybkiego skonfigurowania własnego poziomu.
Tworzenie gotowca
Na początek musisz zdefiniować zestaw jednostek, które będą składały się na poruszającą się jednostkę. Każdy Zestaw będzie miał wiele jednostek. Pierwsza jednostka będzie reprezentowała samą platformę, natomiast inne jednostki będą wyznaczały miejsca docelowe, do których będzie się przesuwać platforma. Aby utworzyć gotowiec resetującej się platformy, wykonaj następującą procedurę:
Dodaj jednostkę do sceny o nazwie
AnimatingBlockSet. Aby dowiedzieć się więcej na temat dodawania jednostek i komponentów do sceny, patrz Praca z jednostkami i komponentami.Dodaj kolejną jednostkę o nazwie
AnimatingBlockdo swojej sceny jako element podrzędnyAnimatingBlockSet. Ustaw przekształcenie tej jednostki na przekształcenie elementu nadrzędnego. Jest to jednostka, która będzie animowana.Dodaj
mesh_componentdo swojego AnimatingBlock i przypisz do niego sześcian.Dodaj
animate_to_targets_componentikeyframed_movement_componentdoAnimatingBlock. Jest to zdefiniowany wcześniej komponent Verse.Dodaj do sceny trzy nowe jednostki o nazwach
StartingTarget,Target2iTarget3i ustaw je jako elementy podrzędne obiektuAnimatingBlockSet. Dodaj komponentmesh_componentdo każdego z nich i ustaw dla niego wartość sphere. To pozwoli ci zwizualizować, w jakim miejscu świata porusza się twoja jednostka.Położenie tych jednostek można zmieniać, aby przesuwać platformę w inne obszary, a po ustawieniu bloku można wyłączyć ich
mesh_component, dzięki czemu kula nie będzie widoczna w trakcie rozgrywki.Ustaw
StartingTargetprzy tym samym przekształceniu coAnimatingBlock, aTarget2iTarget3w miejscach, w które blok ma być przesunięty. Spróbuj przypisaćTarget2iTarget3różne skale i obroty, aby zobaczyć, jak zmienia się blok podczas animacji do każdego z nich.W edytorze wybierz jednostkę
AnimatingBlock. W Panelu szczegółów dodaj trzy elementy do tablicysegmentów. UstawSegmentStartPositionna każdą jednostkę docelową, w takiej kolejności, w jakiej blok ma przemieszczać się do nich. Możesz również zmienićPauseSeconds,AnimationDurationiEasingFunction, aby dostosować ruch bloku.Na końcu kliknij prawym przyciskiem myszy pozycję
AnimatingEntitySetw Outlinerze i wybierz opcję Zapisz jako gotowiec. Nazwij ten gotowiecanimating_entity_prefab.
Przykładowy gotowiec z zastosowaniem wcześniejszej konfiguracji. Ponieważ Target2 i Target3 mają różne skale i obroty, AnimatingBlock będzie odpowiednio skalował i obracał podczas przemieszczania się do niego.
Budowanie poziomu platformówki
Gotowe! Po ukończeniu wszystkich prac przygotowawczych można przystąpić do budowania! Za pomocą utworzonych gotowców możesz błyskawicznie zbudować poziom platformowy!
Na początku poziomu spróbuj użyć animating_entity_set_prefab, aby utworzyć strukturę mostu, która sama się buduje. Możesz zastąpić mesh_component w każdej jednostce własnymi niestandardowymi siatkami, aby nadać im nieco stylu. Użyj trybu animacji oneshot, aby mieć pewność, że klocki pozostają na miejscu, gdy skończą się poruszać.
Bloki powoli animują się w swoich miejscach, tworząc most, po którym gracz może przejść.
Następnie umieść kilka utworzonych animating_entity_set_prefab, aby zbudować serię platform, po których gracze będą musieli poruszać się z ostrożnością. Wypróbuj różne wartości AnimationDuration, PauseSeconds i EasingFunction w każdym segmencie, aby każda platforma była niepowtarzalna i wymuszała czujność graczy. W poniższej konfiguracji gracz musi przejść przez trzy platformy, z których każda ma inny czas trwania animacji i czas pauzy.
Skoki są znacznie bardziej emocjonujące, jeśli wykonuje się je nad lawą.
Symulacja wszystkich jednostek rozpocznie się mniej więcej równocześnie, dlatego platformy również zaczną się poruszać w tym samym czasie. Pamiętaj o tym przy umieszczaniu platform, zwłaszcza jeśli masz wiele platform poruszających się w tym samym kierunku, gdyż brak zróżnicowania wartości AnimationDuration i PauseSeconds może uniemożliwić wykonanie niektórych skoków.
A co z platformami, które znikają w pętli? Korzystając z disappearing_entity_prefab, utwórz sekcję, w której gracze będą musieli przeskakiwać nad platformami, przy czym platformy znikają i pojawiają się ponownie w różnych momentach. Różnicuj ich czas trwania, aby tworzyć sytuacje trudne dla graczy.
Aby przejść przez tę sekcję, gracze muszą zwrócić szczególną uwagę na moment pojawiania się każdej jednostki.
Na koniec spróbuj użyć animating_entity_prefab jako przeszkody, której gracze muszą unikać. W poniższej konfiguracji gracz musi przejść przez szereg platform przez staw, ścigany przez ogromny blok. Block (blok) ma inne czasy trwania animacji i czasy pauz, aby przekroczenie stawu było dla gracza gorączkowe, ale nie niemożliwe do wykonania.
Nie jest łatwo zrelaksować się nad stawem, gdy ściga cię ogromny sześcian.
Praca własna
Gotowe! Dzięki tej instrukcji wiesz już, jak wykorzystać niestandardowe komponenty Verse do utworzenia własnej platformówki. Wykorzystując zdobytą wiedzę, spróbuj wykonać następujące czynności:
Czy potrafisz wykorzystać wiele komponentów Verse na tej samej platformie w celu stworzenia ciekawych scenariuszy? A może utworzysz platformę, która równocześnie będzie się poruszać i znikać?
Zastanów się, jakich innych komponentów możesz użyć w platformówce. Może utworzysz platformę, która będzie wykorzystywała komponent światła, aby zasygnalizować, kiedy można na niej stanąć, albo komponent systemu cząsteczkowego wskazujący, czy platforma może zadawać ci obrażenia?
Spróbuj utworzyć inne niestandardowe komponenty Verse, aby tworzyć nowe typy przeszkód. A co z jednostką, przez którą można przejść tylko wtedy, gdy ma ona odpowiedni kolor? A co z jednostką naprowadzającą, która wykrywa, w którym miejscu gracz się znajduje i powoli za nim podąża?
Complete Code
Oto kompletny kod zbudowany w ramach tego samouczka:
disappear_on_loop_component.verse
using { /Verse.org }
using { /Verse.org/Native }
using { /Verse.org/Simulation }
using { /Verse.org/SceneGraph }
# Loops between hiding and showing the entity by enabling and disabling
# its static mesh and collision components.
disappear_on_loop_component := class<final_super>(component):
animate_to_targets_component.verse
using { /Verse.org }
using { /Verse.org/Native }
using { /Verse.org/Random }
using { /Verse.org/Simulation }
using { /Verse.org/SpatialMath }
using { /Verse.org/SceneGraph }
using { /Verse.org/SceneGraph/KeyframedMovement }
using { /UnrealEngine.com }
# Editor Tool Tips