Scenki przerywnikowe bez modów: klatki kluczowe, interpolacja i sztuczki trybu widza
Dwa sposoby na poruszanie kamerą w podstawowej wersji gry – funkcja teleportacji co takt lub rejestr osi czasu. Do czego nadaje się każdy z nich i jak wygładzić ruch, żeby nie wyglądał robotycznie.
W podstawowej wersji gry nie ma obiektu kamery, więc scenka przerywnikowa to jedna z dwóch iluzji.
Metoda 1: teleportowanie Gracza co takt
Stary, uniwersalny sposób. Umieść Gracza w trybie widza, a następnie przesuń go wzdłuż ścieżki:
gamemode spectator @s
tp @s 100.0 70.0 200.0 -90.0 10.0
jeden tp na takt z łańcucha funkcji. Działa na każdej wersji i nie wymaga niczego specjalnego. Problemy dotyczą wyłącznie płynności:
- 20 klatek kluczowych na sekundę. Dziesięciosekundowe ujęcie to 200 linii
tp. - Liniowe kroki wyglądają mechanicznie. Prawdziwe ruchy kamery płynnie się rozpoczynają i kończą.
- Obrót źle się zawija. Przejście od odchylenia 170 do -170 stopni to obrót o 20 stopni, ale naiwna interpolacja obraca o 340 stopni w złą stronę. Znormalizuj różnicę kątów do zakresu -180…180 przed wykonaniem kroku.
Generowanie tych linii to zadanie narzędzia do klatek kluczowych — umieszczasz kilka pozycji, a ono generuje funkcję na takt z zastosowanym wygładzaniem.
Wygładzanie
Różnica między amatorskim a oglądalnym materiałem to krzywa interpolacji. Między dwiema klatkami kluczowymi, z t od 0 do 1:
linear t
ease-in-out t < 0.5 ? 2t² : 1 − 2(1−t)²
smoothstep t² × (3 − 2t)
smoothstep to bezpieczna wartość domyślna. Zastosuj ją jednocześnie do pozycji i obrotu, w przeciwnym razie kamera dotrze na miejsce, zanim skończy się obracać.
Metoda 2: rejestr osi czasu
Nowsze wersje dodają format osi czasu, który opisuje całe ujęcie jako dane, a nie jako setki teleportacji:
data/<namespace>/timeline/intro.json
Klatki kluczowe z czasami i trybami interpolacji, odtwarzane za pomocą jednego polecenia. Zalety:
- Znacznie mniejszy rozmiar. Sześć klatek kluczowych zamiast dwustu teleportacji.
- Interpolacja jest natywna, więc nie ma potrzeby ręcznego obliczania wygładzania.
- Niezależność od liczby klatek na sekundę — nie zacina się tak, jak teleportacja na takt na obciążonym serwerze.
Wadą jest to, że istnieje tylko w nowszych wersjach, więc Mapa przeznaczona dla starszych klientów nadal wymaga metody 1.
Utrzymywanie Gracza w miejscu
Obie metody zmagają się z dwoma problemami:
- Wprowadzanie danych przez Gracza. Tryb widza pozwala Graczowi odlecieć w trakcie ujęcia. Ponowna teleportacja co takt nadpisuje to, co jest jednym z powodów, dla których metoda siłowa nadal jest stosowana.
- Ładowanie chunków. Kamera lecąca w niezaładowane miejsce pokazuje pustkę.
/forceloadścieżkę przed ujęciem i usuń ją po nim.
Ukrywanie HUD-a
/gamerule doImmediateRespawn, tryb widza i F1 załatwią większość sprawy. Aby uzyskać czystą klatkę, pakiet zasobów, który wyłącza sprite'y HUD-a, usuwa celownik i pasek szybkiego dostępu bez konieczności naciskania czegokolwiek przez Gracza — zobacz przewodnik po HUD-zie.
Umieść klatki kluczowe na ścieżce i wyeksportuj funkcję na takt lub plik JSON osi czasu za pomocą Cutscene & Timeline Builders.