Guides / Commands & Data

Катсцены без модов: ключевые кадры, интерполяция и хитрости режима наблюдателя

Два способа перемещения камеры в ванильной версии: функция телепортации по тикам или реестр таймлайнов. В чем преимущества каждого, и как сглаживание помогает избежать роботизированных движений.

В ванильной версии нет объекта камеры, поэтому катсцена — это одна из двух иллюзий.

Метод 1: телепортировать игрока каждый тик

Старый, универсальный способ. Переводим Игрока в режим наблюдателя, затем перемещаем его по траектории:

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

один tp за тик из цепочки функций. Работает на всех версиях и не требует ничего особенного. Все проблемы связаны со сглаживанием:

  • 20 ключевых кадров в секунду. Десятисекундный кадр — это 200 строк tp.
  • Линейные шаги выглядят механически. Движения реальной камеры плавно начинаются и заканчиваются.
  • Вращение плохо обрабатывается. Переход от угла рыскания 170 к -170 — это поворот на 20 градусов, но наивная интерполяция поворачивает на 340 градусов в неправильном направлении. Нормализуйте разницу углов в диапазон -180…180 перед шагом.

Для генерации этих строк и нужен инструмент для ключевых кадров — вы задаете несколько позиций, и он создает функцию для каждого тика с примененным сглаживанием.

Сглаживание

Разница между любительским и смотрибельным видео — это кривая интерполяции. Между двумя ключевыми кадрами, с t от 0 до 1:

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

smoothstep — безопасный вариант по умолчанию. Применяйте его к позиции и вращению одновременно, иначе камера прибудет раньше, чем закончит поворот.

Метод 2: реестр таймлайнов

В новых версиях добавлен формат таймлайна, который описывает всю сцену как данные, а не как сотни телепортов:

data/<namespace>/timeline/intro.json

Ключевые кадры со временем и режимами интерполяции, воспроизводимые одной командой. Преимущества:

  • Намного меньше. Шесть ключевых кадров вместо двухсот телепортов.
  • Интерполяция нативная, поэтому нет необходимости в ручных математических расчетах сглаживания.
  • Независимость от частоты кадров — не заикается, как телепортация по тикам на загруженном сервере.

Недостаток в том, что он существует только в последних версиях, поэтому для Карты, ориентированной на старые клиенты, все еще нужен метод 1.

Удержание игрока на месте

Оба метода борются с двумя вещами:

  • Ввод игрока. Режим наблюдателя позволяет Игроку улететь посреди кадра. Повторная телепортация каждый тик отменяет это, что является одной из причин сохранения метода "грубой силы".
  • Загрузка чанков. Камера, летящая в незагруженное место, показывает пустоту. /forceload путь до начала съемки и удалите его после.

Скрытие HUD

/gamerule doImmediateRespawn, режим наблюдателя и F1 помогут вам в большинстве случаев. Для чистого кадра, ресурс-пак, который очищает спрайты HUD, убирает прицел и панель быстрого доступа без нажатия Игроком каких-либо кнопок — см. руководство по HUD.

Разместите ключевые кадры на пути и экспортируйте либо функцию для каждого тика, либо JSON таймлайна с помощью Cutscene & Timeline Builders.

Конструкторы катсцен и таймлайнов →

More guides

Browse all →

Нужны другие инструменты для Minecraft?

Набор генераторов, просмотрщиков и конвертеров прямо в браузере — всё бесплатно.