CG in Games tosyk's blog

22Окт/12105

How to use Ninja Ripper

Русский / English

Официальная страница поддержки на cgig.ru/forum.

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

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

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

  • 3ds Max (я использую 2009 х86) должно работать на версиях: 2009-2013
  • Ninja Ripper v1.1.0 (рипер) Автор: blackninja [страница]
  • ninja_importer v1.3 (скрипт для импорта в 3ds max) Автор: blackninja [скачать]

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, откроется окно:

Показать описание функций импортера »

  • Source select (выбор источника и режима импорта):
    • Group - режим для импорта группы файлов
    • Single - режим для импорта файлов по-одному
    • List File - режим для импорта файлов через файл-список .lst, который содержит список всех моделей одного рипа
    • Input Dir/File - источник импорта, файл или папка (в зависимости от выбранного режима)
    • RIP File Nums - поле для ввода номеров файлов для импорта (для режима Group), формат ввода: 0-15, 589, 67
  • Vertex Format (выбор режима построения модели):
    • Auto - режим для автоматического определения групп данных (вершины, нормали, uv-координаты), подходит для большинства игр
    • Manual - режим для ручного определения групп данных, необходим для импорта моделей из новых игр (преимущественно directx11)
    • Position (x,y,z) - поля для ввода группы данных определяющих положение вершин модели, даже в ручном режиме эти параметры в 99% игр остаются неизменными
    • Normal (x,y,z) - поля для ввода группы данных определяющих направление нормалей каждой вершины модели (находятся в доработке)
    • TexCoord (u,v) - поля для ввода группы данных определяющих текстурные координаты модели, один из важнейших параметров импорта. Для игр, импорт которых не позволяет получить правильные uv-координаты, пара uv всегда подбирается перебором. На данный момент выявлено, что пары не могут превышать цифру 50, т.е. могут быть 6-7 или 18-19 или 24-25 или 39-40. В очень редких случаях пары uv могут быть 3-4 или 4-5 или 5-6, что входит в пределы "поля определения нормалей", а так же 8-6 или 12-11, что идёт в разрез со здравым смыслом, но тем не менее может быть.
  • Transformations (трансформации):
    • Scale - масштаб импортируемой модели
    • Rotate X - поворот по оси импортируемой модели
  • Tex.0 File Level - выбор номера текстуры, которая будет присвоена модели после импорта
  • Flip UV Vertical - инвертировать расположение uv по вертикали
  • IMPORT - кнопка для начала процесса импорта

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

Выбираем .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.

Примечание: Следите за тем чтобы файлов не было очень много, или перенесите текстуры в отдельную папку: бывает такое, что огромное количество текстур, которые ложатся на импортированные объекты перегружают 3ds max и он "падает/закрывается" с ошибкой.

4. О текстурах. Текстурами всегда являются .dds файлы. Они автоматически загружаются в 3ds max. Стоит учесть, что каждой модели соответствует несколько текстур: например есть модель Mesh_0000.rip, ей могу соответствовать несколько текстур с именами Tex_0000_1.dds, Tex_0000_2.dds, Tex_0000_3.dds и т.д. В 3ds max можно загрузить только одну из эти текстур. Какая текстура будет загружена выбирается в имортере функцией Tex.Num изменением цифры.

Примечание: Если вы используете программы генераторы "превью" для .dds файлов в Windows (я использую Mystic Thumbs) то при рипе игр на dx11 такие .dds не будут показывать мини-превью, всё потому-что они имеют неправильный заголовок файла, данная проблема пока не решена.

5. Результат. Результаты некоторых рипов из игр Battlefield: Bad Company 2, Battlefield 3, NFS: Run, Expendables 2:

Комментарии (105) Пинги (0)
  1. Ребята, у меня папка с рипами не создаётся. Нажимаю F10, игр подвисает на 10 секунд, и всё. Ни одна модель не рипется. Что делать?

  2. Тремор, это в какой игре?

  3. Не загружаюся .dds

  4. Хотел рипнуть Аврору из World of Warships но не получается, Ninja Ripper лишь создает папки и текстовые документы в output derectory. Пробовал Intruder inject, D3D8/9/11. В чем может быть причина ?

  5. Кирилл, насколько я понимаю рипер заблочен в игре, поэтому пользуются инструментами для извлечение. посмотри тут: http://forum.xentax.com/viewtopic.php?f=16&t=12567

  6. importer не видит dds файлы, так что наложить текстуры не представляется возможным

  7. Ыбгылды, да, бывает такое. это не ошибка рипера, это особенность игры: некоторые игры используют UV для текстуры во втором канале. проверь есть ли в папке с рип файлами такие же объекты, возможно на них наложится текстура.
    p.s. например на объекты из мафии2 текстуры никогда не накладываются при импортере. почитай внимательно туториал, возможно ты не указываешь правильную цифру в поле Tex. Num. так же можно наложить текстуры руками, в большинстве случаев это не доставляет особого труда.

  8. запускаю игру, выбрасывает и пишет «подозрительная программа» что с этим делать?

  9. Kaka, на win10?

  10. У меня такая проблема, хочу достать модели из Paladins, а вашу прогу нашел на одном из американских форумов. Так вот, указываю путь до Paladins.exe, выбираю Inturder inject, нажимаю Run. Вроде все грузит, но в итоге вылезает ошибка Failed to initialize assembly file. Такое же происходит и когда я выбираю другой режим

  11. Андрей (Lowenn), может не тот exe? если игра онлайн то ниндзя может быть заблокирован разработчиком. лучше написать на форум и приложить лог.

  12. Пробую потрошить battlefield3 – текстуры получаются а .rip-ы после преобразования сторонними утилитами (2 варианта rip2obj) выглядят как точки на одной линии. Фаром посмотрел исходный .rip, похоже что 2 из 3-х координат действительно =0. Пробовал dx11.

  13. вопрос: ничего не произойдет плохого, если игра использует VAC или другие меры борьбы с читерами?

  14. MtMB, нет гарантии от бана. но случаев бана от использования рипера я пока не встречал.

  15. Tosyk, окей, спасибо


Leave a comment

(required)

Нет обратных ссылок на эту запись.