MC Toolkit

Poradniki / Polecenia i dane

Przerywniki filmowe z kamerą bez moda: klatki kluczowe, interpolacja i sztuczki z trybem widza

Vanilla porusza kamerą tylko w jeden sposób — funkcją teleportacji wywoływaną co tick — a rejestr osi czasu buduje wokół tego nastrój. Do czego nadaje się każde z nich i jakie wygładzanie odbiera temu mechaniczny wygląd.

W vanilla nie istnieje żaden obiekt kamery, więc przerywnik filmowy to iluzja zbudowana z teleportacji, z osią czasu zmieniającą świat wokół niej.

Metoda 1: teleportacja gracza co tick

Stary, uniwersalny sposób. Przełącz gracza w tryb widza, a potem prowadź go po ścieżce:

gamemode spectator @s
tp @s 100.0 70.0 200.0 -90.0 10.0

jedno tp na tick z łańcucha funkcji. Działa na każdej wersji i nie wymaga niczego specjalnego. Wszystkie problemy dotyczą płynności:

  • 20 klatek kluczowych na sekundę. Dziesięciosekundowe ujęcie to 200 linii tp.
  • Liniowe kroki wyglądają mechanicznie. Prawdziwe ruchy kamery przyspieszają i zwalniają.
  • Obrót zawija się źle. Przejście od yaw 170 do -170 to obrót o 20 stopni, ale naiwna interpolacja zakręci 340 stopni w złą stronę. Znormalizuj różnicę kątów do zakresu -180…180 przed wykonaniem kroku.

Generowanie tych linii to właśnie zadanie narzędzia do klatek kluczowych — umieszczasz kilka pozycji, a ono wypisuje funkcję na każdy tick z zastosowanym wygładzaniem.

Wygładzanie

Różnica między amatorskim a przyjemnym w odbiorze efektem tkwi w krzywej interpolacji. Między dwiema klatkami kluczowymi, przy t od 0 do 1:

linear      t
ease-in-out t < 0.5 ? 2t²  :  1 − 2(1−t)²
smoothstep  t² × (3 − 2t)

smoothstep to bezpieczny domyślny wybór. Stosuj go jednocześnie do pozycji i obrotu, inaczej kamera dotrze na miejsce, zanim skończy skręcać.

Metoda 2: osie czasu, do wszystkiego oprócz kamery

Nowsze wersje dodały rejestr timeline i kusi, by odczytać go jako ścieżkę kamery:

data/<namespace>/timeline/intro.json

To nie jest ścieżka kamery. Oś czasu działa względem zegara świata i tworzy klatki kluczowe dla atrybutów otoczenia — koloru nieba i mgły, dźwięków otoczenia i muzyki, światła — z natywną interpolacją. Nie potrafi poruszyć graczem, więc sama kamera to nadal metoda 1. Oś czasu świetnie radzi sobie natomiast z nastrojem przerywnika: przygasza niebo, przesuwa mgłę i podmienia muzykę w rytm teleportacji, bez osobnej komendy na każdy tick.

Koszt jest taki, że istnieje tylko w nowszych wersjach, więc mapa celująca w starszych klientów musi udawać nastrój za pomocą /time i /weather.

Utrzymanie gracza w miejscu

Ścieżka teleportacji walczy z dwiema rzeczami:

  • Wejściem gracza. Tryb widza pozwala graczowi odlecieć w trakcie ujęcia. Teleportacja co tick to nadpisuje — i to jeden z powodów, dla których metoda siłowa wciąż się trzyma.
  • Wczytywaniem chunków. Kamera lecąca w niewczytane miejsce pokazuje pustkę. Wykonaj /forceload na ścieżce przed ujęciem i usuń ją po.

Ukrywanie HUD

Tryb widza i F1 załatwiają większość roboty. Dla czystego kadru paczka zasobów, która wygasza sprite'y HUD, usuwa celownik i pasek szybkiego dostępu, bez naciskania czegokolwiek przez gracza — zobacz poradnik o HUD.

Rozmieść klatki kluczowe na ścieżce i wyeksportuj funkcję na każdy tick, a potem zbuduj oś czasu ustawiającą scenę wokół niej, korzystając z Kreatorów przerywników i osi czasu.

Kreatory przerywników i osi czasu →

Więcej poradników

Zobacz wszystkie →