A3D — различия между версиями

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

Версия 13:25, 10 сентября 2012

A3D - многокомпонентный формат, являющийся исходником к IDE-, IPL- и COL-файлам GTA третьей эры. Игрой формат не используется, т.к. является промежуточным на стадии компиляции.

Структура

Представляет собой описание неоткомпилированных данных на языке, близком к MaxScript, дополняющее игровую модель в DFF-файле. Для удобства чтения (с подсветкой синтаксиса) A3D можно открыть 3D Studio MAX в качестве скрипта.

В начале файла расположен комментарий разработчиков, а именно:

  • Filename - путь к A3D-файлу и его имя в исходниках GTA III;
  • Max file - путь к MAX-файлу и его имя в исходниках GTA III;
  • Written by - имя автора, создавшего A3D-файл;
  • Date & Time - дата и время компиляции файла (в GTA III равно времени последней компиляции PC-версии игры).

Далее идёт структура, которая разделяется на компоненты; компоненты делятся на составляющие:

Component {
    Name	name_l0                        //Внутреннее имя DFF-модели.
    Parent	ROOT                           //Родитель (всегда ROOT).
    Sibling	name_next_L0                   //Имя 3D-модели следующего компонента.
    Child	NULL                           //Наследник (всегда NULL).
    XForm {                                    //Исходник [[IPL]]-файла.
        Position	PosX, PosY, PosZ       //Позиция объекта на игровой карте.
        Quaternion	RotX, RotY, RotZ, RotW //Угол вращения объекта.
        Scale	1, 1, 1                        //Масштаб объекта.
    }
    BoundBox {                                 //Параметры ограничивающей коробки (Bounding Box).
        Position	PosX, PosY, PosZ       //Координаты центра коробки.
        Size	SizeX, SizeY, SizeZ            //Размеры коробки.
    }
    BoundSphere {                              //Параметры ограничивающей сферы (Bounding Sphere).
        Position	PosX, PosY, PosZ       //Координаты центра сферы.
        Radius	BoundingSphereRadius           //Значение радиуса сферы.
    }
    Attributes {                               //Атрибуты объекта.
        ClassName	"Gta Object"           //Название класса (графическая либо физическая модлеь).
        bool	"Is time object"	0      //Логическая переменная, отвечает за время отображения объекта.
        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 {                                  //Исходник [[физической 3D-модели|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              //Неизвестный параметр.
        }
    }
}

Автор статьи: Участник:XEPOMAHT007, правил Участник:НикИТОС. Мы не работаем в Rockstar Games, поэтому не несём ответственности за содержимое статьи.

п · о · р
GTA III Grand Theft Auto III
Форматы файлов.b.a3d.anm.col.cfg.dff.dat.gxt.ide.ifp.img/.dir.ipl.raw/.sdt.rep.sc.scm.set.txd.zon
Документацияcarcols.datCHASE.DATCULLZONE.DATcuts.imgdefault.datfistfite.datflight.datgta3.exegta3.dat
gta3.imggta3.zonhandling.cfgmain.scmmap.datmap.zonobject.datparticle.cfgped.datpedgrp.dat
pedstats.datsfx.rawsurface.datTimeCyc.DATtracks.dattrain.datwater.datwaterpro.datweapon.dat
ИнструментыCLEOClump ViewerCol-IO‎Collision File Editor IIData toolDFF Viewerdffxbox2pcG-ToolsGTA Garage Mod Manager
GXT EditorGTA3 Limit AdjusterGTA3 Mission BuilderGTA3 PatcherIMG ToolKam's Max ScriptsMap Editor
Mod GeneratorMod InstallerMoo MapperPS2 TXD ModPS2 TXD ViewerResourse HackerRotation Calculator
RW AnalyzeViceTXDWater EditorSanny BuilderTXD ToolTXD WorkshopYAIEZModeler
Туториалыраздел в разработке
Классические МодыGPS RadarBye-Bye BikiniUltimate Stunt ParkThe SphereMiss LibertyIllandoIntercity HighwayShoreside Bridge
Rockstar HeightsLighthouse BridgeBlade FunparkOrbital CityLakeside IslandLiberty PenitentiaryJEM Island
Illando HelixCliff Climbing Mountain
Глобальные МодыReal GTA3Twenty TenSnow CityFrosted WinterUltimateBeta modX-box modBad BusinessGTA3 HDUltra mod
OpenTunnelsBack to the Future
МультиплеерMulti Theft AutoLiberty Unleashed
Исходники4x48ballambulanceasukaasusbcameracar_gencatcopcardebugdemodiablofiretruckfrankgates
genstufhealthhjhoodimportintrojoeykenjiloveluigimayhemmeatpickupsrampagerayrcswitch
taxitoniusjwantedyard