Korzystanie z Timeline w Blueprints

Oś czasu jest rodzajem Utajonej Akcji,  która umożliwia tworzenie prostych animacji opartych na czasie w Planach. Aby zrozumieć użycie osi czasu, stwórzmy przykładowy schemat składający się z platformy, która porusza się między dwoma pozycjami, umożliwiając graczowi dostęp do różnych obszarów poziomu. Poniższy obraz przedstawia platformę poruszającą się między dwoma obszarami.

Utwórz nowy plan oparty na Actor, dodaj Komponent StaticMesh i wpisz nazwę „Platforma”. Jako StaticMesh wybierz „Floor_400x400”. W materiale StaticMesh wybrałem „M_Wood_Floor_Walnut_Polished”. Moja platforma wyglądała tak:

W EventGraph kliknij prawy przycisk i wybierz „Dodaj oś czasu”:

Oś czasu ma kilka pinów wejściowych i kilka pinów wyjściowych:

Wpisz nazwę „Timeline_Platform” dla tej osi czasu i kliknij ją dwukrotnie, aby otworzyć Edytor osi czasu:

To jest oś czasu, którą utworzyłem na potrzeby tego przykładu. Aby ustawić tę oś czasu, najpierw kliknij przycisk po lewej stronie z symbolem „f +” i etykietą „Dodaj swobodną ścieżkę”. Podaj nazwę „Pozycja” i ustaw wartość 6 w polu „Długość”. Ta oś czasu będzie modyfikować wartość zmiennej typu float   przez 6 sekund. Teraz musimy dodać klatki kluczowe animacji. Kliknij prawym przyciskiem na środku osi czasu i wybierz „Dodaj klucz” lub naciśnij Shift i lewy przycisk myszy:

Po dodaniu „klucza” możesz przesuwać go na osi czasu lewym przyciskiem myszy lub możesz wpisać czas i wartość dla tego „klucza”:

Przejście między kluczami na osi czasu nazywa się „interpolacją”. Aby zdefiniować typ interpolacji, kliknij prawym przyciskiem myszy klawisz. W tym przykładzie użyjemy interpolacji liniowej:

Do tej osi czasu będziemy potrzebować 4 kluczy o następujących wartościach:

TimeVale
0.00.0
1.00.0
5.01.0
6.01.0

Na osi czasu bardzo często używa się wartości zmiennoprzecinkowej z zakresu od 0,0 do 1,0. Potraktuj to jako odpowiednik 0% i 100%. Wkrótce w EventGraph zobaczymy, jak ta wartość jest używana.

To kończy zmiany w edytorze osi czasu. Platforma zatrzymuje się po dotarciu na oba końce, aby gracz mógł wejść na platformę lub z niej wyjść.

Wracając do EventGraph, będziemy potrzebować dwóch zmiennych typu „Float” o nazwach „X_Initial” i „X_Final”. Te zmienne powinny być „edytowalne”. Ich wartości powinny być podane na poziomie i reprezentować początkową i ostateczną pozycję platformy na osi X. Aby uprościć przykład, platforma porusza się tylko na osi X. Poniższy obrazek przedstawia zmienne używane w Planie:

Umieść Schemat platformy w pozycji początkowej na poziomie i zobacz wartość X ze zmiennej Lokalizacja schematu. Następnie umieść na ostatniej pozycji i zobacz wartość X. Umieść te wartości w zmiennych „X_Initial” i „X_Final”. Mój przykład ma następujące wartości:

Ostatnią brakującą częścią do zawarcia tego schematu jest EventGraph. Potrzebujemy działań, aby zmienić pozycję planu zgodnie z wartościami na osi czasu. EventGraph wyglądało następująco:

Aby pomóc zrozumieć ten EventGraph, przeanalizujemy każdy element osobno:

  • Funkcja Lerp : Ta funkcja przyjmuje trzy parametry wejściowe (A, B i Alpha). „Alpha” musi być wartością typu float z zakresu od 0,0 do 1,0. W tym przykładzie temu parametrowi przypisano wartość zmiennej „Pozycja”, która jest modyfikowana przez oś czasu. Wynikiem tej funkcji jest interpolacja między parametrami A i B, które mają wartości zmiennych „X_Initial” i „X_Final”. Na przykład, jeśli „Alpha” wynosi 0,5, wynikiem jest wartość znajdująca się pośrodku między zmiennymi „X_Initial” i „X_Final”.
  • Break Vector / Make Vector : służą do oddzielania zmiennych X, Y, Z wektora i tworzenia wektora na podstawie tych zmiennych. Są one używane w tym przykładzie, ponieważ zmieniamy tylko wartość X pozycji platformy.
  • Ustaw lokalizację aktora : Ustawia nową pozycję aktora.
  • Flip Flop :  Ma dwie linie wykonania jako wyjście (A i B). Za każdym razem, gdy jest aktywowany, przełącza wyjście między A i B. W tym przykładzie Flip Flop jest używany do przełączania wykonania osi czasu między normalnym a odwrotnym kierunkiem. 
  • Timeline_Platform : Kiedy oś czasu minie 6 sekund, wykonuje „Finished”, który jest połączony z Flip Flop, powodując, że linia czasu działa w odwrotnym kierunku. Oznacza to, że ta oś czasu nigdy nie zatrzyma swojego wykonania podczas gry.

Źródło:https://romeroblueprints.blogspot.com/2014/12/using-timelines-in-blueprints.html