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

Материал из GTAModding.ru
Перейти к: навигация, поиск
(Основные данные)
(Добавлено описание терминов Tri-Strip(с моей картинкой) + Улучшен дизайн.)
Строка 10: Строка 10:
  
 
PC-версия MDL никем не разбиралась. Судя по первому впечатлению, Рокстары усложнили формат, сделав его более похожим на форматы [[RAGE]]. Используется исключительно в [[Manhunt 2]].
 
PC-версия MDL никем не разбиралась. Судя по первому впечатлению, Рокстары усложнили формат, сделав его более похожим на форматы [[RAGE]]. Используется исключительно в [[Manhunt 2]].
 +
 +
{{stub}}
 +
'''MDL''' – условное обозначение формата (не путайте его с другими MDL, содержащимися например в Gothic или Half-Life2), в которых хранятся откомпилированные данные игровых моделей для [[GTA LCS]], [[GTA VCS]] и [[Manhunt 2]]. Формат MDL жёстко привязан к игровой платформе, т.е. не является кроссплатформенным в отличие от [[DFF]], использовавшегося в предыдущих играх серии GTA до покупки [[RenderWare]] фирмой EA Games.
 +
 +
== Основные данные ==
 +
[[Изображение:Lcs J-Fox tool.jpg|200px|thumb|right|Скриншот программы J-Fox'a]]
 +
 +
PSP-версия MDL была разобрана '''J-Fox''', им же написана программа, читающая структуру MDL с рендерингом геометрии, UV-координат с текстурами из [[CHK]]. Как и остальной многочисленный софт для сториесов, программа от J-Fox не была выпущена.
 +
 +
PS2-версия MDL разобрана '''AK-73 aka Alex''', им же написан уникальный скрипт к [[3D Studio MAX]] для загрузки любого MDL PS2-версии (поддерживаются [[GTA LCS]], [[GTA VCS]] и [[Manhunt 2]]). Скрипт поддерживает импорт всех составляющих MDL, присутствует совместимость с [[GTA Tools]] для быстрой конверсии MDL в [[DFF]] (эта версия [[MDL importer]] со всеми исправленными ошибками остаётся закрытой для обычных пользователей, как собственно и остальные программы от LCS Team).
 +
 +
PC-версия MDL никем не разбиралась. Судя по первому впечатлению, Рокстары усложнили формат, сделав его более похожим на форматы [[RAGE]]. Используется исключительно в [[Manhunt 2]].
 +
  
 
== Структура ==
 
== Структура ==
 +
 
Общее для всех MDL - наличие глобального заголовка и заголовка Атомика. Остальные секции MDL строго специфические для каждой из поддерживаемых платформ - PSP, PS2 и PC.
 
Общее для всех MDL - наличие глобального заголовка и заголовка Атомика. Остальные секции MDL строго специфические для каждой из поддерживаемых платформ - PSP, PS2 и PC.
 +
 +
Основные термины:
 +
 +
[[Изображение:Tri-Strip.png|200px|thumb|right|Изображение одного Tri-Strip]]
 +
 +
''Tri-Strips'' (Тристрипсы) - Это серия связанных треугольников и вершин. Специально используется в играх данной серии  для быстрого рендеринга.
 +
 +
''Pre-Light'' - Предварительное освещение модели во время рендеринга модели.
 +
 +
  
 
===Глобальный заголовок===
 
===Глобальный заголовок===
 
''Информация будет добавлена позже...''
 
''Информация будет добавлена позже...''
  
===Атомик===
+
===Atomic===
 
''Информация будет добавлена позже...''
 
''Информация будет добавлена позже...''
  
===Кламп===
+
===Clump===
 
''Информация будет добавлена позже...''
 
''Информация будет добавлена позже...''
  
Строка 43: Строка 67:
 
* Блок 76 - '''UV''' - содержит все координатки UV-маппинга в тристрипсе. Одна координата закодирована 1м байтом, вычисляется делением на 255 и умножением на 2 (иногда умножение на 2 не требуется - импортёр должен проверять получившуюся цифру после деления). Размер блока = заголовок блока (4 байта) + (UV (2 байта) * количество вершин в тристрипсе).
 
* Блок 76 - '''UV''' - содержит все координатки UV-маппинга в тристрипсе. Одна координата закодирована 1м байтом, вычисляется делением на 255 и умножением на 2 (иногда умножение на 2 не требуется - импортёр должен проверять получившуюся цифру после деления). Размер блока = заголовок блока (4 байта) + (UV (2 байта) * количество вершин в тристрипсе).
  
* Блок 6F - '''Прилайт''' - содержит RGBA для предварительного освещения вершинки. Вычисляется по хитрой формуле AK-73. Размер блока = заголовок блока (4 байта) + (RGBA (2 байта) * количество вершин в тристрипсе).
+
* Блок 6F - '''Pre-Light''' - содержит RGBA для предварительного освещения вершинки. Вычисляется по хитрой формуле AK-73. Размер блока = заголовок блока (4 байта) + (RGBA (2 байта) * количество вершин в тристрипсе).
  
* Блок 6Е - '''неизвестно''' - блок, добавленный в MDL в [[Manhunt 2]]. Не разобран. Размер блока = 4 байта * количество вершинок в тристрипсе.
+
* Блок 6Е - '''Неизвестно''' - блок, добавленный в MDL в [[Manhunt 2]]. Не разобран. Размер блока = 4 байта * количество вершинок в тристрипсе.
  
* Блок 6A - '''Нормали''' - содержит все координатки векторов нормалей в трипстрипсе. Одна координата закодирована 1м байтом и вычисляется делением на 127. Размер блока = заголовок блока (4 байта) + (XYZ (3 байта) * количество вершин в тристрипсе).
+
* Блок 6A - '''Normals''' - содержит все координатки векторов нормалей в трипстрипсе. Одна координата закодирована 1м байтом и вычисляется делением на 127. Размер блока = заголовок блока (4 байта) + (XYZ (3 байта) * количество вершин в тристрипсе).
  
* Блок 6С - '''Скининг''' - содержит таблицу весов вершинок для их анимации. Это id косточки (1 байт) + её вес (3 байта). Соответственно, каждая вершинка содержит 4 id (т.е. в анимации она управляется 4 косточками). Размер блока = заголовок блока (4 байта) + ((id_weight (4 байта) * 4) * количество вершин в тристрипсе.
+
* Блок 6С - '''Skin''' - содержит таблицу весов вершинок для их анимации. Это id косточки (1 байт) + её вес (3 байта). Соответственно, каждая вершинка содержит 4 id (т.е. в анимации она управляется 4 косточками). Размер блока = заголовок блока (4 байта) + ((id_weight (4 байта) * 4) * количество вершин в тристрипсе.
  
Чтение следующего тристрипса начинается сразу же за флагом окончания тристрипса - 14000006. Общее количество тристрипсев в модели так же записано в клампе.
+
Чтение следующего тристрипса начинается сразу же за флагом окончания тристрипса - 14000006. Общее количество тристрипсев в модели так же записано в Clump'e.
  
 
====PC (Windows) версия====
 
====PC (Windows) версия====

Версия 18:19, 25 февраля 2012

MDL – условное обозначение формата (не путайте его с другими MDL, содержащимися например в Gothic или Half-Life2), в которых хранятся откомпилированные данные игровых моделей для GTA LCS, GTA VCS и Manhunt 2. Формат MDL жёстко привязан к игровой платформе, т.е. не является кроссплатформенным в отличие от DFF, использовавшегося в предыдущих играх серии GTA до покупки RenderWare фирмой EA Games.

Содержание

Основные данные

Скриншот программы J-Fox'a

PSP-версия MDL была разобрана J-Fox, им же написана программа, читающая структуру MDL с рендерингом геометрии, UV-координат с текстурами из CHK. Как и остальной многочисленный софт для сториесов, программа от J-Fox не была выпущена.

PS2-версия MDL разобрана AK-73 aka Alex, им же написан уникальный скрипт к 3D Studio MAX для загрузки любого MDL PS2-версии (поддерживаются GTA LCS, GTA VCS и Manhunt 2). Скрипт поддерживает импорт всех составляющих MDL, присутствует совместимость с GTA Tools для быстрой конверсии MDL в DFF (эта версия MDL importer со всеми исправленными ошибками остаётся закрытой для обычных пользователей, как собственно и остальные программы от LCS Team).

PC-версия MDL никем не разбиралась. Судя по первому впечатлению, Рокстары усложнили формат, сделав его более похожим на форматы RAGE. Используется исключительно в Manhunt 2.

MDL – условное обозначение формата (не путайте его с другими MDL, содержащимися например в Gothic или Half-Life2), в которых хранятся откомпилированные данные игровых моделей для GTA LCS, GTA VCS и Manhunt 2. Формат MDL жёстко привязан к игровой платформе, т.е. не является кроссплатформенным в отличие от DFF, использовавшегося в предыдущих играх серии GTA до покупки RenderWare фирмой EA Games.

Основные данные

Скриншот программы J-Fox'a

PSP-версия MDL была разобрана J-Fox, им же написана программа, читающая структуру MDL с рендерингом геометрии, UV-координат с текстурами из CHK. Как и остальной многочисленный софт для сториесов, программа от J-Fox не была выпущена.

PS2-версия MDL разобрана AK-73 aka Alex, им же написан уникальный скрипт к 3D Studio MAX для загрузки любого MDL PS2-версии (поддерживаются GTA LCS, GTA VCS и Manhunt 2). Скрипт поддерживает импорт всех составляющих MDL, присутствует совместимость с GTA Tools для быстрой конверсии MDL в DFF (эта версия MDL importer со всеми исправленными ошибками остаётся закрытой для обычных пользователей, как собственно и остальные программы от LCS Team).

PC-версия MDL никем не разбиралась. Судя по первому впечатлению, Рокстары усложнили формат, сделав его более похожим на форматы RAGE. Используется исключительно в Manhunt 2.


Структура

Общее для всех MDL - наличие глобального заголовка и заголовка Атомика. Остальные секции MDL строго специфические для каждой из поддерживаемых платформ - PSP, PS2 и PC.

Основные термины:

Изображение одного Tri-Strip

Tri-Strips (Тристрипсы) - Это серия связанных треугольников и вершин. Специально используется в играх данной серии для быстрого рендеринга.

Pre-Light - Предварительное освещение модели во время рендеринга модели.


Глобальный заголовок

Информация будет добавлена позже...

Atomic

Информация будет добавлена позже...

Clump

Информация будет добавлена позже...

Список материалов

Информация будет добавлена позже...

Список геометрии

PSP-версия

Информация будет добавлена позже...

PS2-версия

Вся геометрия модели разбита на тристрипсы (поддержка тристрипсев присутствует и в DFF начиная и заканчивая GTA SA).

Чтение первого тристрипса в MDL начинается сразу после списка материалов. Началом чтения геометрии тристрипса служит флаг 6С018000. За флагом 2 раза повторяется количество вершин в тристрипсе. Затем идёт технический сектор 40404020, который необходим для движка (для импорта модели он не важен).

Далее идут собственно блоки, содержащие элементы модели:

  • Блок 79 - Geo - содержит все координатки вершин в тристрипсе. Одна координата закодирована 2мя байтами и представляет собой обычный множитель на размер ограничивающей модель коробки из клампа. Размер блока = заголовок блока (4 байта) + (XYZ (6 байтов) * количество вершин в тристрипсе).

Блок геометрии заканчивается техническим блоком 50505020, который необходим для движка (для импорта модели он не важен).

  • Блок 76 - UV - содержит все координатки UV-маппинга в тристрипсе. Одна координата закодирована 1м байтом, вычисляется делением на 255 и умножением на 2 (иногда умножение на 2 не требуется - импортёр должен проверять получившуюся цифру после деления). Размер блока = заголовок блока (4 байта) + (UV (2 байта) * количество вершин в тристрипсе).
  • Блок 6F - Pre-Light - содержит RGBA для предварительного освещения вершинки. Вычисляется по хитрой формуле AK-73. Размер блока = заголовок блока (4 байта) + (RGBA (2 байта) * количество вершин в тристрипсе).
  • Блок 6Е - Неизвестно - блок, добавленный в MDL в Manhunt 2. Не разобран. Размер блока = 4 байта * количество вершинок в тристрипсе.
  • Блок 6A - Normals - содержит все координатки векторов нормалей в трипстрипсе. Одна координата закодирована 1м байтом и вычисляется делением на 127. Размер блока = заголовок блока (4 байта) + (XYZ (3 байта) * количество вершин в тристрипсе).
  • Блок 6С - Skin - содержит таблицу весов вершинок для их анимации. Это id косточки (1 байт) + её вес (3 байта). Соответственно, каждая вершинка содержит 4 id (т.е. в анимации она управляется 4 косточками). Размер блока = заголовок блока (4 байта) + ((id_weight (4 байта) * 4) * количество вершин в тристрипсе.

Чтение следующего тристрипса начинается сразу же за флагом окончания тристрипса - 14000006. Общее количество тристрипсев в модели так же записано в Clump'e.

PC (Windows) версия

Информация будет добавлена позже...

п · о · р
Lcs.png GTA Liberty City Stories Vcs.png GTA Vice City Stories
Форматы файлов.anim.at3.cam.chk/.xtx.col2.cut.dtz.ifp.img/.dir.irx.gxt.lvz.mdl.pss.raw/.sdt.scm.vb.wrld
ИнструментыApacheConsole Texture Explorer (PSP/PS2)GTA Stories IMG ToolGTA Stories Texture ViewerGTA Stories Texture Explorer
GTA Stories RAW EditorGXT EditorJPCSPMDL importerMF AudioPCSX2PPSSPPStories WRLD ToolGTA Stories Map Converter v1.0UMD GenYAIE
ТуториалыМоддинг VCS и LCS (PSP/PS2)Аудио на PSPАудио на PS2Спецификация версий PS2Конфигурирование PCSX2
ПК-версииVice City StoriesLiberty City Stories