DFF — различия между версиями
Материал из GTAModding.ru
DK22 (обсуждение | вклад) (→Содержимое DFF) |
|||
Строка 76: | Строка 76: | ||
=== Содержимое DFF === | === Содержимое DFF === | ||
− | * [[Clump (RW | + | * [[Clump (Секция RW)|Clump]] |
− | ** [[Struct (RW | + | ** [[Struct (Секция RW)#Clump|Struct]] |
− | ** [[Frame List (RW | + | ** [[Frame List (Секция RW)|Frame List]] |
− | *** [[Struct (RW | + | *** [[Struct (Секция RW)#Frame_List|Struct]] |
− | *** [[Extension (RW | + | *** [[Extension (Секция RW)|Extension]] * |
− | **** [[Frame (RW | + | **** [[Frame (Секция RW)|Frame]] |
− | **** [[HAnim PLG (RW | + | **** [[HAnim PLG (Секция RW)|HAnim PLG]] |
− | ** [[Geometry List (RW | + | ** [[Geometry List (Секция RW)|Geometry List]] |
− | *** [[Struct (RW | + | *** [[Struct (Секция RW)#Geometry_List|Struct]] |
− | *** [[Geometry (RW | + | *** [[Geometry (Секция RW)|Geometry]] * |
− | **** [[Struct (RW | + | **** [[Struct (Секция RW)#Geometry|Struct]] |
− | **** [[Material List (RW | + | **** [[Material List (Секция RW)|Material List]] |
− | ***** [[Struct (RW | + | ***** [[Struct (Секция RW)#Material_List|Struct]] |
− | ***** [[Material (RW | + | ***** [[Material (Секция RW)|Material]] * |
− | ****** [[Struct (RW | + | ****** [[Struct (Секция RW)#Material|Struct]] |
− | ****** [[Texture (RW | + | ****** [[Texture (Секция RW)|Texture]] - optional |
− | ******* [[Struct (RW | + | ******* [[Struct (Секция RW)#Texture|Struct]] |
− | ******* [[String (RW | + | ******* [[String (Секция RW)|String]] |
− | ******* [[String (RW | + | ******* [[String (Секция RW)|String]] |
− | ******* [[Extension (RW | + | ******* [[Extension (Секция RW)|Extension]] |
− | ******** [[Sky Mipmap Val (RW | + | ******** [[Sky Mipmap Val (Секция RW)|Sky Mipmap Val]] ** |
− | ****** [[Extension (RW | + | ****** [[Extension (Секция RW)|Extension]] |
− | ******* [[Material Effects PLG (RW | + | ******* [[Material Effects PLG (Секция RW)|Material Effects PLG]] - optional |
− | ******** [[Texture (RW | + | ******** [[Texture (Секция RW)|Texture]] - optional |
− | ********* [[Struct (RW | + | ********* [[Struct (Секция RW)#Texture|Struct]] |
− | ********* [[String (RW | + | ********* [[String (Секция RW)|String]] |
− | ********* [[String (RW | + | ********* [[String (Секция RW)|String]] |
− | ********* [[Extension (RW | + | ********* [[Extension (Секция RW)|Extension]] |
− | ********** [[Sky Mipmap Val (RW | + | ********** [[Sky Mipmap Val (Секция RW)|Sky Mipmap Val]] ** |
− | ********* [[Texture (RW | + | ********* [[Texture (Секция RW)|Texture]] - optional |
− | ********** [[Struct (RW | + | ********** [[Struct (Секция RW)#Texture|Struct]] |
− | ********** [[String (RW | + | ********** [[String (Секция RW)|String]] |
− | ********** [[String (RW | + | ********** [[String (Секция RW)|String]] |
− | ********** [[Extension (RW | + | ********** [[Extension (Секция RW)|Extension]] |
− | *********** [[Sky Mipmap Val (RW | + | *********** [[Sky Mipmap Val (Секция RW)|Sky Mipmap Val]] ** |
− | ******* [[Reflection Material (RW | + | ******* [[Reflection Material (Секция RW)|Reflection Material]] - optional |
− | ******* [[Specular Material (RW | + | ******* [[Specular Material (Секция RW)|Specular Material]] - optional |
− | ******* [[UV Animation PLG (RW | + | ******* [[UV Animation PLG (Секция RW)|UV Animation PLG]] - optional |
− | **** [[Extension (RW | + | **** [[Extension (Секция RW)|Extension]] |
− | ***** [[Bin Mesh PLG (RW | + | ***** [[Bin Mesh PLG (Секция RW)|Bin Mesh PLG]] |
− | ***** [[Native Data PLG (RW | + | ***** [[Native Data PLG (Секция RW)|Native Data PLG]] (Xbox и PS2) |
− | ****** [[Struct (RW | + | ****** [[Struct (Секция RW)#Native Data PLG|Struct]] |
− | ***** [[Skin PLG (RW | + | ***** [[Skin PLG (Секция RW)|Skin PLG]] |
− | ***** [[Mesh Extension (RW | + | ***** [[Mesh Extension (Секция RW)|Mesh Extension]] - optional |
− | ***** [[Night Vertex Colors (RW | + | ***** [[Night Vertex Colors (Секция RW)|Night Vertex Colors]] - optional |
− | ***** [[Morph PLG (RW | + | ***** [[Morph PLG (Секция RW)|Morph PLG]] |
− | ***** [[2dfx (RW | + | ***** [[2dfx (Секция RW)|2dfx]] - optional |
− | ** [[Atomic (RW | + | ** [[Atomic (Секция RW)|Atomic]] * |
− | *** [[Struct (RW | + | *** [[Struct (Секция RW)#Atomic|Struct]] |
− | *** [[Extension (RW | + | *** [[Extension (Секция RW)|Extension]] |
− | **** [[Right To Render (RW | + | **** [[Right To Render (Секция RW)|Right To Render]] - optional |
− | **** [[Particles PLG (RW | + | **** [[Particles PLG (Секция RW)|Particles PLG]] - optional |
− | **** [[Material Effects PLG (RW | + | **** [[Material Effects PLG (Секция RW)|Material Effects PLG]] - optional |
− | **** [[Pipeline Set (RW | + | **** [[Pipeline Set (Секция RW)|Pipeline Set]] - optional |
− | ** [[Extension (RW | + | ** [[Extension (Секция RW)|Extension]] |
− | *** [[Collision Model (RW | + | *** [[Collision Model (Секция RW)|Collision Model]] (Только для транспорта) |
''* Эти разделы (и их дочерние разделы) могут повторятся несколько раз. | ''* Эти разделы (и их дочерние разделы) могут повторятся несколько раз. | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
==Ссылки== | ==Ссылки== |
Версия 07:53, 30 апреля 2013
Эта статья требует полного или частичного перевода. Часть этой статьи написана на иностранном языке. Если вы знаете его, пожалуйста, помогите с ее переводом на русский язык. |
DFF – формат, использующийся Rockstar Games для хранения трёхмерных игровых моделей в таких играх как GTA 3, GTA: Vice City, GTA: San Andreas. Является кроссплатформенным форматом.
Содержание |
Основные данные
Все трёхмерные модели в GTA третьей серии закодированы в виде бинарных потоков - RenderWare binary stream file, специализированных для движка RenderWare, используемого в игре. Все бинарные потоки с моделями имеют расширение DFF (для коллекции разнообразных моделей - генерика, персонажей, оружия, автомобилей и т.д.) или BSP (для хранения одного игрового уровня). Для просмотра и редактирования иерархии потоков DFF и BSP существует программа RW Analyze от Steve M. Для импорта/экспорта DFF в 3D Studio MAX пользуются GTA Tools (скрипты КАМа) или SA Tools (скрипты Дениски). Импорт/экспорт DFF в Zanoza Modeler присутствует в версиях начиная с 1.06.
Структура
В узлах иерархии бинарных потоков DFF расположены секции, в которых закодированы различные данные трёхмерных объектов - основные и дополнительные. В DFF можно найти секции, специфичные для RenderWare и не специфичные, написанные программистами RockStar Games специально под определённую игру и расширяющие её возможности по сравнению со стандартным RenderWare (Pipeline Set, Specular Material, 2dfx, Night Vertex Colors, Collision Model, Reflection Material, Mesh Extension, Frame).
Каждая секция имеет заголовок, по которой можно её идентифицировать:
* (Заголовок секции) 4 bytes - int - Идентификатор секции 4 bytes - int - Размер секции 4 bytes - hex - Версия DFF * (Данные секции) [Размер секции] bytes - data - данные внутри секции
Идентификатор секции определяет, как данные должны быть обработаны. Например если идентификатор секции = rwDATA, rwSTRING, rwFRAME или rwMATERIALSPLIT, то для анализа секции нужно спуститься на один уровень вниз по иерархии - в данные, где расположены другие секции, как например здесь:
*(Заголовок секции) 4 bytes - int - rwCLUMP 4 bytes - int - 48 2 bytes - int - Unknown 2 bytes - int - 4099 *(Данные секции) (Заголовок секции) 4 bytes - int - rwDATA 4 bytes - int - 8 2 bytes - int - Unknown 2 bytes - int - 4099 (Данные секции) 4 bytes - int - Some Number 4 bytes - int - Some Number
(Заголовок секции) 4 bytes - int - rwSTRING 4 bytes - int - 16 2 bytes - int - Unknown 2 bytes - int - 4099 (Данные секции) 16 bytes - string - Data
Список таких идентификаторов, определяющих иерархию компонентов DFF:
1 = rwDATA 2 = rwSTRING 3 = rwEXTENSION 6 = rwTEXTURE 7 = rwMATERIAL 8 = rwMATERIALLIST 14 = rwFRAMELIST 15 = rwGEOMETRY 16 = rwCLUMP 20 = rwATOMIC 26 = rwGEOMETRYLIST 1294 = rwMATERIALSPLIT 39056126 = rwFRAME
Полный список идентификаторов можно найти в отдельной статье: list of RW section IDs
По имени секции можно догадаться, что в ней хранится (например rwGEOMETRY -> rwDATA содержит все вершины, нормали трёхмерных объектов, в то время как rwGEOMETRYLIST -> rwDATA содержит число и имена геометрических объектов).
Версии DFF
В заголовке секции можно найти закодированные номера версий RenderWare, под которую скомпелирован DFF:
3.0.0.0 - 0x00000310 - только для мульти-dff и генерика, остатки от ранних версий GTA III. 3.2.0.0 - 0x0800FFFF - GTA III PS2 и PC версий 3.3.0.2 - 0x0C02FFFF - GTA VC 3.4.0.3 - 0x1003FFFF - GTA III и GTA VC X-BOX версий 3.5.0.0 - 0x1400FFFF - GTA III Android версий 3.6.0.3 - 0x1803FFFF - GTA SA
Содержимое DFF
- Clump
- Struct
- Frame List
- Geometry List
- Struct
- Geometry *
- Struct
- Material List
- Struct
- Material *
- Struct
- Texture - optional
- Extension
- Material Effects PLG - optional
- Reflection Material - optional
- Specular Material - optional
- UV Animation PLG - optional
- Extension
- Bin Mesh PLG
- Native Data PLG (Xbox и PS2)
- Skin PLG
- Mesh Extension - optional
- Night Vertex Colors - optional
- Morph PLG
- 2dfx - optional
- Atomic *
- Struct
- Extension
- Right To Render - optional
- Particles PLG - optional
- Material Effects PLG - optional
- Pipeline Set - optional
- Extension
- Collision Model (Только для транспорта)
* Эти разделы (и их дочерние разделы) могут повторятся несколько раз.