Render.ru

Ищу программиста для расшифровки формата .mdl Ancient Wars: Sparta

Солдат_ТОДД

Активный участник
Рейтинг
5
#1
Кто-то мог бы расшифровать и написать MaxScript по импорту/экспорту игровых 3Д моделей Ancient Wars: Sparta? И сколько такая робота будет стоить?

Вот пример моделей из игры (.mdl):
http://www.mediafire.com/file/ea9tyioket972yk/Models_.mdl.7z/file

Мне на форуме XeNTaX сказали, что формат .mdl не сложный.
 

LastJedi

Знаток
Рейтинг
27
#5
Насколько я могу судить, .mdl — бинарный формат. Без, хоть какой-нибудь, документации или хотя бы возможности генерировать тестовые примеры в данном формате, его расшифровка мягко говоря крайне затруднительна. При такой постановке задачи, не возможно гарантировать её решение в конечные сроки, и, соответственно, определить стоимость работы…
 

LastJedi

Знаток
Рейтинг
27
#7
Извини, а какая для этого документация требуется?
Хотя бы частичное описание формата. Например, перечень блоков данных… Сейчас просто не от чего оттолкнуться, чтобы начать «расшифровку». Возможно формат и не сложный, но просто так пытаться отгадать где в нём что, дело очень не благодарное… Или Вы готовы оплатить исследование закономерностей в структуре файла без гарантии практического результата?

Фактически, Вашу задачу можно было бы решать одним из следующих способов:
  1. При наличии частичного описания формата, можно было бы строить предположения, и методом проб и ошибок восстановить недостающую информацию. Понятно, что чем больше исходной информации, тем быстрее можно достичь результата. Если исходных данных нет, то попыток «угадать» может быть сколь угодно много.
  2. Если иметь возможность генерировать тестовые примеры (файлы .mdl с заведомо известным простым содержимым), то можно пытаться определить спецификацию формата, наблюдая за соответствующим изменением файла. Данный способ может быть затруднён, если при сохранение данных используется сжатие или шифрование.
  3. Имея доступ к приложению, осуществляющему чтение/запись данного формата, можно пытаться при помощи обратной разработки (reverse engineering) восстановить спецификацию. Это самый трудоёмкий вариант.
 

Солдат_ТОДД

Активный участник
Рейтинг
5
#8
Хотя бы частичное описание формата. Например, перечень блоков данных… Сейчас просто не от чего оттолкнуться, чтобы начать «расшифровку». Возможно формат и не сложный, но просто так пытаться отгадать где в нём что, дело очень не благодарное…
Авторы 3D Object Converter как-то расшифровали уже и добавили этот формат в 3D Object Converter. Но, понятное дело, без обратного экспорта.
https://forum.xentax.com/viewtopic.php?p=127701&sid=170d8702c502cf448f04e9b165315fcb#p127701
Даже со скелетом.

Но, правда, не все модели в 3D Object Converter загружаются правильно, например, слоны.

Это могло бы помочь?

P.S. LastJedi, как Вам написать в личку?
 

LastJedi

Знаток
Рейтинг
27
#9
Возможно им было немного проще, т.к. могли использовать предыдущий опыт по схожим форматам.

Я потратил немного времени на просмотр файлов, формат видимо действительно не очень сложный. Данные скорее всего не сжаты и не зашифрованы. Некоторые блоки данных видно сразу. Это поверхностный взгляд, но, скорее всего, сделать импорт в 3ds Max реально.

Что качается обратного сохранения, то с уверенностью пока сказать нельзя. Я не знаю, но если, например, при сохранении в файл записывается какая-нибудь контрольная сумма, то это будет проблема. Так же в файле могут быть служебные данные и атрибуты, назначение которых определить не удастся. Соответственно, при обратной загрузке в игру, какая-то информация в файле может оказаться не корректной. Если же подобных «подводных камней» не будет, то экспорт тоже возможен.

«Написать в личку» можно, например, в Телеграм (если Вам удобно): @p_ky3, ну или на почту LastJedi@ya.ru
 

Солдат_ТОДД

Активный участник
Рейтинг
5
#10
Так же в файле могут быть служебные данные и атрибуты, назначение которых определить не удастся. Соответственно, при обратной загрузке в игру, какая-то информация в файле может оказаться не корректной. Если же подобных «подводных камней» не будет, то экспорт тоже возможен.
Спасибо за подробное разъяснение. Вы правы, экспорт должен быть надёжным, без «подводных камней», для всех типов моделей. К тому же я предполагал, что скрипт будет также поддерживать экспорт и инородных скелетов с анимацией (как в Warcraft III). Или это зависит от движка?

P.S. Извините, я в этом мало смыслю, но в Warcraft III точно такое расширение формата.
https://xgm.guru/p/wc3/format-mdl
https://xgm.guru/p/wc3/mdl-structure
Может разработчики Ancient Wars: Sparta отталкивались от формата Warcraft III?

Вот скрипты под Warcraft-ский .mdl формат для Blender.
https://github.com/khalv/mdl-exporter
https://github.com/CruzR/Blender-MDL
Но я их не проверял.
 

LastJedi

Знаток
Рейтинг
27
#11
В игровой индустрии встречается множество файлов 3D моделей с расширением .mdl, но фактически это совсем разные файлы .mdl от Warcraft III имеет полностью отличную структуру, и может содержать в себе принципиально иную информацию, по сравнению с .mdl от Ancient Wars: Sparta.

К слову сказать, непосредственно формат .mdl-файлов от Ancient Wars: Sparta я почти полностью разобрал (Потребовалось часов 10 работы. Остались там небольшие вопросы, но процентов на 90 всё понятно). В этих файлах хранится только геометрия с иерархией и костями. Больше ничего. Текстуры лежат в отдельных .dds-файлах, а анимация (по всей видимости) в файлах .man. Если про .dds всё понятно, то описание формата .man файла, я не нашёл (может быть плохо искал). Так что, как с ним работать — отдельный вопрос.
 
Сверху