Ho to use Ninja Ripper

Ho to use Ninja Ripper

Русский / English

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

[Обновлено 2017 Февраль 05: Добавлен рип из браузера Chrome]

В статье подробно описан процесс «рипа» моделей, текстур и шейдеров из игр использующих в качестве API directx версий 6, 7, 8, 9, 10, 11 (как 32 так и 64 битных версий) и импортирования «рипнутых» моделей/текстур в 3ds max, Noesis или Blender.

Внимание: рипер не поддерживает и не будет поддерживать рип моделей с сохранением их игровых позиций как это делает 3D Ripped DX.

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

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

  • 3ds Max (я использую 2009 х86) должно работать на версиях 2009+
  • Ninja Ripper v1.6.0 (рипер) Автор: blackninja [страница]
  • GIMS Evo Importer (3ds max import script) Автор: 3Doomer [страница]
  • [не обязательно] ninja_importer v1.3 (3ds max скрипт) Автор: blackninja [скачать]
  • [не обязательно] Noesis v4+ (3d model viewer/converter) Автор: Rich W. [страница]
  • [не обязательно] Blender v2.49b (3d modeling software) Автор: Blender Foundation [скачать]

1. Настройка рипера. Распаковываем содержимое архива в любую папку. Существует две версии рипера: для игр использующих 32-битную (в папке x86) или 64-битную (в папке x64)  архитекстуру. Запускаем программу из папки, которая соответствует битности архитектуры игры. Старые игры в осно

Примечание: Современные игры (2016+) используют в основном 64-битную архитектуру в то время как старые игры работают на 64-битной архитектуре. Некоторые игры работают на OpenGL, с которым рипер не работает и работать не будет.

Все возможности рипера:

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

  • Target (DX8, DX9, DX11 application) (выбор приложения/игры для рипа):
    • Exe — поле для ввода прямого пути для исполняемого файла приложения/игры;
    • Arg — поле для ввода дополнительных параметров запуска для исполняемого файла;
    • Dir — поле для ввода прямого пути к папке содержащего исполняемый файл (подставляется автоматически после выбора .exe, не обязательно изменять);
  • Intruder Inject — режим, при котором рипер будет пытаться запустить exe приложения/игры напрямую, используя для рипинга только intruder.dll, если этот режим не сработает (ничего не рипается) то нужно выбрать один из режимов «Врапера»;
  • Режимы «Врапера», при которых рипер скопирует d3dX.dll рипера в папку содержащую исполняемый файл приложения/игры, после этого окно рипера можно уже закрыть (не для рипа из firefox — его нужно постоянно запускать через рипер), далее можно запускать игру из любого места, скопированная рипером d3dX.dll будет автоматически «цеплятся» в игру при запуске любым способом, позволяя рипать модели. Таким образом более не нужно запускать сам рипер для этой игры. Доступны следующие режимы «Врапера»:
    • D3D8 Wrapper — для игр на directx8;
    • D3D9 Wrapper — для игр на directx9;
    • D3D11 Wrapper — для игр на directx11;
    • DDRAW Wrapper — для игр на directx 6/7;

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

  • Кнопка RUN — кнопка для запуска приложения/игры;
  • Output Directory (директория для сохранения рипнутых моделей):
    • Dir — поле для ввода исходящей папки (автоматически подставляется), эту папку можно выбрать вручную, не забудьте поставить галку в Don’t change the path;
    • Browse — кнопка для открытия папки выбранного исполняемого файла;
    • Don’t change the path — при активировании этой функции выбор исполняемого файла не будет переписывать исходящую папку;
  • Кнопка Settings (настройки):
    • Rip Hotkeys — в этом разделе можно поменять кнопки для рипа разных ресурсов:
      • All — рипает все модели и текстуры;
      • Textures — рипает только текстуры;
      • Forced — рипает модели и текстуры пока не истечёт таймер (по умолчанию 3 секунды), т.е. по сути кнопка рипа нажимается несколько раз;
      • Альтернативно можно использовать кнопки Alt, Shift или Ctrl в комбинации с хоткеями;
    • Save Shaders (for experts) — отметьте для рипа шейдеров (в некоторых случаях игра может запускаться очень долго или не запускаться вообще);
    • Forсed Rip Interval [X] second — таймер для функции Forced;
    • Save DirectDraw Surfaces (DX1-DX7) — рипать текстуры или спрайты из игр 95-99 лет;
  • Кнопка About/Donate — если вам нравится эта программа и вы бы хотели дальнейшего развития пожалуйста поддержите разработчиков!
  • Кнопка Exit — закрывает рипер.

