CG in Games tosyk's blog

22Окт/12113

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:

Комментарии (113) Пинги (0)
  1. очень долго импортирует , всего 40000 rip файлов, а загружает уже несколько часов…

  2. Надеюсь выглядеть будет как в игре? Если модель состоит из тысячи частей, они нормально экспортируются и будут так же как оригинал ?(на тех же координатах?)

  3. ебаный сайт не отображает сообщения ну и хрень зря только время трачу на написание сообщений

  4. ой, упс, оказывается отображает ))) только еле нашел свои сообщения)) может кто-нибудь случайно удалить мое сообщение выше? я думал не работает сайт 🙂

  5. «« Новее записи» перемещает на старые записи)


Leave a comment

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