Наверное всем хоть раз в жизни хотелось бы использовать в своей карте модель из какой либо игры.
Существует множество статей, позволяющие достать модель из конкретной игры. Но все эти способы разные, порой долгие и малопонятные, и плюс ко всему этому приходится качать кучу дополнительного кустарного софта. Согласитесь, было бы не плохо иметь универсальный способ, подходящий если не ко всем, то хотя бы большинству игр. И такой способ есть! Недавно совершенно случайно я наткнулся на очень интересную программу - 3D Ripper DX. Она позволяет извлекать модели из игр использующих технологии DirectX. И эта статья будет описывать способ конверта через эту программу.
Что нам понадобится:
3D Ripper DX - программа для захвата сцен из игр [скачать]
Autodesk 3ds Max 2011 (не обязательно 2011) - Программа для просмотра сцен которые мы достанем с помощью 3d рипера
MdlVis, War3 ModelEditor, BLP Lab - как же без них =) Шаг №1. Достаем сцену из игры. Запускаем 3D Ripper видим такое окошко:
Производим настройку программы: Please Select DirectX 9 application to analize - здесь нужно указать путь к .exe файлу игры. Я выбрал Call of Duty 4. Command line parameters - это поле оставляем пустым. Горячие клавиши можете изменить по своему усмотрению, для конверта нам понадобится только "Capture key" (по умолчанию F12). Capture all shaders - ставим галочку напротив этого пункта. Capture all textures - здесь тоже ставим галочку. Force windowed mode - галочка на ваше усмотрение. Это опция позволяет открыть игру в оконном режиме. Disable shader model 3.0 - здесь галочку ставить не рекомендуется, это может привести к вылету программы во время захвата сцены.
Последующие строчки - это папки сохранения текстур, шейдеров и самой сцены. Их ставим на свое усмотрение, лично я оставил стандартные пути.
Вот что у нас должно получится:
Далее нажимаем "Launch". У нас запускается наша игра, но только запускается она через 3D Ripper.
В игре находим интересующую нас модель или область. Меня например за интересовал вот этот холодильник и прилегающие к нему тумбы.
Нажимаем F12 и ждем пока риппер достанет все необходимое (игра зависнет на несколько секунд, а когда отвиснет можно смело выключать ее и приступать к следующему шагу). Шаг №2. Извлекаем из полученной сцены нашу модельку в формате .3ds Теперь, когда мы извлекли сцену, запускаем 3ds Max. Нажимаем Open file и ищем нашу сцену формата *.3dr (поставьте в фильтре all files). Когда вы нажмете Открыть, вылезет табличка 3DR import options В ней на против пункта Recommended values ставим: Aspect=1.69104, FOV=67.37820
Нажимаем ОК. Вот и открылась наша сцена:
Тыкаем на нужную модельку и нажимаем: File => Export => Export Selected Вылазит окно сохранения. В нем выбираем папку куда кладем модель, даем ей имя и выбираем выходной формат 3D Studio (*.3DS) Сохраняем и приступаем к поиску текстур. Для просмотра формата .dds можно использовать BLP lab После того как мы нашли нужную текстуру можно приступать к следующему шагу, а именно - конверту непосредственно в WarCraft III Шаг №3. Конвертим .3ds в .mdx Этот шаг я не буду разъяснять подробно, это должен уметь каждый моделер, иначе я не вижу смысл читать эту статью. 1. По этой статье http://wc3-maps.ru/forum/14-2351-1 конвертим .3ds в .mdx 2. С помощью Blp Lab конвертируем нашу текстуру в формат .blp 3. Через WarModelEditor накладываем текстуру 4. Снова открываем модель в MdlVis и открываем редактор текстур, выделяем все и нажимаем "Отразить по Y" Конец В конце этого процесса у меня получился вот такой холодильник: