Катсцени з камерою без модів: ключові кадри, інтерполяція та трюки з режимом спостерігача
Два способи переміщення камери у ванілі — щотикова функція телепортації або реєстр часової шкали. Для чого підходить кожен із них, і згладжування, яке робить рух природним.
У ванільній грі немає об'єкта камери, тому катсцена — це одна з двох ілюзій.
Спосіб 1: телепортувати гравця щотику
Старий універсальний спосіб. Переведіть гравця в режим спостерігача, а потім переміщуйте його вздовж шляху:
gamemode spectator @s
tp @s 100.0 70.0 200.0 -90.0 10.0
один tp per tick from a function chain. It works on every version and needs nothing special. The problems are all about smoothness:
- 20 ключових кадрів на секунду. Десятисекундний кадр — це 200
tplines. - Лінійні кроки виглядають неприродно. Справжній рух камери має плавний початок і кінець.
- Обертання некоректно перескакує. Перехід з yaw 170 до -170 — це поворот на 20 градусів, але наївна
інтерполяція крутить на 340 градусів у хибний бік. Нормалізуйте різницю кутів до діапазону -180…180 перед кроком.
Генерація цих рядків — ось для чого потрібен інструмент ключових кадрів: ви вказуєте кілька позицій, а він створює щотикову функцію із застосованим згладжуванням.
Згладжування
Різниця між аматорським і якісним виглядом полягає у кривій інтерполяції. Між двома ключовими кадрами, з t from 0 to 1:
linear t
ease-in-out t < 0.5 ? 2t² : 1 − 2(1−t)²
smoothstep t² × (3 − 2t)
smoothstep is the safe default. Apply it to position and rotation together or the camera arrives before it finishes turning.
Спосіб 2: реєстр часової шкали
Новіші версії додають формат часової шкали, який описує всю сцену як дані, а не як сотні телепортацій:
data/<namespace>/timeline/intro.json
Ключові кадри з часом та режимами інтерполяції, що відтворюються однією командою. Переваги:
- Набагато менший розмір. Шість ключових кадрів замість двохсот телепортацій.
- Інтерполяція є нативною, тому ніяких ручних обчислень для згладжування.
- Незалежність від частоти кадрів — вона не смикається, як щотикова телепортація на
навантаженому сервері.
Мінус у тому, що це доступно лише у свіжих версіях, тому карти для старіших клієнтів все ще потребують способу 1.
Утримання гравця на місці
Обидва способи борються з двома речами:
- Керування гравця. Режим спостерігача дозволяє гравцеві полетіти геть під час зйомки. Повторна телепортація щотику
перекриває це, що є однією з причин, чому цей прямолінійний спосіб досі використовується.
- Завантаження чанків. Камера, що летить у незавантажену область, показує порожнечу.
/forceloadthe path
перед сценою та приберіть після неї.
Приховування інтерфейсу
/gamerule doImmediateRespawn, spectator mode and F1 get you most of the way. For a clean frame, a resource pack that blanks the HUD sprites removes the crosshair and hotbar without the player pressing anything — see the HUD guide.
Розміщуйте ключові кадри на шляху та експортуйте або щотикову функцію, або JSON часової шкали за допомогою Конструктори катсцен і часових шкал.