IDE
Материал из GTAModding.ru
Версия от 13:28, 29 мая 2012; XEPOMAHT007 (обсуждение | вклад)
Содержание |
Введение
Файлы Item DEfinition имеют расширение .ide и являются частью GTAGAME engine, поэтому присутствуют в GTA3, GTA VC, GTA SA и GTA4 в текстовом виде, в GTA LCS и GTA VCS в бинарном и в Billy: Scholarship Edition в текстовом и бинарном. В ide, к каждому объекту игры присваивается свой идентификатор (тэг), измеряющийся от 0 до 19999 (лимит ID можно уменьшать/увеличивать с помощью программы Limit Adjuster). В GTA4 - ID не используются (вместо них напрямую используется имена объектов, которые хэшируются в игровой памяти).
В свою очередь, к каждому идентификатору, прописанному в ide, присваивается уникальная модель (*.dff), архив текстур (*.txd), использующийся моделью, дистанция и параметры рендеринга модели.
Все записи в IDE объединены в специальные секции, каждая из которых отвечает за определенный параметр. Примеры секций:
OBJectS - обычные объекты карты, TimeOBJects - временные объекты карты, ANIM - анимированные объекты карты, PEDS - педы, WEAPons - оружие, CARS - транспортные средства, HIER - загрузочные слоты для кат-сцен, 2DFX - специальный 2D-эффект для объекта (более подробно о секциях IDE читай ниже).
Item Definition (кроме GTA LCS и GTA VCS) хранится в текстовом виде, может быть изменён как редакторами карты для GTA - MooMaper, MapEditor, так и любым текстовым редактором типа блокнота.
В IDE можно встретить специальные символы - "#" или ";", после которых идёт закомментированный текст - это либо комментарии разработчиков, либо закомментированные части ide, по определённым причинам убранные из загрузки игры. Любой текст, записанный после знака коментария до конца строки, игнорируется GTAGAME engine.
Структура
Файлы .ide разделены на секции. Они могут быть не обязательны, или даже могут быть пустыми. Каждая секция начинается с идентификатора секции и заканчивется ключевым словом end. Строка секции разделяется запятыми, между которыми записаны значения каждой ячейки строки. Каждая ячейка может содержать либо целое или дробное число, либо одно слово.
Пример:
objs ... end
OBJS
Обычные объекты карты.
Версия GTA | Код строки |
---|---|
16px | ModelId, ModelName, TexDictName, ObjectCount, DrawDist [,DrawDist2, ... ], Flags (, 0, 1, 0, 255, 0, 0, 0) |
ModelId, ModelName, TexDictName, DrawDist, Flags | |
0[4],0[4], hashname[4], ObjectCount+1[4], Flags-1[4], Clump.offset[4]->(Clump.Pos.X[4], Clump.Pos.Y[4], Clump.Pos.Z[4], Clump.BoundSphereRadius[4], Clump.AABB.Min.X[4], Clump.AABB.Min.Y[4], Clump.AABB.Min.Z[4], 0[4], Clump.AABB.Max.X[4], Clump.AABB.Max.Y[4], Clump.AABB.Max.Z[4], 0[4], flag1[2], flag2[2], 0[4], MetkaExit[4], 0[4], 0[4], Clump2.offset[4]->(Clump.AABB.Min.X[4], Clump.AABB.Min.Y[4], Clump.AABB.Min.Z[4], 0[4], Clump.AABB.Max.X[4], Clump.AABB.Max.Y[4], Clump.AABB.Max.Z[4], 0[4], unknow[2], Exit ) Exit), RGBA[4], TextureID[4], SectionID[4], 0[4], DrawDist[4], parametrs[16] | |
ModelName, TexDictName, DrawDist, Flags [, FlagsAdd, AABB.Min.X, AABB.Min.Y, AABB.Min.Z, AABB.Max.X, AABB.Max.Y, AABB.Max.Z, BoundSphereCenter.X, BoundSphereCenter.Y, BoundSphereCenter.Z, BoundSphereRadius, WddName] |
- 16px ModelId
- DWORD
- Уникальный идентификатор модели - целое число.
- 16px ModelName
- string[24]
- Название модели (в большинстве случаев - имя соответствующего .wdr- или .wft-файла для GTA4, dff-файла для GTA3, GTA VC и GTA SA (без расширения)).
- 16px TexDictName
- string[24]
- Название архива с текстурами (имя соответствующего wtd-файла для GTA4, txd-файла для GTA3, GTA VC и GTA SA (без разширения), NULL в случае отсутствия текстур на модели).
- 16px ObjectCount
- DWORD
- Количество объектов в dff, отображающихся отдельно друг от друга
- 16px DrawDist
- float
- Дистанция прорисовки объекта на карте относительно координат экрана.
- 16px Flags
- DWORD
- Специальные параметры отображения объекта, значение по умолчанию '0'.
- FlagsAdd
- DWORD
- Дополнительные параметры объекта, значение по умолчанию '0'.
- AABB.Min.X, AABB.Min.Y, AABB.Min.Z
- float[3]
- Минимальная угловая точка Min AABB-коробки.
- AABB.Max.X, AABB.Max.Y, AABB.Max.Z
- float[3]
- Максимальная угловая точка Max AABB-коробки.
- BoundSphereCenter.X, BoundSphereCenter.Y, BoundSphereCenter.Z
- float[3]
- Центр ограничивающей сферы.
- BoundingSphereRadius
- float
- Радиус ограничивающей сферы.
- WddName
- string[24]
- Название архива моделей (wdd-файла) в котором находится модель. Если модель располагается в .wdr- или .wft-файле, то текущий параметр имеет значение 'null'.
- hashname
- hex[4]
- Хешированное имя игрового объекта по CRC-алгоритму.
- TextureID
- DWORD[4]
- Уникальный идентификатор текстуры - целое число.
- 16px 0, 1, 0, 255, 0, 0, 0
- float[7]
- Дополнительная часть строки OBJ и TOBJ, присутствует только в Billy: Scholarship Edition
Флаги Объектов
Флаги объектов в GTA3, GTA VC, GTA SA и GTA4 - UInt32-Значения (Впрочем как и все другие флаги). Чтобы лучше их понять нужно представить их в двоичном виде. Вы получите битовые маски флагов. 1 означает, что параметр используется для данной модели, 0 - игнорируется
Вот список известных флагов:
0000000000000000000000000000001 = 1 - Значения прилайта делятся пополам (модель становится темнее) 0000000000000000000000000000010 = 2 - Ночной Флаг (используется на магалодах для их осветления вдалеке от игрока) 0000000000000000000000000000100 = 4 - Более точный просчёт альфа-канала (помогает избавиться от артефактов) 0000000000000000000000000001000 = 8 - Ещё более точный просчёт альфа-канала (соответственно, падает fps) * 0000000000000000000000000010000 = 16 - Дневной Флаг (используется под землёй для их затемнения вдалеке от игрока) 0000000000000000000000000100000 = 32 - Фильтр рендеринга для интерьеров ** 0000000000000000000000001000000 = 64 - Игнорирование прорисовки теней на объекте (?) 0000000000000000000000010000000 = 128 - Игнорирование свойств куллинга при попадании модели в её зону (?) 0000000000000000000000100000000 = 256 - Игнорирование дистанции прорисовки (?) 0000000000000000000001000000000 = 512 - Объект (стекло) при ударе разбивается ** 0000000000000000000010000000000 = 1024 - Объект (стекло) при ударе трескается, при повторном ударе разбивается ** 0000000000000000000100000000000 = 2048 - Дверь для гаража ** 0000000000000000001000000000000 = 4096 - Обьект использует 2 модели (например штатная и повреждённая) ** 0000000000000000010000000000000 = 8192 - Малая растительность, объект пошатывается при сильном ветре 0000000000000000100000000000000 = 16384 - Стандартная растительность ** (Пальмы в Готелях, т.д.) (?) 0000000000000001000000000000000 = 32768 - Использовать Timecycle PoleShadow флаг 0000000000000010000000000000000 = 65536 - Флаг взрыва ** 0000000000000100000000000000000 = 131072 - Неизвестно (Seems to be an SCM Flag) (?) 0000000000001000000000000000000 = 262144 - Неизвестный (Возможно используется в одном из объектов в Jizzy Club) (?) 0000000000010000000000000000000 = 524288 - Неизвестно (?) 0000000000100000000000000000000 = 1048576 - Флаг граффити 0000000001000000000000000000000 = 2097152 - Двухсторонный рендеринг треугольников модели 0000000010000000000000000000000 = 4194304 - Неизвестно (Часть статуи в Atrium) (?) ... 1000000000000000000000000000000 = 1073741824 - Неизвестно
* Если не в Интерьере, текстура позади объекта становится черной (= IPL | Interior-value) ** Объект должен быть прописан в Object.dat (?) Не известен на 100% ! Все флаги = 2^n, n є Z
Чтобы использовать несколько флагов, нужно указать их сумму, например:
01 + 10 = 11 1 + 2 = 3
TOBJ
Временные Объекты Карты, используется для определения объектов карты, которые видны только в определенное время суток. Например свет от окон.
Формат GTA III, VC и SA:
ID, ModelName, TextureName, ObjectCount, DrawDist, [DrawDist2, ...], Flags, TimeOn, TimeOff
- ID, ModelName, TextureName, ObjectCount, DrawDist, Flags
- аналогично секции OBJS
- TimeOn
- время активации в часах (целое)
- TimeOff
- время деактивации в часах (целое)
Формат GTA 4:
- ModelName, TextureName, DrawDist, Flag1, Flag2, AABB.Min, AABB.Max, BoundingSphereCenter, BoundingSphereRadius, ModelsDictionary, NightFlag
- ModelName, TextureName, DrawDist,Flag1,2, AABB.Min, AABB.Max, BSC, BSR, ModelsDictionary
- Аналогично секции OBJS(формата gta 4)
- NightFlag
- Ночной флаг
ANIM
Анимированые Объекты Карты, используются для объектов, под-объекты которых анимированы.
Примечание: Модель повреждений в анимации не участвует.
формат GTA SA:
ID, ModelName, TextureName, AnimName, DrawDist, Flags
- ID, ModelName, TextureName, DrawDist, Flags
- аналогично секции OBJS
- AnimName
- название .ifp-файла - архива анимаций, без раcширения (строка)
формат GTA 4:
ModelName, TextureName, AnimName, DrawDist, Flags1, Flags2, AABB.Min, AABB.Max, BoundingSphereCenter, BoundingSphereRadius, ModelsDictionary
- !Эти параметры информированы в секции OBJS.
PEDS
Формат GTA III и VC:
ID, ModelName, TextureName, PedType, PedStats, Animation, CarsCanDriveMask (in hex), animFile, radio1, radio2
Формат LCS и VCS:
0[4],0[4], hashname[4], 0[4], ObjectCount[4], unknowsection_offset[4], -1[4], ID[4], flags[4], 0[4], -1[4], pedparametrs[16], 2570[4].
WEAP
Формат GTA III и VC:
ID, ModelName, TextureName, Animation, unused, DrawDistance, unused
- Animation
- Значения берутся из файла ped.ifp, тип анимации при использовании оружия.
Формат LCS и VCS:
0[4],0[4], hashname[4], 0[4], ObjectCount[4], unknowsection_offset[4], -1[2], unknowID[2], ID[4], flags[4], 0[4], 16968[4], 0[4], 0[4], 65281[4], weaponslotID[4], weapontype[4].
CARS
Формат GTA III и VC:
ID, ModelName, TextureName, Type, HandlingID, GXTEntry, PedDrivingAnimation, Class, Frequency, Level, SpecificType, WheelID, WheelSize
- HandlingID
- Значения берутся из handling.cfg
- PedDrivingAnimation
- из ped.ifp, тип анимации входа, выхода, вождения транспортного средства
- WheelID
- Идентификатор колеса. Недоступен для типа boat(катера)
- WheelSize
- Размер колеса. недоступен для типа boat(катера)
Формат LCS и VCS:
0[4],0[4], hashname[4], 0[4], ObjectCount[4], unknowsection_offset[4], -1[4], ID[4], flags[4], 0[4], -1[4], gamename[16], wheelsize[4], comprules...
PATH
В Grand Theft Auto III, система путей используется только в IDE файлах. Пути расположены по центру объекта. Точки дают направление пешеходам и автомобилям.
Лимит количества строк в одном блоке - 12. Если добавить 13, то игра зависнет.
Формат GTA III - первая секция:
Path Type, ID, Object Name
- Path Type - Тип пути для первой секций. Всего существует два типа - ped и car.
- ID - Идентификатор объекта
- ObjectName - Имя объекта, которому присвоен ID
Формат GTA III - вторая секция:
Node Type, Link To, Unkn1, X, Y, Z, Unkn2, Lanes1, Lanes2
- Node Type - Типы точки. Всего 3 типа - None, Middle и End.
- Joins to Next Node -
- Unkn1 -
- Unkn2 -
- Lanes1 -
- Lanes2 -
HIER
Формат GTA III и VC
ID, ModelName, TextureName
Формат SA
ID, ModelName, TextureName, null, DrawDistance
TXDP
TXDP(Texture Archive Parent) - Одна из секции в IDE файле. Она используется для указания имя текстуры вне архива, где хранятся часто используемые текстуры на карте.
Структура
|
|
| |
---|---|---|---|
|
|
string | Имя .txd/.wtd child текстуры.
|
|
|
string | Имя .txd/.wtd родителя текстуры.
|
Пример использования данной секции:
txdp my_child_texture,my_parent_texture end
2DFX
2DFX используется для расстановки 2D эффектов (например: свет) и поведение педов на объектах. Если игра загружает слишком много эффектов в этой секции, то возможны некоторые артефакты, а точнее некоторые эффекты могут не появиться вообще или долго будут загружаться.
GTA III & Vice City
Type 0: Lights
Создаёт источник света на объект.
Типы вспышек
0 | Горит всё время |
1 | Горит всю ночь |
2 | Мерцает всё время |
3 | Мерцает всю ночь |
4 | Вспышка за одну секунду |
5 | Вспышка за одну секунду (только ночью) |
6 | Вспышка за две секунды |
7 | Вспышка за две секунды (только ночью) |
8 | Вспышка за три секунды |
9 | Вспышка за три секунды (только ночью) |
10 | Случайные мерцания |
11 | Случайные мерцания ночью |
12 | Параметры светофора |
Тип 12 вовлечён в свойства светофора. Он в основном используется для позиционирования света у светофора. Светофор без 2DFX может привести игру к вылету.
Type 1: Particles
Этим типом 2dfx можно создать эффект частиц на модели.
Идентификатор | Тип | Описание | |
---|---|---|---|
|
|
integer | ID объекта в секций OBJS или TOBJ |
|
|
float[3] | Позиция эффекта |
|
|
integer[3] | Цвет эффекта |
|
|
integer | Неизвестный параметр. Обычно используется значение 63 или 200 |
|
|
integer | Для Particle(частицы) всегда используется значение 1 |
|
|
integer | Типы частиц (см. ниже) |
|
|
float[3] | Неизвестно, предположительно это поворот модели частицы |
|
|
float | Размер частицы |
Типы частиц
|
Небольшой белый дым | |
|
Небольшой белый дым | |
|
Большой белый дым | |
|
Огонь | |
|
Чёрный дым | |
|
|
Фонтан |
|
|
Брызги воды |
Type 2: Unknown
Для чего используется этот тип - неизвестно. Используется в GTA III, но возможно работает и для GTA VC. Нажмите сюда, чтобы посмотреть расположения объектов этого типа на карте GTA III.
Type 3: Peds
Тип назначает некоторые действия педу на заданном объекте.
Идентификация | Тип | Описание | |
---|---|---|---|
|
|
integer | ID объекта в секций OBJS или TOBJ |
|
|
float[3] | X, Y, и Z координаты, центр расположения объекта |
|
|
integer[3] | Цвета |
|
|
integer | Неизвестно, всегда 0 или 200 |
|
|
integer | всегда 3 для PEDS |
|
|
integer | Тип поведения (см. ниже) |
|
|
float[3] | Неизвестно (игнорируются?) |
|
|
float[3] | Поворот педа во время проигрывания его анимации |
Типы поведения
0 | Пользование банкоматом |
1 | Сесть на некоторое время, отойти в сторону и уйти |
2 | Ожидание автобуса; дополнительные пешеходы будут выстраиваться друг за другом |
3 | Постоять некоторое время и уйти (например - поведение в магазине) |
4 | Неизвестно |
GTA: San Andreas
В данной серий игры, 2dfx используется внутри .dff модели. Подробнее об этом написано в статье - 2DFX (Секция RW)
Ссылки
- Описание IDE в GTA VC – топик ODIE на форуме GTAForums.соm, детали IDE-файлов в GTA VC.
- Документация GTA3/VC – топик Opius на форуме GTAForums.соm, описание IDE- и прочих файлов III/VC.