Гайд по декомпиляции моделей движка Source

0
Опросник девелопера =): Помогла ли вам данная тема?
Да
(17/85% голосов)
Нет
(3/15% голосов)
V.I.P.
0
Source Моддер
Senny
11:00, 04.09.2013


Вступление


MDL является собственным форматом моделей движка Source. Он определяет структуру модели, вместе с анимацией, ограничивающей коробкой, хит коробкой, материалами, и сеткой детализации модели (LOD). Сам по себе формат MDL не хранит всей необходимой информации о данной модели.

Дополнительные данные хранятся в PHY, ANI, VTX и VVD файлах, а иногда , в MDL файлах может храниться и анимация, которую используют несколько моделей т.е это общая библиотека анимации, которую могут использовать несколько моделей.

Начнем


Такая вот история. Вам захотелось декомпилировать модельку, ну например вам нужен ее исходник что бы изменить его, поставить в другую игру, или же просто интересно что же внутри загадочного файла MDL


Приступаем к роботе...


Декомпилировать модели движка Source, можно с помощью программы MDLDecompiler.
MDLDecompiler это программа стороннего разработчика которая может получать исходники формата SMD из MDL файлов. Зашли вы значит в google скачали откуда то этот самый MDLDecompile, запустили, выбрали модельку, нажали кнопку Extract, и в лучшем случае получили ошибку "unable to load model", в худшем - программа просто крешнулася. Ваши емоции после геморного хождения по google в поисках хоть какой то инфы примерно такие , вы начинает задаваться вопросами, и биться головой об стену, потому что не понимаете, что этой программе еще от вас нужно
Пару секунд упорных стараний и вы повесили нос
Но не все так плохо, выход есть


Декомпиляция модели


К примеру будем декомпилировать модель breen'а из Half life 2
И так, разделю на пункты, так проще:

1)
Естественно нам нужно получить модель. Идем в SteamApps ищем файл source models.gcf:

открываем его с помощью GCF Scape,
ищем модель Брина , она тут


2)
Выделяем модель, и все ее (выше упомянутые) прилагаемые файлы

правый клик мышью, и извлекаем это все куда то на диск, у меня это будет диск D:\

3)
Смотрим, у нас 6 файлов(breen.dx80.vtx, breen.dx90.vtx, breen.mdl, breen.phy, breen.sw.vtx, breen.vvd) как раз все то, что нужны для декомпиляции, но может быть и по другому...

Важно! Возможные ошибки из за которых срывается компиляция.

I - Обращаем на файл формата .vtx у нас это breen.sw.vtx, а именно на пркладку sw, ее нужно удалить, потому что компиляция сорвется.
Для танкиста: после изменения это будет выглядеть вот так - breen.vtx.

II
- обращаем внимание на те же файлы формата .vtx, с прекладкой dx80, dx90 (сокращенно direct X 8.0, 9.0). Может быть так что будет либо dx80, либо dx90, а для компиляции нужно 2. Решаеться просто - делаем копию существующего, например breen.dx80.vtx, переименовываем, его в недостающего - breen.dx90.vtx.

Сделал.


В общем нужно помнить что для компиляции нужно 6 файлов:

1) Имя.dx90.vtx
2) Имя.dx80.vtx
3) Имя.dx80.mdl
4) Имя.phy
5) Имя.dx80.vtx
6) Имя.vvd

хоть и Имя.dx80.phy может и не быть(например у зараженных с Left 4 Dead), это не страшно . Тут вроде все.

4)

Самый важный момент. Исправления заголовка файла MDL. В основном на это этапе все кто не знают, частенько обламываються. Для редактирования нам понадобиться NotePad++ - очень офигенный текстовый редактор, который может сохранять файлы без изменения кодировки, а это очень важно.

Откроем этим чудом наш MDL файл.
Видим:


Видим закодированные данные в виде текста, и так обращаем внимание на заголовок IDST, , самый главный елемент тут кома, (если не ошибаюсь то это есть версия MDL файла), в даном случае тут все правильно - после IDST должна стоять кома. За месть ее может быть 1(как в Left 4 dead),0(HL 2 ep2), или еще что то. Что бы там не было, меняем этот символ на кому.
Жмем ctrl+s, закрываем notepad. Короче если не изменить этот символ(5 по счету), MDLDecompiler выдаст ошибку.

5)
Вот и дошли до компиляции.
Запускаем MDLDecompiler. Скачать его можно с офиц. сайта -> Cannonfodder's Half-Life 2 Tools . Там есть 5 версий этой программы, качаем версию MDLDecompiler Version 0.4.1, она более стабильная, чем последняя - 5я.
Скачали - открыли архив извлекли от туда mdldecompiler.exe, и кинули в папку Source sdk ep1/bin, или же если у вас нету SSDK, Ставить его в лом, а исходник модельки нужно, я выложил этот компилятор из всем требуемыми модулями dll, который может обойтись без все папки bin.
Скачать можно с:

RGhost.ru
Яндекс.Народ
Depositfiles.com

Опять же запустили mdldecompiler.exe, сняли чек бокс с "Use steam File Access"


Выбрали нашу модельку(в данном случае не отредактированную), укали выходную папку, куда будет кинут исходный файл SMD, и нажали Extract.
Сообщения о удачной загрузке модели:

Пару секунд, и сообщения об удачной декомпиляции модели:


Все прошло гладко исходник(и) получили:


10 файлов.

Вот и все, процесс декомпиляции закончен. Имея исходники формата smd, вы можете работать с моделью в 3d пакетах таких как 3D's Max, Maya,softimage mod tool XSI. И после скомпилировать модель по уже существующему qc файлу.
Вот он наш Брин:


Все. Надеюсь этот гайд поможет вам. Удачи

На всякий случай, другая версия де компилятора


Автор написал:


Цитата:Hooch's fixed version of MDL Decompiler (2013) (No need to change "IDST0" to "IDST," and no more AppId error)


У Вас недостаточно прав для скачивания файлов.

Установка


Извлечь файл MDL Decompiler Fixed.exe в "C:\Program Files (x86)\Steam\steamapps\***user_name***\sourcesdk\bin\ep1\bin". Или же еще проще, у меня есть все нужные dll библиотеки для его работы. Так что качаем то что будет ниже, запускаем MDL Decompiler Fixed.exe - пользуемся.

YandDisck - MDL Decompiler
Dfiles - MDL Decompiler
RGhost - MDL Decompiler


Журналисты
0
Богоподобен
спасибо
Администраторы
0
Evil Monster
senny, сделай гайд по компиляции моделей
V.I.P.
0
Source Моддер
EginKaman, сделаю...


Посетители
0
Новичок
сделал все по пунктам, в итоге получил только файл под названием mdldecompiler.qc
правда я пытался сделать это с пушкой из ACF
V.I.P.
0
Source Моддер
Senny
10:44, 04.09.2013
Alternating_Current, значит компилятор не тянет, офиц. же нету. Такой же прикол с де компиляцией view моделей оружия из L4D2, правда при этом еще компилятор вылетает с ошибкой.. ну и остается не несформированный qc.

Посмотри в конец топика, я там залил как бы новую версию компилятора. Может он тебе поможет.


Посетители
0
Новичок
Ну тык когда ждать по компиляции моделей ,я тупой пень не хера не могу понять
Посетители
0
Новичок
Ls-kat
14:15, 22.10.2013
Если сможете помоги а, я вроде де компилировал модель ,а как в неё текстуру засунуть я уже не знаю
Вот дам архив с моделью и текстурой ,если кто хорошо знает Source sdk помогите пожалуйста.

Вашей группе Гости запрещён просмотр скрытого текста.

V.I.P.
0
Всё в маске
Кароч, я тебе всё переделаю. Но! Модель твоя нифига не декомпилирована! Что в принципе не мешает пихнуть текстуру :D
Посетители
0
Новичок
Supervolchok (23.12.2013, 21:16) писал:Кароч, я тебе всё переделаю. Но! Модель твоя нифига не декомпилирована! Что в принципе не мешает пихнуть текстуру :D

Ммм ясно ,я вроде декомпилил её...
Но буду благодарен)
Посетители
0
Участник
А такой вопрос - я модель декомпилировал, все прошло без ошибок. Загружаю ее в 13й Макс с помощью Wall Worm Tools - но в результате получаю кривой скелет, в котором, например, плечо левой руки прицеплена к кисти правой. Что не так?
V.I.P.
0
Всё в маске
derby, попробуй ригнуть модель вручную. Там же можно менять положение костей, не так ли?
Посетители
0
Активный участник
derby (27.04.2014, 03:33) писал:А такой вопрос - я модель декомпилировал, все прошло без ошибок. Загружаю ее в 13й Макс с помощью Wall Worm Tools - но в результате получаю кривой скелет, в котором, например, плечо левой руки прицеплена к кисти правой. Что не так?

Это глюк импортера ихнего. Удали модификатор skin у всех мешей(если у модели тело разбросано по частям). Потом ты сможешь инструментом перемещения и инструментом вращения все поставить на нормальное место. Ну придется заного применять модификатор skin. Тут ничего не поделаешь. Дело в том что, импортер делает левый чел. Надесюь скоро это исправят.
Посетители
0
Участник
derby
10:56, 27.04.2014
Дело в том, что я пытаюсь слегка модифицировать достаточно сложный комплект NPC с большим набором поведения. Нужно чуть чуть подправить модель. И на это есть несколько дней, просто тупо не хватает времени подробно со всем разбираться. Может посоветуете правильный импортер? Я в принципе готов проспонсировать работу, если кто возьмется помочь.
Посетители
0
Активный участник
saref
12:16, 27.04.2014
derby (27.04.2014, 12:55) писал:Дело в том, что я пытаюсь слегка модифицировать достаточно сложный комплект NPC с большим набором поведения. Нужно чуть чуть подправить модель. И на это есть несколько дней, просто тупо не хватает времени подробно со всем разбираться. Может посоветуете правильный импортер? Я в принципе готов проспонсировать работу, если кто возьмется помочь.

Наверно тебе надо установить более старую версию макса. Для нового макса помоему нету других импортеров.
Посетители
0
Участник
Я пробовал на 12-м. Попытаюсь импортнуть в Майку.
Посетители
0
Участник
Не выходит ни черта. Плагины, которые идут вместе с Source SDK и Source 2013 - не запускаются в 12й Майе.
Посетители
0
Активный участник
derby (28.04.2014, 00:35) писал:Не выходит ни черта. Плагины, которые идут вместе с Source SDK и Source 2013 - не запускаются в 12й Майе.

Поподробней расскажи что там в модели надо исправить.
Посетители
0
Участник
в личке
Посетители
0
Участник
Пошел по упрощенному варианту. Так как мне не нужно лезть в AI и анимацию, то декомпильнул просто референсную модель из набора и затащил ее в 12й Макс с помошью импортирующего плагина. Поменял кое-что, теперь пробую скомпилировать обратно. Вылезает стандартная проблема - Can't find steam app user info. Способы решения, найденные в инете, пока не работают.

Надо сказать, что я не конфигурировал по полной программе мод через SDK launcher. Это может как-то влиять? Или все-таки можно просто скомпилировать модель при наличии всех ее файлов?
 
Доступ закрыт.
  • Вам запрещено отвечать в темах данного форума.