Этот раздел находится в стадии разработки и представляет собой адаптацию Руководства по написанию сценариев 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
. Обычно они используются для управления движением камеры.