Cuplikan Kamera Tanpa Mod: Keyframe, Interpolasi, dan Trik Mode Spektator
Dua cara menggerakkan kamera di vanilla — fungsi teleportasi per-tick, atau registri timeline. Kegunaan masing-masing, dan penghalusan agar tidak terlihat kaku.
Tidak ada objek kamera di vanilla, jadi cuplikan adalah salah satu dari dua ilusi.
Metode 1: Teleportasi Pemain Setiap Tick
Cara lama yang universal. Tempatkan Pemain dalam mode spektator, lalu gerakkan mereka di sepanjang jalur:
gamemode spectator @s
tp @s 100.0 70.0 200.0 -90.0 10.0
satu tp per tick dari rantai fungsi. Ini berfungsi di setiap versi dan tidak memerlukan hal khusus. Masalahnya semua tentang kehalusan:
- 20 keyframe per detik. Sebuah bidikan sepuluh detik adalah 200 baris
tp. - Langkah linier terlihat mekanis. Gerakan kamera yang sebenarnya masuk dan keluar dengan mulus.
- Rotasi berputar dengan buruk. Bergerak dari yaw 170 ke -170 adalah putaran 20 derajat, tetapi interpolasi naif berputar 340 derajat ke arah yang salah. Normalisasi perbedaan sudut ke dalam rentang -180…180 sebelum melangkah.
Menghasilkan baris-baris itu adalah tujuan alat keyframe — Anda menempatkan beberapa posisi dan itu mengeluarkan fungsi per-tick dengan penerapan easing.
Easing
Perbedaan antara amatir dan yang bisa ditonton adalah kurva interpolasi. Antara dua keyframe, dengan t dari 0 hingga 1:
linear t
ease-in-out t < 0.5 ? 2t² : 1 − 2(1−t)²
smoothstep t² × (3 − 2t)
smoothstep adalah default yang aman. Terapkan ke posisi dan rotasi secara bersamaan atau kamera akan tiba sebelum selesai berputar.
Metode 2: Registri Timeline
Versi yang lebih baru menambahkan format timeline yang menjelaskan seluruh bidikan sebagai data daripada sebagai ratusan teleportasi:
data/<namespace>/timeline/intro.json
Keyframe dengan waktu dan mode interpolasi, dimainkan dengan satu perintah. Keuntungan:
- Jauh lebih kecil. Enam keyframe alih-alih dua ratus teleportasi.
- Interpolasi bersifat native, jadi tidak ada perhitungan easing manual.
- Independen dari frame-rate — tidak tersendat seperti teleportasi per-tick di server yang sedang sibuk.
Kekurangannya adalah ini hanya ada di versi terbaru, jadi Peta yang menargetkan klien yang lebih lama masih membutuhkan metode 1.
Menjaga Pemain Tetap di Tempat
Kedua metode melawan dua hal:
- Input Pemain. Mode spektator memungkinkan Pemain terbang menjauh di tengah bidikan. Teleportasi ulang setiap tick akan mengesampingkannya, yang merupakan salah satu alasan metode brute-force tetap bertahan.
- Pemuatan chunk. Kamera yang terbang ke suatu tempat yang belum dimuat akan menunjukkan kekosongan.
/forceloadjalur sebelum bidikan dan hapus setelahnya.
Menyembunyikan HUD
/gamerule doImmediateRespawn, mode spektator, dan F1 akan membantu Anda sebagian besar. Untuk bingkai yang bersih, paket sumber daya yang mengosongkan sprite HUD akan menghilangkan crosshair dan hotbar tanpa Pemain menekan apa pun — lihat panduan HUD.
Tempatkan keyframe pada jalur dan ekspor fungsi per-tick atau JSON timeline dengan Cutscene & Timeline Builders.