Выбираем игру которую хотим «рипать». В окне рипера жмём кнопку ‘…’ для выбора .exe игры:

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

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

  • No Wrapper — режим, при котором рипер будет пытаться запустить exe приложения/игры напрямую, используя для «рипинга» только intruder.dll, если этот режим не сработает (ничего не рипается) то нужно выбрать один из режимов «Врапера»
  • Intruder Inject — режим, при котором рипер будет пытаться запустить exe приложения/игры напрямую, используя для рипинга только intruder.dll, если этот режим не сработает (ничего не рипается) то нужно выбрать один из режимов «Врапера»;
  • Режимы «Врапера», при которых рипер скопирует d3dX.dll рипера в папку содержащую исполняемый файл приложения/игры, после этого окно рипера можно уже закрыть (не для рипа из firefox — его нужно постоянно запускать через рипер), далее можно запускать игру из любого места, скопированная рипером d3dX.dll будет автоматически «цеплятся» в игру при запуске любым способом, позволяя рипать модели. Таким образом более не нужно запускать сам рипер для этой игры. Доступны следующие режимы «Врапера»:
    • D3D8 Wrapper — для игр на directx8;
    • D3D9 Wrapper — для игр на directx9;
    • D3D11 Wrapper — для игр на directx11;
    • DDRAW Wrapper — для игр на directx 6/7;

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

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

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

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

3. Импортирование модели в 3ds max. Существует 2 версии импортера .rip файлов в 3ds max:

  • первый (далее: старый) скрипт написан самим автором рипера, имеет набор стандартных функций. Единственная сложность в его использовании это получение правильных uv-координат;
  • второй (далее: новый) импортер — GIMS Evo — имеет очень обширный набор возможностей, одной из основных, по моему мнению, его возможностей является импортирование весов и генерирование костей. Я рекомендую пользоваться именно им. Новую версию для web-установки всегда можно скачать по этой ссылке.

Главное окно нового импортера выглядит так:

Процесс установки GIMS Evo:

  • Распакуйте папку «scripts» в папку 3ds max с заменой файлов;
  • Распакуйте папку «GIMS» с заменой файлов папку:
    • если у вас Windows Vista/7/8: «<DRIVE>:\Users\<USER_NAME>\AppData\Local\»
    • Windows 2K/XP: «<DRIVE>:\Documents and Settings\<USER_NAME>\Application Data\»
    • Если появляются ошибки при запуске GIMS Evo, запустите этот скрипт для получения пути установки:
      • dl.dropbox.com/u/18649105/GIMS/ShowEGIMSPath.ms
  • Запустите 3ds max (убедившись, что ваше интернет соединение работает) и нажмите кнопку установки GIMS Evo в панели Utilities в 3ds max.
Спойлер

Раздел Scene:

  • Кнопка Bones — выбрать вариант использования информации о весах из .rip файлов, будут ли создаваться или нет кости вместе с модификатором Skin и просчитывать ли веса на импортированную модель:
    • Don’t create — кости и веса не будут импортированы;
    • Create at zero — кости будут созданы в центре объекта, так же Skin модификатор и веса будут добавлены на импортируемую модель;
    • Create at calculated position — кости будут созданы в области своего влияния на объект, так же Skin модификатор и веса будут добавлены на импортируемую модель;
    • Reuse scene bones — уже имеющиеся в сцене кости будут использовать при импортировании объектов;
    • Split the mesh by skinning when possible — импортируемый объект может быть разрезан в зависимости от установленных в rip-файле весов;
  • Flip Faces — инвертировать полигоны;
  • Scale — масштаб объекта;
  • Position — поменять XYZ позицию объекта в сцене;
  • Rotation — поменять XYZ поворот объекта в сцене;
  • Miror — отразить объект по XYZ;

Раздел UV coordinates:

  • Flip U — инвертировать UV координаты по U;
  • Flip V — инвертировать UV координаты по V;
  • Offset U/V — установить сдвиг UV координат по U или V;
  • Scale U/V — установить масштаб UV координат по U или V;

Раздел Texture Indices. Взгляните на индексы текстур, которые относятся (по ID) к импортируемым объектам. Например Tex_0001_0.dds имеет цифру 0 перед «.dds», что обычно определяет эту текстуру как диффузную (цветную/основную):

  • Diffuse — какая текстура будет использовать в качестве диффузной карты по индексу;
  • Bump — какая текстура будет использовать в качестве карты объёма по индексу;
  • Specular — какая текстура будет использовать в качестве карты отражений по индексу;

Раздел Import. Этот раздел для настроек непосредственно импорта моделей:

  • Mode — импортировать один меш (Single File) или группу мешей (Path, IDs);
  • Engine — выбрать настройки для импорта из особого движка. Для большинства случаев нужно использовать Other engine. Однако вы можете выбрать из следующих движков: Frostbite 2, Frostbite 3, Frostbite 3.5, YETI engine. На каком движке сделана игра часто можно узнать со страницы о ней на оф. сайте или на Википедии;
  • Path — путь к .rip файлам. Нажмите на иконку папки чтобы выбрать путь;
  • File IDs — номер/номера меша для импорта. Формат может быть таким: «0-15, 589, 67» или просто «1» (без кавычек);
  • Import — нажмите чтобы начать импорт;

Раздел Preset. В самом низу окна:

  • Раскрывающийся список с названием пресета (шаблона) — можно выбрать/сохранить шаблон настроек импортера;
  • Remove — удалить выбранный шаблон;
  • (i) — кнопка информации об импортере.

Для того чтобы импортировать .rip модель в 3ds max выберите режим импортирования, задайте путь к файлам и нажмите на кнопку импорта. Все возможные uv координаты теперь загружаются на импортируемую модель в разные uv каналы если их несколько.

Спойлер
Открываем 3ds max. В меню MAXScript > Run Script… выбираем скрипт ninja_ripper_import_1.3.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 и он «падает/закрывается» с ошибкой.

Модели (иногда и текстуры) могут быть так же загружены в Blender или Noesis:

  • для импорта моделей в Blender используйте этот python-скрипт (написанный Akaito);
  • скрипт для импортирования в Noesis находится в архиве с NinjaRipper;

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

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

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

151 thoughts on “Ho to use Ninja Ripper

  1. Исправлюсь: (не досмотрел)
    в ячейках Scale: ставим 0.000244
    тоесть должно получится
    Scale:U 0.000244
    Scale:V 0.000244

  2. Hi, i read your blog occasionally and i own a similar one
    and i was just curious if you get a lot of spam remarks?
    If so how do you prevent it, any plugin or anything you can recommend?
    I get so much lately it’s driving me mad so any assistance is very
    much appreciated.

  3. Heya i’m for the first time here. I came across this board and I find It truly useful &
    it helped me out much. I hope to give something back and help others like you aided me.

  4. Ну что могу сказать… софтина работает. НО! Происходит «отзеркаливание» текстур» и все надписи летят к чертям. Текстуры рипаются перевернутыми и зеркальными. Крайне туго разобраться какая текстура какому мешу принадлежит — нумерация идет «от балды» и номер меша никак не связан с номером текстуры. Все это я считаю серьезной недоработкой.

  5. Владимир, рипер задумывался как универсальный. К сожалению игры разработаны не универсально – разработчики придумывают совершенно невообразимые способы вывода графических ресурсов на экран монитора. Невозможно поддержать все эти способы в рипере, даже если бы его разрабатывали несколько разработчиков на зарплате. Поэтому мы имеем в итоге инструмент, который позволяет делать то, чего не позволяют делать никто. А полученные ресурсы нужно уже руками докручивать до приемлемого состояния. Кстати, у нас на дискорд сервере есть раздел посвещённый рипингу: https://discord.gg/MhPXEwjruR

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *