Directx 3d models ripper как пользоваться

Обновлено: 07.07.2024

Полное руководство по выдиранию 3D пространства из игр работающих на 6/8/9 DirectX, при помощи программы 3D Ripper DX Риппинг - cкриншот игры, но в 3D, захвачено будет всё, что видно на данный момент на экране в виде фрейма + текстуры в dds и файлы шейдеров.

3D Ripper DX - та самая прога, которая давно уже не обновлялась, но всё равно пользуется большим спросом у модостроителей. На данный момент версия 1.8.2

Что нам понадобится


Microsoft Windows XP SP3
3D Ripper DX 1.5 - 1.8.2 версий СКАЧАТЬ
Autodesk 3ds Max 2009 / 2010 / 2011
"Бесплатная" версия игры или что-бы запускалась сразу с exe без всяких лаунчеров, Steam окон и.т.п ! (DX 6/8/9) . (возможен вариант глобального мониторинга в случае со Steam).
Скрипт для 3ds max для восстановления координат текстур на модельках - UV Repair Tools.
Немного мозгов и изобретательности.
Прога TexMod (пока не описана в этом туторе)
Adobe Photoshop
XnView (или др. просмотрщик с поддержкой *.dds файлов)

Зачем нам именно XP и 3D Ripper DX разных версий?

XP нам нужна чисто из за того, что она древняя, как эта прога и они работают в единой гармонии. Да и процессы там не нагружаются дополнительными опциями.
Разные версии 3D Ripper DX - Даже на XP эта программа не всегда работает корректно, всё происходит из за того, что разные движки игр работают по разному, например некоторые игры вообще не запускаются или вылетают при нажатии захвата фрейма. Другие нормально запускаются, но у них, как ни странно, не появляется надписи, что игра готова к риппингу. Короче, очень много всяких премудростей.

Главное окно программы

Для тех, кто в танке, расписываю всё подробно:

Please select DirectX 6/8/9/ app. - Укажите путь до исполняемого exe игры
Command Line - параметры запуска игры (если они сущестуют) например -dev.
Capture key - кнопка захвата фрейма
Wireframe mode - режим wireframe (не рекомендуется использовать)
Disable texures - отключить отображение текстур (не рекомендуется использовать)
Capture all shaders / all texures - сохранение всех шейдеров / текстур которые есть в памяти, а не только используемые в фрейме.
Force windowed mode - запуск в окне (не рекомендуется использовать)
Disable shader model 3.0 - Отключение продвинутых шейдеров (не рекомендуется использовать)

Also capture to obj - захват фрейма не только в стандартном формате но и в формате OBJ (не рекомендуется использовать) Захват в формате OBJ вам ничего хорошего не даст:
1 - захват происходит чуть ли не в 3 раза дольше
2 - импорт формата OBJ занимает очень много оперативной памяти, если фрейм большой то можете получить тупо ошибку и всё.
3 - большой вес и ещё множество больших минусов которые я укажу ниже.
4 - obj не сохраняет координаты текстур.

Кнопки
Start global system monitoring - запуск проги в фоновом режиме (только для XP). Программа старается встраиваться во все 3D приложения запущенные на компе. Режим полезен для игр в которых запуск осуществляется через лаунчер, а не на прямую. Глобальный мониторинг надо запустить перед запуском самой игры !
Launch - сворачивание программы и запуск игры

Итак вот мы и добрались до самого тутора. Для начала давайте оценим вашу игру, она должна запускаться сразу с exe - самый лучший вариант. Если же уж совсем припёрло то можно попробовать рипнуть и Steam версию игры или которая запускается с лаунчера, как например GTA IV, но с здесь уже намного больше гемора. Т.к. запуск игры сразу с exe не требует разъяснения, я подробно остановлюсь на запуске Steam игры.

Нажимаем кнопку, подтверждаем, что мы не нубы и поняли, что надо выключить всё, что помешает глобальному мониторингу.

Для самой игры вы должны создать "особо благоприятную среду" т.е. отключаем всякие проги типа Fraps, скриншотилки и всё, что может внедриться в процесс игры. Далее нам надо "обезвредить" сам Steam - отключаем оверлейную панель. Для особо тупых рассказываю: в библиотеке правой кнопкой мыши щёлкаем по игре - свойства - общие - убрать галочку "Вкл. сообщество Steam в игре" - Закрыть.

Для начала ставим самую посл. версию риппера (1.8.1). Указываем папки для текстур, фреймов и шейдеров. Указываем желаемые кнопки и доп. опции. Настоятельно не рекомендую использовать насильное отключение шейдеров 3.0 или захват ещё и в OBJ из за этих функций игра скорее всего вылетит. Так-же не злоупотребляйте Wireframe mode или Disable texures.

Итак, запускаем глобальный системный мониторинг, запускаем саму игру. Ждём загрузки и в прямом смысле молимся что-бы в левом верхнем углу появилась вот такая надпись:

Конечно, появление этой надписи ещё не победа над игрой но и не полный феил. Загрузите сохранение игры или что там есть. Убедитесь что игра работает в "рабочем режиме" т.е. вы можете играть в неё и в углу висит эта надпись. Если же что-то из выше сказанного не получилось поэксперементируйте с 1.8 и 1.7 если же и эти вполне новые версии не помогут попробуйте версию 1.5 лично у меня с ней вообще ничего не запустилось корректно.

Для "бесплатных" версий игр всё намного проще - указываете exe игры и стартуете с кнопки Launch, а далее по схеме рассказаной выше. т.е. пробуем с другими версиями проги. Не забываем что старые версии поддерживают только 8 и 9 DX.

Премудрости


Перед снимком надо учитывать некоторые правила которые помогут получить максимально качественный снимок 3D пространства игры !
Встаньте строго параллельно к снимаемому объекту. Ориентируйтесь по стенам помещения, по домам, постройкам или что там ещё есть. если собираетесь рипнуть целую локацию.
Установите по возможности камеру параллельно объектам, это тоже поможет сделать более ровный снимок.
Посторайтесь что-бы снимаемая локация была полностью в поле видимости (здесь разумеется в выйгрыше те кто с широкоформатным монитором). Во многих играх окружение сразу же выгружается и некоторые объекты вы уже не увидите на снимке.
По возможности создайте несколько снимков с разных ракурсов или на других локациях игры. Это пожет при выправлении текстур и выборе лучшего варианта снимка.

Мы нажали кнопку "Сделать снимок"


Так вот, встали как надо, установили камеру и готовы нажать сделать снимок. Жмём ! В левом верхнем углу появилась панелька на которой написано что-то вроде: сейчас производится снимок, это займёт примерно 5 минут и ниже полный путь к создаваемому снимку.
Да, для снимка некоторых современных игр требуется весьма значительное время. Например когда я тестировал на NFS Hot Pursuit на каждый снимок уходило примерно по 3,5 минуты, а то и даже 5 минут !

"Переваривание" полученного снимка.

Мучались, мучались и вот у нас есть снимок в формате 3dr и пачка текстур в формате DDS. Что-же дальше делать ? А вот что: надеюсь вы сообразили как поставить плагин импорта 3dr, для полного комплекта вам ещё понадобиться фиксилка координат текстур. Кидаем uv-repair-tools.msв папку . 3ds Max 2010\Scripts\. Запускаем 3ds max, жмём "импорт" и указываем наш снимок.
С начала нам предложат указать параметры импорта:

Лучше всего тут вообще ничего не трогать и нажать ок. Но об одной полезной опции я расскажу подробнее, называется она "Recommended values".
Здесь может быть всего один рекомендуемый параметр, что даже очень хорошо - выбираем его и жмём ок. Но бывает, что рекомендуемых параметров 2, а то 4. Это происходит, если снимок таки не снимался по правилам, которые я описал выше. Из за этого придётся импортировать данный снимок столько раз, сколько есть рекомендуемых параметров.

Короче говоря импортируете снимок и смотрите что он из себя представляет. Вдруг он сплюснут по высоте или ширине, может даже вытянут по диагонали или самое смешное можно увидеть, что весь снимок в прямом смысле снимок. т.е. уже не 3D, а практически плоская поверхность. Если видите такое смело жмите reset и импортируйте снимок уже с другим рекомендуемым параметром.
Для начала выбирайте первый рек. параметр, если все не подошли то оставьте эту опцию не выбранной.

Ниже показан пример неудачного, плоского импорта:

А вот профессионально сделанный импорт:

Ну вот мы и импортировали своё творение. Удачно ? Тогда идём дальше. Постарайтесь выровнять ваш рип если он таки получился не очень строго по осям координат, помните что центр координат это как раз точка снимка. Сохраните только в формат *.max Это очень важный момент т.к. этот формат сохраняет совершенно всё включая дополнительные координаты текстур и прочую дрянь. Сохраните и сбросте 3ds max (reset). Откройте только-что сохранённый фрейм, скорее всего вам предложат указать папку с текстурами, укажите ему папку с получившимися после рипа dds файлами. Если повезёт все текстуры сразу встанут на свои места, а если нет можете увидеть или везде нормалеи место текстур или вообще кое где растянутые по кривым координатам текстуры.

Какие-же мы неудачники.
Очень подробно я разберу самый тяжёлый случай с которым мне пришлось работать. Я рипал игру Saints Row The Third. Добрая половина текстур лежит на разных UV координатах, пространство рипается очень криво, текстуры хорошего качества только на персах и оружии. Ну и самое плохое - у игры есть какие-то лоды, которые естественно то-же рипаются и в итоге получается всё дублированное да и ещё с кривыми координатами. Как же всё это фиксить ? Да не очень и сложно, после долгих поисков я нашёл скриптик для 3ds max называемый UV Repair Tools.

Фиксинг координат текстур

Разберём как-же восстанавливать координаты, координаты по описанию автора скрипта могут лежать на других UV координатах. Его скрипт как раз перенаправляет 3ds max на нужные координаты. Для примера я возьму рипнутого npc из SR3.

Слева кривые координаты сразу после импорта, а справа уже пофиксенные. Результат как говориться, на лицо.

Всё что нужно делать это просто выбрать 1 из мешей персонажа и жать в скрипте поочерёдно кнопки пока не увидите что текстуры встали на место. То-же самое проделываем с оставшимися мешами. Но скорее всего может оказаться что на 1 модели персонажа везде одинаковый канал и в последствии можно применить кнопку ко всем мешам сразу.

Важно: не нажимайте одну и ту-же кнопку 2 раза, это приведёт к вылету 3ds max
Важно: в случае, например, с sr3, есть дублированные меши, так-что придётся очень внимательно смотреть, какой меш выбран, потому-что они сливаются и можно не заметить, что текстуры выровнялись. (На скрине скрытый персонаж из Saints Row 3)

Как запустить скрипт?
Скрипт запускается очень просто: жмём MAXScript - Run Script и выбираем наш скрипт.

Для большинства известных игр, как правило, есть специальные инструменты для экспорта внутренних ресурсов. Однако если таковых нет, то не стоит отчаиваться. На помощь придет 3DX Ripper.

Рассмотрим процесс получения модели человека из игры Xenus 2 с использованием 3Ds Max.

1. Установите 3DX Ripper.
Во время установки программа автоматически определит версию 3Ds Max (поддерживаются версии с 5 по 2011) и установит нужный плагин.


2. Запустите программу.
В поле Capture Key выберите клавишу захвата моделей.
Так же можно установить на свой выбор пути к папкам текстур (Textures output directory), фреймов (Frame output directory) и шейдеров (Shaders output directory).

Текстуры – 3DX Ripper получает их в формате dds. 3Ds Max может работать с dds напрямую. Для конвертации в другие форматы рекомендую использовать Photoshop с плагином от NVidia.

Фрейм – это *.3dr файл, содержащий саму извлесенную сцену. 3DX Ripper не может захватить конкретную модель, он получает своего рода «трехмерный скриншот» со всеми объектами игрового мира.

Шейдеры – это *.vsh и *.psh файлы, содержащие информацию о том, каким образом отображается в сцене конкретный объект (параметры освещения, текстуры и т.д.).

В поле Please select DirectX 6/8/9 application to analize выберите файл запуска игры. Если игра запускается не напрямую, а через специальную программу, см. шаг 3.


3. Запустите игру через 3DX Ripper, нажав кнопку Launch. Если ваша игра запускается не напрямую, то нажмите кнопку Start global system monitoring и запускайте игру как обычно.

4. Начните игровой процесс. Если после запуска игры в левом верхнем углу загорелась надпись Ready to capture, значит все готово для захвата. В противном случае ваша игра скорее всего не поддается 3DX Ripper и стоит искать другие способы. Обычно это мультиплеерные игры, использующие защиту от читов, например игра Point Blank.


Все объекты в захваченном снимке будут статичными. Захват всех персонажей произойдет в тех позах, в которых они находятся в данный момент. Если вы хотите впоследствии анимировать модель, добавив скелет, то лучше, чтобы конечности при захвате находились как можно дальше друг от друга.

5. Откройте в 3Ds Max полученный фрейм. Для этого потребуется много оперативной памяти, так что задайте для файла подкачки значение побольше. При открытии появится окно настроек, в котором нужно задать следующие параметры:


Вы увидите примерно следующую картину:


В данном случае полусфера – это границы игрового пространства, а местоположение игрока и основных объектов находится в ее центре.

6. Летайте по сцене и ищите нужную вам модель. Лучше делать это в режиме Wireframe и периодически делать рендеринг, если заблудились.


После того как нашли нужную модель, необходимо удалить остальные части сцены. Выделите модель и сгруппируйте под определенным названием, например MyModel. Далее через инструмент Select by Name выберите все элементы сцены, кроме нужной и удалите.


Затем разгруппируйте нужную модель и удалите лишние части, если они попали в группу. Должна остаться чистая модель.



На этом работу по извлечению можно считать завершенной. Имена текстур, используемых в модели можно узнать, воспользовавшись пипеткой в редакторе материалов.



Гайд устарел, по причине не актуальности Windows XP / 32 битной платформы / только DX9. Используйте Ninja Ripper
Полное руководство по выдиранию 3D пространства из игр работающих на 6/8/9 DirectX, при помощи программы 3D Ripper DX
Внимание: не всем разработчикам игр нравится что "тырят" их ресурсы из игр, убедитесь что это мягко говоря законно, если результаты рипа будут использоваться в других проектах.


1,566 уникальных посетителей
32 добавили в избранное















Риппинг - cкриншот игры но в 3D, захвачено будет всё что видно на данный момент на экране в виде фрейма + текстуры в dds и файлы шейдеров.

3D Ripper DX - та самая прога которая давно уже не обновлялась но всё равно пользуется большим спросом у модостроителей. На данный момент версия 1.8.2

  • Microsoft Windows XP SP3
  • 3D Ripper DX 1.5 - 1.8.2 версий

XP нам нужна чисто из за того что она древняя как эта прога и они работают в единой гармонии. Да и процессы там не нагружаются дополнительными опциями.
Разные версии 3D Ripper DX - Даже на XP эта программа не всегда работает корректно, всё происходит из за того что разные движки игр работают по разному, например некоторые игры вообще не запускаются или вылетают при нажатии захвата фрейма. Другие нормально запускаются но у них как не странно не появляется надписи что игра готова к риппингу. Короче очень много всяких примудростей.

Для тех кто в танке рассписываю всё подробно:

Please select DirectX 6/8/9/ app. - Укажите путь до исполняемого exe игры
Command Line - параметры запуска игры (если они сущестуют) например -dev.
Capture key - кнопка захвата фрейма
Wireframe mode - режим wireframe (не рекомендуется использовать)
Disable texures - отключить отображение текстур (не рекомендуется использовать)
Capture all shaders / all texures - сохранение всех шейдеров / текстур которые есть в памяти, а не только используемые в фрейме.
Force windowed mode - запуск в окне (не рекомендуется использовать)
Disable shader model 3.0 - Отключение продвинутых шейдеров (не рекомендуется использовать)

Also capture to obj - захват фрейма не только в стандартном формате но и в формате OBJ (не рекомендуется использовать) Захват в формате OBJ вам ничего хорошего не даст:
1 - захват происходит чуть ли не в 3 раза дольше
2 - импорт формата OBJ занимает очень много оперативной памяти, если фрейм большой то можете получить тупо ошибку и всё.
3 - большой вес и ещё множество больших минусов которые я укажу ниже.
4 - obj не сохраняет координаты текстур.

Кнопки
Start global system monitoring - запуск проги в фоновом режиме (только для XP). Программа старается встраиваться во все 3D приложения запущенные на компе. Режим полезен для игр в которых запуск осуществляется через лаунчер, а не на прямую. Глобальный мониторинг надо запустить перед запуском самой игры !
Launch - сворачивание программы и запуск игры

Итак вот мы и добрались до самого тутора . Для начала давайте оценим вашу игру, она должна запускаться сразу с exe - самый лучший вариант. Если же уж совсем припёрло то можно попробовать рипнуть и Steam версию игры или которая запускается с лаунчера как например GTA IV но с здесь уже намного больше гемора. Т.к. запуск игры сразу с exe не требует разъяснения я подробно остановлюсь на запуске Steam игры.

В этом режиме 3D Ripper DX будет свёрнут в трей и встраиваться в каждое запущенное приложение.
Глобальный мониторинг используется когда простой запуск не удаётся.
Щелкните правой кнопкой мыши по иконке в трее, чтобы выйти из режима глобального мониторинга.
В Vista и Windows 7 UAC должен быть отключен.

Внимание!
В некоторых случаях система может стать нестабильной, и могут случиться конфликты с некоторыми антивирусами / брандмауэрами / системами защиты.
Пожалуйста, выйдите из всех других приложений перед входом в этот режим.

Нажимаем кнопку, подтверждаем что мы не нубы и поняли что надо выключить всё что помешает глобальному мониторингу.

Для самой игры вы должны создать "особо благоприятную среду" т.е. отключаем всякие проги типа Fraps, скриншотилки и всё что может внедриться в процесс игры. Далее нам надо "обезвредить" сам Steam - отключаем оверлейную панель. Для особо тупых рассказываю: в библиотеке правой кнопкой мыши щёлкаем по игре - свойства - общие - убрать галочку "Вкл. сообщество Steam в игре" - Закрыть.

Для начала ставим самую посл. версию риппера (1.8.1). Указываем папки для текстур, фреймов и шейдеров. Указываем желаемые кнопки и доп. опции. Настоятельно не рекомендую использовать насильное отключение шейдеров 3.0 или захват ещё и в OBJ из за этих функций игра скорее всего вылетит. Так-же не злоупотребляйте Wireframe mode или Disable texures.

Истак, запускаем глобальный системный мониторинг, запускаем саму игру. Ждём загрузки и в прямом смысле молимся что-бы в левом верхнем углу появилась вот такая надпись
конечно появление этой надписи ещё не победа над игрой но и не полный феил. Загрузите сохранение игры или что там есть. Убедитесь что игра работает в "рабочем режиме" т.е. вы можете играть в неё и в углу висит эта надпись. Если же что-то из выше сказанного не получилось поэксперементируйте с 1.8 и 1.7 если же и эти вполне новые версии не помогут попробуйте версию 1.5 лично у меня с ней вообще ничего не запустилось корректно.

Для "бесплатных" версий игр всё намного проще - указываете exe игры и стартуете с кнопки Launch, а далее по схеме рассказаной выше. т.е. пробуем с другими версиями проги. Не забываем что старые версии поддерживают только 8 и 9 DX.

  • Встанте строго параллельно к снимаемому объекту. Ореентируйтесь по стенам помещения, по домам, постройкам или что там ещё есть. если собираетесь рипнуть целую локациию.
  • Установите по возможности камеру параллельно объектам, это то-же поможет сделать более ровный снимок.
  • Посторайтесь что-бы снимаемая локация была полностью в поле видимости (здесь разумеется в выйгрыше те кто с широкоформатным монитором). Во многих играх окружение сразу же выгружается и некоторые объекты вы уже не увидите на снимке.
  • По возможности создайте несколько снимков с разных ракурсов или на других локациях игры. Это пожет при выправлении текстур и выборе лучшего варианта снимка.

Так вот, встали как надо, установили камеру и готовы нажать сделать снимок. Жмём ! В левом верхнем углу появилась панелька на которой написано что-то вроде: сейчас производится снимок, это займёт примерно 5 минут и ниже полный путь к создаваемому снимку.
Да, для снимка некоторых современных игр требуется весьма значительное время. Например когда я тестировал на NFS Hot Pursuit на каждый снимок уходило примерно по 3,5 минуты, а то и даже 5 минут !

Мучались, мучались и вот у нас есть снимок в формате 3dr и пачка текстур в формате DDS. Что-же дальше делать ? А вот что: надеюсь вы сообразили как поставить плагин импорта 3dr, для полного комплекта вам ещё понадобиться фиксилка координат текстур. Кидаем uv-repair-tools.msв папку . 3ds Max 2010\Scripts\. Запускаем 3ds max, жмём "импорт" и указываем наш снимок.
С начала нам предложат указать параметры импорта:
Лучше всего тут вообще ничего не трогать и нажать ок. Но об одной полезной опции я расскажу подробнее, называется она "Recommended values".
Здесь может быть всего один рекомендуемый параметр что даже очень хорошо - выбираем его и жмём ок. Но бывает что рекомендуемых параметров 2, а то 4. Это происходит если снимок таки не снимался по правилам которые я описал выше. Из за этого придётся импортировать данный снимок столько раз, сколько есть рекомендуемых параметров. Короче говоря импортируете снимок и смотрите что он из себя представляет. Вдруг он сплюснут по высоте или ширине, может даже вытянут по диогонаоли или самое смешное можно увидеть что весь снимок в прямом смысле снимок. т.е. уже не 3D, а практически плоская поверхность. Если видите такое смело жмите reset и импортируйте снимок уже с другим рекомендуемым параметром.
Для начала выбирайте первый рек. парамерт, если все не подошли то оставьте эту опцию не выбранной.

Ну вот мы и импортировали своё творение. Удачно ? Тогда идём дальше. посторайтесь выровнять ваш рип если он таки получился не очень сторго по осям координат, помните что центр координат это кокраз точка снимка. Сохраните только в формат *.max Это очень важный момент т.к. этот формат сохраняет совершенно всё включая дополнительные координаты текстур и прочую дрянь. Сохраните и сбросте 3ds max (reset). Откройте только-что сохранённый фрейм, скорее всего вам предложат указать папку с текстурами, укажите ему папку с получившимися после рипа dds файлами. Если повезёт все текстуры сразу встанут на свои места, а если нет можете увидеть или везде нормалеи место текстур или вообще кое где растянутые по кривым координатам текстуры.

Какие-же мы неудачники.
Очень подробно я разберу самый тяжёлый случай с которым мне пришлось работать. Я рипал игру Saints Row The Third. В этой игре всё сделано через (_|_). Добрая половина текстур лежит на разных UV координатах, пространство рипается очень криво, текстуры хорошего качества только на персах и оружии. Ну и самое плохое - у игры есть какие-то лоды которые естественно то-же рипаются и в итоге получается всё дублированное да и ещё с кривыми координатами. Как же всё это фиксить ? Да не очень и сложно, после долгих поисков я нашёл скриптик для 3ds max называемый UV Repair Tools.

Разберём как-же восстанавливать координаты, координаты по описанию автора скрипта могут лежать на других UV координатах. Его скрипт кокраз перенаправляет 3ds max на нужные координаты. Для примера я возьму рипнутого npc из SR3.

Слева кривые координаты сразу после импорта, а справа уже пофиксенные. Результат как говориться на лицо.

Всё что нужно делать это просто выбрать 1 из мешей персонажа и жать в скрипте поочерёдно кнопки пока не увидите что текстуры встали на место. То-же самое проделываем с оставшимися мешами. Но скорее всего может оказаться что на 1 модели персонажа везде одинаковый канал и в последствии можно применить кнопку ко всем мешам сразу.

важно не нажимайте одну и ту-же кнопку 2 раза, это приведёт к вылету 3ds max
важно в случае например с sr3 есть дублированне меши, так-что придётся очень внимательно смотреть какой меш выбран, потому-что они сливаются и можно не заметить что текстуры выровнялись. (На скрине скрытый персонаж из Saints Row 3)

Как запустить скрипт ?
Скрипт запускается очень просто: жмём MAXScript - Run Script и выбираем наш скрипт.
Открывается вот такое окошко.

Добрая половина движков нового поколения используют normal map в которых преобладает жёлто-зелёный цвет, а в Source нужен сине-фиолетовый. Для простого изменения жёлтого на синий достаточно инвертировать синий канал т.к. там только чёрный цвет, а для того чтобы появился синий нужен ярко белый. Но это слишком приметивно, бывает нужно "развернуть" выпуклость или сменить тень. Как всё это сделать я постараюсь наглядно объяснить ниже.

Tutorial Ninja Ripper

В статье подробно описан процесс "рипа" моделей и текстур из игр использующих в качестве API directx версий 8, 9, 11 и импортирования "рипнутых" моделей/текстур в 3ds max.
Важно: если вы опытный пользователь ПК, то для вас сложностью может быть только настройка импорта UV. Остальное всё просто. Однако, я специально "разжевал" процесс для всех пользователей.

Примечание: Статья расчитана на пользователей знакомых с работой в 3ds Max и не описывает такие моменты как, например, текстурирование объектов, настройка материалов и т.п.

Для конвертирования потребуются следующие инструменты:

3ds Max (я использую 2009 х86) должно работать на версиях: 2009-2013
Ninja Ripper v1.1.4 (новая версия 1.2.7b)
ninja_importer v1.3

1. Настройка рипера. Распаковываем содержимое архива в любую папку. Запускаем программу.



Извлекается ВСЯ доступная информация о вершинах модели (позиция, все текстурные координаты, нормали, веса, BLENDWEIGHT, BLENDINDICES, BINORMAL, TANGENT), индексы, текстуры, шейдеры. Теоретически, можно импортировать и эту доп. информацию в 3д редактор!
Поддержка D3D11, D3D9, D3D8 (обрабатываются не все методы/техники, но должно работать в 95% игр).

Target (DX8, DX9, DX11 application) (выбор приложения/игры для рипа):
Exe - поле для ввода прямого пути для исполняемого файла приложения/игры
Arg - поле для ввода дополнительных параметров запуска для исполняемого файла
Dir - поле для ввода прямого пути к папке содержащего исполняемый файл (подставляется автоматически после выбора .exe, не нужно изменять)
No Wrapper - режим, при котором рипер будет пытаться запустить exe приложения/игры напрямую, используя для рипинга только intruder.dll, если этот режим не сработает (ничего не рипается) то нужно выбрать один из режимов "Врапера"!
Режимы "Врапера", при которых рипер скопирует d3dX.dll рипера в папку содержащую исполняемый файл приложения/игры, после этого окно рипера можно уже закрыть, далее можно запускать игру из любого места, скопированная рипером d3dX.dll будет автоматически "цеплятся" в игру при запуске любым способом, позволяя рипать модели. Таким образом более не нужно запускать сам рипер для этой игры.
D3D8 Wrapper - для игр на directx8
D3D9 Wrapper - для игр на directx9
D3D11 Wrapper - для игр на directx11


Примечание: удалять .dll из папки с игрой надо вручную (если это потребуется), настройки рипера отныне хранятся в реестре!

RUN - кнопка для запуска приложения/игры
Output Directory (директория для сохранения рипнутых моделей):
Dir - поле для ввода исходящей папки (автоматически подставляется), эту папку можно выбрать вручную, не забудьте поставить галку в Don't overwrite by EXE
Browse - кнопка для открытия папки выбранного исполняемого файла
Don't overwrite by EXE - при активировании этой функции выбор исполняемого файла не будет переписывать исходящую папку
Settings (настройки):
RIP - выбор кнопки, нажатием на которую будет производится рип
Forced to save (Textures) - выбор кнопки для форсированного сохранения только текстур

Выбираем игру которую хотим "рипать". В окне рипера жмём кнопку для выбора .exe игры.


Примечание: Добавить желаемую игру в окно рипера можно так же простым перетаскиванием .exe игры из окна "эксплорера" в окно рипера.

Выбираем режим, в котором будет производится "рип" игры. Режим зависит от того, на каком directx работает игра. Описание режимов:

• No Wrapper - режим, при котором рипер будет пытаться запустить exe приложения/игры напрямую, используя для "рипинга" только intruder.dll, если этот режим не сработает (ничего не рипается) то нужно выбрать один из режимов "Врапера"!

Режимы "Врапера", при которых рипер копирует d3dX.dll рипера в папку содержащую исполняемый файл приложения/игры, после этого окно рипера можно уже закрыть, далее можно запускать игру из любого места, скопированная рипером d3dX.dll будет автоматически цепляться в игру при запуске любым способом, позволяя "рипать" модели. Таким образом более не нужно запускать сам рипер для этой игры.
• D3D8 Wrapper - для игр на directx8
• D3D9 Wrapper - для игр на directx9
• D3D11 Wrapper - для игр на directx11


Примечание: Удалять .dll-ки из папки с игрой надо вручную (если это потребуется), настройки рипера отныне хранятся в реестре. (в старой версии рипера настройки хранились в папке с рипером)

Запускаем игру нажатием на кнопку Run:


2. Процесс "рипа" игры. После запуска игры и выбора нужного места нажимаем на кнопку "рипа", по умолчанию это клавиша F10. После нажатия F10 игра "подвиснет" на секунду, далее игра чуть "дёрнется" и снова зависнет на какое-то время (около 5-25 секунд). Продолжительность "рипа" зависит от "качества" игры и мощности компьютера. Во время процесса рипа игры в папке с игрой где расположен её .exe создаётся папка с моделями в формате .rip и текстурами в формате .dds.


Нажатием на кнопку рипа текстур (по умолчанию F9) "рипаются" только текстуры и сохраняются так же в папку с игрой туда где расположен .exe.
О завершении процесса рипа можно узнать по "отвиснувшей" игре.
Стоит так же учитывать, что в некоторых играх процесс рипа "вешает" всю игру, т.е. после завершения рипа и "отвисания" игры можно продолжить с того же места, с которого игра "зависла". Однако есть и такие игры, которые продолжают выполняться даже во время рипа и после окончания процесса вы можете въехать в бок какому-нибудь внедорожнику, а соперники будут далеко впереди.

3. Импортирование модели в 3ds max. Открываем 3ds max. В меню MAXScript > Run Script. выбираем скрипт ninja_importer.ms, откроется окно:


Для импорта модели жмём кнопку "Обзор":


Выбираем .rip файл, и жмём "Открыть". Модель загрузится в 3ds max. Если результат вас не устроил измените режим Vertex Layout импорта с Auto на Manual, откроются дополнительные настройки для импорта:


Приложу так же картинку для наглядного понимания что за цифры и за что они отвечают (цвета/зоны на картинке ниже соответствуют цветам на картинке выше):


На этой картинке показан шаблон данных .rip файла. Из шаблона следует: зелёная зона (модель), синяя зона (нормали), оранжевая зона (uv, текстурные координаты), подробнее:

данные вершин (сама модель) строится по первым трём значениям (00=x, 01=y, 02=z), так же эти цифры соответствуют тому, что есть в импортере, т.о. 00=0=x, 01=1=y, 02=2=z. Значения эти в импортере можно изменить на какие угодно цифры, но в 99,99% игр эти значения остаются неизменными, и лучше их вообще не трогать
данные нормалей (для групп сглаживания моделей, соответствует цифрам 03, 04, 05) - в текущей версии не закончено, изменение значений не даст результатов
uv, текстурные координаты - представляются двумя цифрами (06, 07 или 07, 08 или 24, 25), а не тремя как в случае с вершинами или нормалями - в 80% игр остаются неизменными, но бывают игры (например: Battlefield: Bad Company 2 или NFS: Run) где необходимо изменять эти значения, а иногда значения даже заходят в зону "нормалей" (т.е. могут быть 03, 04), но никогда не заходят в зону "вершин". Значения эти нужно менять простым перебором/подставлением. На картинке ниже — пример.


Таким образом выбрав модель, настроив процесс импортирования (uv, масштаб, поворот и т.д.) нажимаем кнопку IMPORT. Модель загружена в 3ds max.

Так же можно импортировать модели массово. Для этого нужно вместо Single в Source Select выбрать Group, а в RIP File Nums написать цифры соответствующие имени модели .rip в таком виде: 15,489,0, 50-85

После этого настроив процесс импортирования жмём IMPORT, все файлы соответствующие написанным цифрам импортируются в 3ds max.

Читайте также: