Катсцены

Материал из GTAModding.ru
Перейти к: навигация, поиск

Катсцены - анимационные заставки к миссиям, воспроизводимые движком игры. Служат для подачи сюжета игроку. Хранятся в архиве CUTS.IMG (MOCAPPS2.IMG в GTA VCS). Модели, использующиеся в катсценах, имеют специфическую иерархию и обычно содержат приставку cs перед именем.

Используются следующие форматы файлов:

Gta3.png Vc.png Sa.png Lcs.png Имя_сцены.ifp - пакет со списками кадров для каждого анимируемого объекта внутри сцены.
Gta3.png Vc.png Sa.png Lcs.png Имя_сцены.dat - данные для движения камеры внутри сцены.
Gta3.png Имя_сцены_имя_объекта.anm - список кадров для лицевой анимации персонажей.
Sa.png Lcs.png Vcs.png Имя_сцены.cut - данные, необходимые для загрузки катсцены.
Vcs.png Имя_сцены.cam - бинарная версия .dat-файла, структура полностью совпадает.
Vcs.png Имя_сцены.anim - новая версия пакетов анимаций, поддерживаемая исключительно GTA LCS и GTA VCS.

Содержание

Описание форматов

CUT

Файл .cut загружается первым. Он содержит важную информацию, например о загружаемых моделях или субтитрах. Он поделён на несколько секций. Не каждый cut-файл требует все секции, однако рекомендуется включать все, а неиспользуемые оставить пустыми.

INFO

Эта секция содержит информацию об оффсете. Она описывает 3D-координаты точки начала проигрывания катсцены.

info
offset X Y Z
end

Также этот параметр можно вызвать опкодом 0244.

MODEL

Эта секция содержит информацию о том, какая модель, какую анимацию будет использовать

model
UnknInt, name, animation
end

UnknInt - неизвестное число (зачастую просто 1)
name - название модели
animation - название анимации в IFP
Может содержать не более 50 значений!

EXTRACOL

Секция EXTRACOL выставлят цвет интерьера. Она аналогична опкоду 04F9.

extracol
Number
end

Number - число.
Extracolours редактируются в TimeCyc.DAT.

TEXT

Отображает текст внизу экрана.

text
starttime, length, gxt
end

starttime - время начала (в миллисекундах)
length - продолжительность (в миллисекундах)
gxt - текстовая строка в gxt

UNCOMPRESS

Декомпрессирует анимацию IFP.

uncompress
Animation
end
PEFFECT

Добавляет эффект из effects.fxp.

peffect
effectname, starttime, endtime, unknown_number, bone, X, Y, Z, ?, ?, ?
end

effectname - название эффекта
starttime - время начала (в миллисекундах)
endtime - время окончания
unknown_number - неизвестное число
bone - числовое значение (ID) части тела (кости) к которому прикрепляется эффект
X, Y, Z - координаты
?, ?, ? - неизвестно (возможно, поворот)

REMOVE

Убирает статический объект (записанный в IPL) по специфическим координатам.

remove
Objectname, X, Y, Z
end

Objectname - имя объекта
X, Y, Z - координаты

ATTACH

Предназначение этой секции неизвестно. Используется редко.

attach
Number, Number, Number
end
MOTION

Игра игнорирует эту секцию!

DAT

Файл dat содержит в себе информацию о камерах.

Состоит из 4-х блоков:

  • Блок 1: Поворот
  • Блок 2: Увеличение (зум)
  • Блок 3: Позиция камеры
  • Блок 4: Цель камеры

Каждый блок начинается с целого числа, которое обозначает сколько далее проследует строк в блоке, а заканчивается символом ";" (без кавычек). В конце файла тоже должен стоять этот символ. Конец строки определяется запятой в конце. В строке следует три значения (кроме TimeOffset - оффсета начала времени), где последние 2 игнорируются. Поэтому 3 значения можно ставить одинаковыми.

TimeOffset,Значение1,Значение2,Значение3,
Блок 1 - Поворот
TimeOffset,Поворот(Значение_1),Поворот(Значение_2),Поворот(Значение_3),

Описывает поворот камеры под углом (в градусах) относительно целевой точки.

Блок 2 - Увеличение
TimeOffset,Увеличение(Значение_1),Увеличение(Значение_2),Увеличение(Значение_3),

Определяет фокусировку камеры.

Блок 3 - Позиция камеры
TimeOffset,X(Значение_1),Y(Значение_1),Z(Значение_1),X(Значение_2),Y(Значение_2),Z(Значение_2),X(Значение_3),Y(Значение_3),Z(Значение_3),

Определяет позицию камеры.

Блок 4 - Направление камеры
TimeOffset,X(Значение_1),Y(Значение_1),Z(Значение_1),X(Значение_2),Y(Значение_2),Z(Значение_2),X(Значение_3),Y(Значение_3),Z(Значение_3),

Определяет точку, в которую будет направлена камера.

IFP

Блок, который содержит в себе анимации.

Список катсцен в San Andreas

SCM (Опкоды)

  • 0244 - SetsCutscenePosition
  • 02E4 - LoadsCutsceneData
  • 02E7 - StartsCutscene
  • 02E8 - GetsCutsceneTime
  • 02E9 - HasCutsceneReachedEnd
  • 02EA - EndsCutscene
  • 03B7 - ProcessCutsceneOnly
  • 06B9 - IsCutsceneDataLoaded
  • 08D0 - IsCutsceneSkipped
  • 08F0 - SetsCutsceneModelTexture

GTA IV

В GTA IV для каждой катсцены используются .WAD, .CUT и файлы моделей, которые принадлежат этой катсцене. .CUT файл этой игры использует теги. Список и описание этих тегов рассмотрены ниже, но большинство из них в процессе разбора. Катсцены в GTA IV состоят из секций. В одной катсцене может быть от одной до 15 секций. Теги DRAW_DISTANCE, FLAGS, BLOCKING_BOUNDS, CAMCORDER, TEXT, как обычно, не используются внутри секций. Секций .cut файла разобрали - DK22PAC и Solom.

Описание тегов

ID:0 - SECTION_START

Тег указывает на начало секции катсцены.

ID:0 - SECTION_END

Тег указывает на конец секции катсцены.

ID:1 - OFFSET

Точка, которая определяет начало системы координат катсцены

float X, float Y, float Z

Пример:

[OFFSET]
-109.416000 -265.023010 14.785000
[/OFFSET]
ID:2 - CUTSCENE_HEADER

Неизвестная секция. Вызывает ли она вылет игры при удалений данной секций из .cut файла - пока непонятно.

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

ID:3 - DURATION

Определяет длительность секции

Пример:

[DURATION]
45466.667969
[/DURATION]
ID:4 - ANIM

Название WAD файла, в котором хранятся анимации для секции.

string WADName

Обычно, это <имя катсцены>_<ID секции>

Пример:

[ANIM]
RB_1_1
[/ANIM]
ID:5 - MODELS

Содержит информацию о субьектах, которые присутсвуют в катсцене, а именно - их модели и анимации.

int ID, string ModelName, string AnimName, string HeadAnimName, int Unknown
  • ID - идентификатор субьекта, который может использоваться в других тегах
  • ModelName - название модели (модели для катсцен находятся в архиве cutsprops.img)
  • AnimName - название анимации для субьекта из WAD файла
  • HeadAnimName - название анимации лица для персонажа из WAD файла

В одной секции катсцены может быть использовано до 570 субьектов.

Пример:

[MODELS]
0 CS_Davethemate CS_Davethemate_0 Davethemate_head_0
1 player player_0 player_head_0
2 CS_Hossan CS_Hossan_0 cs_hossan_head_0 0
3 CS_WhippingGirl CS_WhippingGirl_0
4 csWhip csWhip_0
5 csToolBox csToolBox_0
[/MODELS]
ID:6 - VEHICLE_DETAILS

Присваивает некоторые характеристики транспорту.

int ID, int color1, int color2, int color3, int color4, int dirtLevel, int livery
  • ID - идентификатор субьекта (определён в теге MODELS)
  • color1...4 - ID цвета (из carcols.dat)
  • dirtLevel - уровень загрязнённости (0-15, по стандарту - 0)
  • livery - тип используемого логотипа (по стандарту - -1) (например - Enforcer)

Пример:

[VEHICLE_DETAILS]
2 0 127 133 133 0
[/VEHICLE_DETAILS]

Максимальное количество строк - 10

ID:7 - VEHICLE_REMOVAL

Используется для того, чтобы убрать деталь автомобиля из катсцены.

int ModelID, int BoneID
  • ModelID - Порядковый номер модели, который записан в теге MODELS
  • BoneID - Идентификатор кости

Пример:

[VEHICLE_REMOVAL]
0 15301
[/VEHICLE_REMOVAL]

Как можно заметить, ModelID параметр используется из тега MODELS, по которому игра определяет, какая модель используется для удаления детали автомобиля. Движок определяет по идентификатору кости, который записан в .wft файле модели (в данном случае - автомобиль BANSHEE). Максимальное количество строк - 100, для одного автомобиля - 10.

ID:8 - CAMCORDER

Определяет время включения/выключения "режима сьёмки".

int StartTime, int EndTime
  • StartTime - время начала "режима сьёмки"
  • EndTime - время окончания действия "режима сьёмки"

Максимальное количество строк - 30

Пример:

[CAMCORDER]
14900 19666
24199 27833
31633 37600
64766 67533
72466 100233
[/CAMCORDER]

Примечание: Скриншот из катсцены с включенным "режимом сьёмки"

ID:9 - VARIATION

Устанавливает варианты моделей и текстур педов в катсцене. Информация в теге является общей для всех секций.

int ID, int component, int drawableVariation, int textureVariation, int time
  • ID - идентификатор субьекта (определён в теге MODELS)
  • component - ID компонента педа
0  head
1  uppr
2  lowr
3  suse
4  hand
5  feet
6  jack
7  hair
8  sus2
9  teef
10 face
  • drawableVariation - номер варианта модели
  • textureVariation - номер варианта текстуры
  • time - время применения этой вариации
ID:10 - REMOVE
ID:11 - FIXUP

Секция в процессе разбора. Ниже приведена не разобранная структура:

float1, float2, float3, string, float4
ID:12 - CAMERA

В этом теге указывается название анимации из .WAD файла сцены которая будет использоваться для камеры в текущей секции. Обычно, это camera_<ID секции>

Пример:
[CAMERA]
camera_0
[/CAMERA]
ID:13 - AUDIO

Тег отвечает за использование аудио файла в катсцене.

Все аудио файлы для катсцены расположены в директории pc/audio/sfx/cutscenes.rpf

Пример:

[AUDIO]
myaudio
[/AUDIO]
ID:14 - TEXT

Отображает текст внизу экрана.

int starttime, int length, string gxt
  • starttime - время начала (в миллисекундах)
  • length - продолжительность (в миллисекундах)
  • gxt - имя строки в gxt.

Например:

[TEXT]
10817	683	MY_TEXT_1
12250	1033	MY_TEXT_2
15017	2033	MY_TEXT_3
[/TEXT]

Максмальное кол-во текстов - 500.

ID:15 - ATTACHMENT

Отвечает за крепление субьекта к субьекту.

int ID1, int ID2, int Unknown
  • ID1, ID2 - идентификаторы субьектов, присваиваются в секции MODELS

Примечание: Тег не использовался в оригинальных .cut-файлах.

ID:16 - PROPS
int ModelID, int index, int prop
  • ModelID - Порядковый номер модели, который записан в теге MODELS

Максимальное количество строк - 50.

ID:17 - FLAGS

Секция для флагов. Флаги назначают некоторые дополнительные параметры или эффекты во время катсцены.

Пример:

