THN Редактирования
🧩
THN Редактирования
Предупреждение

Этот раздел находится в стадии разработки и представляет собой адаптацию Руководства по написанию сценариев THN от Treewyrm.

На этой странице может быть недостающая, неполная или неверная информация, поскольку она всё ещё находится в разработке! Относитесь к информации, представленной здесь, с долей скепсиса и не стесняйтесь вносить свои дополнения и исправлять ошибки!

Внутриигровые кат-сцены, такие как посадка на базу, взлёт и сюжет одиночной кампании, используют скрипты THN. Этот раздел поможет вам создать собственные кат-сцены.

Скрипты кат-сцен довольно просты по структуре. Они состоят из трёх основных разделов: длительность, объекты и временная шкала. Длительность определяет длительность кат-сцены. Объекты — это всё: от декораций до персонажей в кат-сцене и визуальных эффектов. Временная шкала определяет, какие события и когда активируются во время воспроизведения кат-сцены.

Важно отметить, что обычно кат-сцены происходят за пределами «системной сцены», где вы управляете своим кораблём, поэтому существует ряд ограничений. Скрипты THN можно использовать вместе со скриптами одиночных миссий для создания внутриигровых кат-сцен. Вступительная кат-сцена Freeport 7 — один из таких примеров.

💨 Начиная

Для работы с .thn-файлами вам понадобится всего несколько инструментов. Если вы хотите увидеть код или изменить исходные .thn-файлы, вам понадобится декомпилятор, например [Adoxa's Dethorn].(http://adoxa.altervista.org/freelancer/tools.html#dethorn) который будет создавать читаемые текстовые файлы, или вы можете использовать этот предварительно декомпилированный набор скриптов. Помните, что вам не нужно компилировать их обратно в упакованные двоичные файлы, как в случае с файлами .ini игры. Freelancer может читать как скомпилированные, так и простые текстовые файлы.

Настоятельно рекомендуется использовать хороший текстовый редактор с подсветкой синтаксиса LUA. Хотя ванильные скрипты не содержат программируемой логики и используются лишь как сериализованный формат данных объекта/массива, подобно тому, как JSON относится к JavaScript, можно использовать ограниченный набор, следуя синтаксису LUA версии 3.2.

📌 Справочные листы

📎 Кривые параметров

Большинство параметров, содержащихся в таблицах событий, объектов и временной шкалы, можно анимировать с помощью кривых, добавив param_curve и pcurve_period к свойствам событий.

Тип Описание
FreeFormPCurve Интерполяция касательных в свободной форме.
BumpInPCurve Всплеск внутрь.
BumpOutPCurve Всплеск наружу.
RampDownPCurve Спад (снижение).
RampUpPCurve Нарастание.
StepPCurve Без интерполяции.
SmoothPCurve Плавная интерполяция.
ThornLPCurve Неясно
LinearPCurve Линейная интерполяция.
CatmullRomPCurve Интерполяция Кэтмелла-Рома.

Кроме того, можно использовать pcurve_period для многократного повторения анимации в течение всего события. Однако, в отличие от свойства длительности, pcurve_period измеряется в миллисекундах. При отрицательном значении период будет соответствовать длительности события.

📌 Скрипты миссий

Катсцены можно вызывать из скриптов миссий с помощью функции Act_CallThorn. Обычно они используются для управления движением камеры.