A3D — различия между версиями
Материал из GTAModding.ru
Solom (обсуждение | вклад) (→Структура) |
|||
Строка 65: | Строка 65: | ||
ClassName "Gta Collision" //название класса (объект либо коллизия) | ClassName "Gta Collision" //название класса (объект либо коллизия) | ||
int "Surface Type" 11 //тип поверхности меша (трава, песок и т.д.) | int "Surface Type" 11 //тип поверхности меша (трава, песок и т.д.) | ||
− | int "Piece Type" 0 // | + | int "Piece Type" 0 //неизвестно |
+ | } | ||
} | } | ||
} | } | ||
Строка 75: | Строка 76: | ||
ClassName "Gta Collision" //название класса (объект либо коллизия) | ClassName "Gta Collision" //название класса (объект либо коллизия) | ||
int "Surface Type" 11 //тип поверхности бокса (трава, песок и т.д.) | int "Surface Type" 11 //тип поверхности бокса (трава, песок и т.д.) | ||
− | int "Piece Type" 0 // | + | int "Piece Type" 0 //неизвестно |
+ | } | ||
} | } | ||
} | } | ||
Строка 85: | Строка 87: | ||
ClassName "Gta Collision" //название класса (объект либо коллизия) | ClassName "Gta Collision" //название класса (объект либо коллизия) | ||
int "Surface Type" 11 //тип поверхности сферы (трава, песок и т.д.) | int "Surface Type" 11 //тип поверхности сферы (трава, песок и т.д.) | ||
− | int "Piece Type" 0 // | + | int "Piece Type" 0 //неизвестно |
} | } | ||
} | } |
Версия 14:27, 19 июня 2012
.a3d - многокомпонентный формат, являющийся исходником к IDE, IPL и COL файлам GTA третьей эры. Игрой формат не используется, т.к. является промежуточным на стадии компиляции.
Структура
Представляет собой описание неоткомпилированных данных на языке близкого к MaxScript, дополняющих игровую модель в dff-файле. Для удобства чтения, с подсветкой синтаксиса, a3d можно открыть 3D Studio MAX в качестве скрипта (опция MaxScript->Открыть скрипт).
В начале файла традиционно расположен комментарий разработчиков, а именно:
- Filename - путь к a3d-файлу и его имя в исходниках GTA3;
- Max file - путь к max-файлу и его имя в исходниках GTA3, к которому относится a3d-файл;
- Written by - имя автора, создавшего a3d-файл (в данном случае один из сотрудников DMA Designe);
- Date & Time - дата и время компиляции файла (в GTA3 равно времени последней компиляции PC-версии игры).
Комментарий соответственно закомментирован (начинается с символа решётки), поэтому игнорируется при дальнейшей компиляции из него IDE, IPL и COL файлов.
Далее, идёт собственно структура, которая разделяется на компоненты, компоненты ветвятся на составляющие:
Component { Name name_l0 //внутреннее имя модели в dff Parent ROOT //родитель (всегда ROOT) Sibling name_next_L0 //имя внутренней модели следующего компонента Child NULL //наследник (всегда NULL) XForm { //исходник [[IPL]] Position PosX, PosY, PosZ //параметры "PosX, PosY, PosZ" из описания к [[IPL]] Quaternion RotX, RotY, RotZ, RotW //параметры "RotX, RotY, RotZ, RotW" из описания к [[IPL]] Scale 1, 1, 1 //параметры "1, 1, 1" из описания к [[IPL]] } BoundBox { //параметры ограничивающей коробки объекта (Bounding Box'а) Position PosX, PosY, PosZ //координаты центра коробки (Bounding Box'а) Size SizeX, SizeY, SizeZ //координаты размеров коробки (Bounding Box'а) } BoundSphere { //параметры ограничивающей сферы (Bounding Sphere) Position PosX, PosY, PosZ //координаты центра ограничивающей сферы (Bounding Sphere) Radius BoundingSphereRadius //значение радиуса ограничивающей сферы (Bounding Sphere) } Attributes { //атрибуты объекта ClassName "Gta Object" //название класса (объект либо коллизия) bool "Is time object" 0 //логическая переменная, 0 - объект не принадлежит секции tobj в [[IDE]] int "Time on" 0 //целое число, начало рендеринга по внутри игровому времени int "Time off" 23 //целое число, окончание рендеринга по тому же времени float "LOD distance" 300.000000 //дробь, дальность рендеринга объекта bool "Normal cull" 0 //логическая переменная, см. Флаги Объектов в [[IDE]] string TXD TexDictName //строка, имя TXD-архива, хранящего текстуры для объекта bool "Do not fade" 0 //логическая переменная, см. Флаги Объектов в [[IDE]] bool "Draw last" 0 //логическая переменная, см. Флаги Объектов в [[IDE]] bool Additive 0 //логическая переменная, см. Флаги Объектов в [[IDE]] bool "Is Subway" 0 //логическая переменная, см. Флаги Объектов в [[IDE]] bool "Ignore Lighting" 0 //логическая переменная, см. Флаги Объектов в [[IDE]] bool "No Zbuffer write" 0 //логическая переменная, см. Флаги Объектов в [[IDE]] } ColMesh { //исходник меша в [[COL]] Name Collision_Mesh //имя пустышки в [[DFF]], к которому крепится меш Position PosX, PosY, PosZ //координатки центра меша в коллизии VertexArray { //собственно массив вершинок в меше Number i //количество вершинок в меше Vertex PosX, PosY, PosZ //координатки 1 вершинки относительно центра меша ... } FaceArray { //собственно массив фейсов Number j //количество фейсов в меше Face 0, 1, 2 //номерочки вертексов, из которых формируется фейс ... } Attributes { //атрибуты меша ClassName "Gta Collision" //название класса (объект либо коллизия) int "Surface Type" 11 //тип поверхности меша (трава, песок и т.д.) int "Piece Type" 0 //неизвестно } } } ColBox { //исходник бокса в [[COL]] Name colbox //имя пустышки в [[DFF]], к которому крепится бокс Position PosX, PosY, PosZ //координатки центра бокса в коллизии Size SizeX, SizeY, SizeZ //координаты размеров бокса в коллизии Attributes { //атрибуты бокса ClassName "Gta Collision" //название класса (объект либо коллизия) int "Surface Type" 11 //тип поверхности бокса (трава, песок и т.д.) int "Piece Type" 0 //неизвестно } } } ColSphere { //исходник сферы в [[COL]] Name "ColSph" //имя пустышки в [[DFF]], к которому крепится сфера Position PosX, PosY, PosZ //координатки центра сферы в коллизии Radius SphereRadius //значение радиуса сферы в коллизии Attributes { //атрибуты сферы ClassName "Gta Collision" //название класса (объект либо коллизия) int "Surface Type" 11 //тип поверхности сферы (трава, песок и т.д.) int "Piece Type" 0 //неизвестно } } }
Примечание: комментарии к структуре (как и сама статья в целом) написаны Херомантом007, поэтому что-то может не совпадать с правильным оригинальным описанием в технической документации к GTA3.