[FLAG]
SHORT_FADE_OUT
[/FLAG]
Список флагов:
Число Флаг Описание
1 FADE_BETWEEN_SECTION Эффект "затухание" между секциями
2 NO_VEHICLE_LIGHTS Свет машины отсутствует
4 SHORT_FADE_OUT
8 LONG_FADE_OUT
16
32 FLAG_DONT_FADE_IN_FROM_GAME
64 FLAG_USE_ONE_AUDIO
128 FLAG_MUTE_MUSIC_PLAYER
256 FLAG_LEAK_RADIO
512 FLAG_DONT_FADE_OUT
1024 NO_AMBIENT_LIGHTS Окружающий свет отсутствует
2048 FLAG_DONT_FADE_AUDIO_IN
4096 FLAG_DONT_FADE_AUDIO_OUT
ID:18 - LIGHTS
ID:19 - DRAW_DISTANCE

Расстояние рендеринга объектов.

int Time, int Unused, float DrawDistance, float Unknown
  • Time - Время установки дистанции прорисовки
  • DrawDistance - Дальность видимости

Максимальное количество строк - 100

Пример:

[DRAW_DISTANCE]
0 0 60.00000
5550 1 200.00000
8177 2 20.00000
[/DRAW_DISTANCE]

Примечание 1: Второй параметр игнорируется игрой, но он должен обязательно присутствовать (это может быть любое целое число)

Примечание 2: При отсутсвии в .cut-файле последнего параметра, он приравнивается к 0.05.

ID:20 - EFFECTS
ID:21 - BLOCKING_BOUNDS

Определяет зоны блокировки (для педов/автомобилей). Используется для игнорирования Spawn (появления) педов/автомобилей в данной зоне.

float CornerAA_x, float CornerAA_y, float CornerAA_z, float CornerAB_x, float CornerAB_y, float CornerAB_z, float CornerBA_x, float CornerBA_y, float CornerBA_z, float CornerBB_x, float CornerBB_y, float CornerBB_z, float Height
  • CornerAA, CornerAB, CornerBA, CornerBB - точки четырёхугольника
  • Height - высота зоны

Максимальное количество строк - 24

Пример:

[BLOCKING_BOUNDS]
-6.656193 3.182460 -1.100477 -3.160525 -2.872214 -1.100477 -0.601519 6.678128 -1.100477 2.894149 0.623454 -1.100477 6.991335
-9.463666 8.045147 -1.100477 -5.967999 1.990473 -1.100477 -3.408992 11.540814 -1.100477 0.086675 5.486141 -1.100477 6.991335
-12.252039 12.874750 -1.100477 -8.756371 6.820076 -1.100477 -6.197365 16.370419 -1.100477 -2.701697 10.315743 -1.100477 6.991335
-15.035851 17.696455 -1.100477 -11.540183 11.641781 -1.100477 -8.981177 21.192123 -1.100477 -5.485509 15.137448 -1.100477 6.991335
-17.831411 22.538509 -1.100477 -14.335744 16.483833 -1.100477 -11.776738 26.034176 -1.100477 -8.281070 19.979500 -1.100477 6.991335
-20.628733 27.383612 -1.100477 -17.133064 21.328936 -1.100477 -14.574059 30.879278 -1.100477 -11.078391 24.824604 -1.100477 6.991335
-3.858371 -1.663509 -1.100477 -0.362703 -7.718184 -1.100477 2.196303 1.832158 -1.100477 5.691970 -4.222516 -1.100477 6.991335
[/BLOCKING_BOUNDS]
ID:24 - EXTRA_ROOM
string Unknown

Примечание 1: Не используется в оригинальных .cut-файлах.

Примечание 2: Полученное значение не используется игрой.

ID:25 - MAX_PEDS

Определяет максимальное количество педов в катсцене (не считая педов, задействованных в катсцене)

Пример:

[MAX_PEDS]
5
[/MAX_PEDS]
ID:26 - MAX_CARS

Определяет максимальное количество автомобилей в катсцене (не считая автомобилей, задействованных в катсцене)

Пример:

[MAX_CARS]
2
[/MAX_CARS]
ID:27 - TIMECYCLE_MODIFIER_NAME

Используется для указания модификатора Timecycle, который придает некоторые графические эффекты игры. По умолчанию, используется модификатор e2_int. Список можно посмотреть в файле timecyclemodifiers№.dat.

Пример:

[TIMECYCLE_MODIFIER_NAME]
fau3_a
[/TIMECYCLE_MODIFIER_NAME]

Примечание: Не используется в оригинальных .cut-файлах.

Секции, игнорируемые игрой

ID:22 - PLAYER_START

ID:23 - MISSION_TEXT_NAME

Примечание: Эти два параметра используются только в .SCO, поэтому данные секции игнорируются.

ORIENT

TIME

ANIMRANGE

COMPRESSION

SCO (Native функции) для катсцен

CLEAR_CUTSCENE

CLEAR_NAMED_CUTSCENE

EXPLODE_CAR_IN_CUTSCENE

EXPLODE_CAR_IN_CUTSCENE_SHAKE_AND_BIT

GET_CUTSCENE_TIME

GET_CUTSCENE_AUDIO_TIME_MS

GET_CUTSCENE_PED_POSITION

GET_CUTSCENE_SECTION_PLAYING

HIDE_CHAR_WEAPON_FOR_SCRIPTED_CUTSCENE

HAS_CUTSCENE_FINISHED

HAS_CUTSCENE_LOADED

INIT_CUTSCENE

IS_PED_IN_CUTSCENE_BLOCKING_BOUNDS

IS_PLAYER_READY_FOR_CUTSCENE

IS_POS_IN_CUTSCENE_BLOCKING_BOUNDS

MAKE_PLAYER_SAFE_FOR_CUTSCENE

SET_CAR_IN_CUTSCENE

SET_CHAR_IN_CUTSCENE

SET_CUTSCENE_EXTRA_ROOM_POS

SHAKE_PAD_IN_CUTSCENE

START_CUTSCENE_NOW

START_CUTSCENE - не используется (?)

SET_CUTSCENE_EXTRA_ROOM_POS

WAS_CUTSCENE_SKIPPED


п · о · р
San Andreas Grand Theft Auto: San Andreas
Форматы файлов.col.cfg.cut.dff.dat.fxp.gxt.ide.ifp.img.ipl.rep.rrr.scm.txd.set
Документацияcarcols.datCarrecPed EventsPed TypeАдреса Памяти Функций (SA)Анимация моделей в SAВизуальные эффекты в скриптинге
Загруженные звукиКатсценыНомера оружияРисование на экранеТрюки с меткамиСтатистикаСтруктура аудио в SABeta версия
ИнструментыCLEOCollision File Editor IIENBSeriesG-ToolsGXT EditorIMG ToolPS2 TXD ModPS2 TXD ViewerLimit AdjusterMap EditorPathViewer
San Andreas Audio ToolkitSan Andreas Texture PlacerSanny BuilderTXD WorkshopTXDFuckerXBOX TXD PowerTool
ТуториалыРедактирование аудио в SAИзменение cutsceneDecision MakerПропуск роликовКонвертация автомобилей в SA
Основы маппинга GTA:SAДелаем ломающиеся объектыКонвертирование персонажа в SA2dfx в SanAndreasМоддинг San Andreas v2.0
Новая анимация персонажейУниверсальный солдат (GTA SA)
МодыAlien CityDesign Your Own MissionGTA: UnitedGTA StoriesGTA Berlin
МультиплеерgtaTournamentMulti Theft AutoSan Andreas Multiplayer
п · о · р
GTA 4 Grand Theft Auto IV
Форматы файлов.dat.gxt.ide.img.ipl.nod.sco.rpf.rrr.wdd.wdr.wft.wbd/wbn.whm.wad.wnv.wpl.wtd
Документация Handling.datgta.datОружиеКатсценыПутиСкриптовые функцииШифрованиеФормат CFG файла настроек
Скриптинг в GTA 4
ИнструментыAPE IVASI LoaderIV NeedleGIMSOpenIVPathViewerSparkIVXLiveLessRaCon
Скриптовые программыAliceC++ Script HookScocl.NET Script HookDelphi Hook
ТуториалыИмпортирование текстур с помощью OpenIVИмпортирование текстур с помощью SparkIV
МодификацииGTA Vice City RageIV:SAGostown Paradise IV