Показать сообщение отдельно
Старый 07.12.2005, 11:13   #629
Vam

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: Декомпилятор скриптов Готики

2Ukur:

Стоп, стоп, стоп... не всё сразу, будем разбираться попорядку.

1. Небольшой вводный материал:

В анимации и моделировании Готик используются следующие форматы файлов:
- .MAN (ModelAnimation) * * * * Анимация модели
- .MDH (ModelHierarchie) * * * *Иерархия модели
- .MDM (ModelMesh) * * * * * * *Меш модели
- .MDL (Model (complete)) * * * Иерархия и Меш модели
- .MDS (ModelScript) * * * * * *Скрипт модели (анимация, иерархия и меш модели в текстовом виде)
- .MMS (MorphMeshScript) * * * *Скрипт трансформации меша (анимация, иерархия и меш модели в текстовом виде)
- .MMB (MorphMeshBinary) * * * *Трансформация меша (двоичная форма предыдущего типа)
- .MRM (MultiResolutionMesh) * *Статический меш с сокращенным числом полигонов (CLOD)
- .MSH (Mesh) * * * * * * * * * Анимация меша (старый формат, не используется, но может встретиться)
- .MSB (ModelScriptBinary) * * *Модель (двоичная форма .MDS формата)
- .ASC (ACII, 3DS-MAX Export) * Текстовая форма данных, экспортируемая из 3DS-MAX (из неё при компиляции получается большинство предыдущих типов)

Многие из этих типов, как видно из названия, взаимозависимы. Для того, чтобы модель правильно отображалась и работала необходимо соответствие некоторых типов. Причем, не все типы обязательны, при отсутствии некоторых из них ядро создает недостающие типы из cуществующих. Разобраться в этом затруднительно (какие типы могут отсутствовать, а какие обязательны), всё в экзешнике сильно запутано. Помочь может только практическое тестирование.
Точно могу сказать:
1. Файл MDL является суммой двух файлов MDH + MDM.
2. Файлы MDH Г1 и Г2 взаимозаменяемы, различий в них нет.

2. Ответы на вопросы.

Конвертирование моделей производилось из формата Г2(а), в формат Г1. В конвертировании принимали участие все животные Г2(а), а также остальные модели.
Частичный успех: HAMMEL_BODY.MDL - баран стал абсолютно невидимым...
Возможно несовместимость некоторых форматов, нужно разбираться.

От конвертирования живность отказалась (неподдерживаемая версия)
Существует три типа MDL файлов, поясню, в каждом MDL файле после ключегого кода - 00 D0 04 00 00 00 идут четыре байта номера версии файла,
это - 06 05 03 04 - Готика1, 06 05 09 04 - Готика2, 06 05 08 04 - неизвестный формат (третий байт задает номер версии класса zCMaterial)
Обработчика класса zCMaterial с версией 08 я не нашел ни в одном экзешнике, как обрабатывается этот класс - для меня загадка, поэтому такие MDL файлы пропускаются.

Журнал пакетной обработки (с прочими моделями) прилагается
Эту информацию можно не приводить, толку от неё мало.

Оказывается, для того чтобы модели успешно заработали в игре, расширение всех конвертированных моделей нужно было изменить на "*.MDM", сами они не переименовывались
Ошибочное суждение, файл MDM является только частью файла MDL, поэтому переименовывать эти файлы (да и вообще любые другие нельзя). Здесь верояннее всего происходит следующее:
ядро встречает неправильный формат MDM файла и восстанавливает его из MDL файла. Поэтому наиболее правильней просто удалить MDM файл, ядро должно его восстановить, но это необходимо проверить экспериментально, я не уверен.

Пока всё, задавайте вопросы, постараюсь ответить, а разбираться в моделях нужно совместно - тогда будет нужный результат. *;)
Ответить с цитированием