Overview
Гайд устарел, по причине не актуальности Windows XP / 32 битной платформы / только DX9. Используйте Ninja RipperПолное руководство по выдиранию 3D пространства из игр работающих на 6/8/9 DirectX, при помощи программы 3D Ripper DXВнимание: не всем разработчикам игр нравится что “тырят” их ресурсы из игр, убедитесь что это мягко говоря законно, если результаты рипа будут использоваться в других проектах.
Правка 2к17+
Данная программа давно устарела и подходит в основном для XP и DirectX 9.
На современных системах, она практически бесползна. Сейчас предлгаю использовать Ninja Ripper, с ним на много легче, модели в большинстве случаев рипается в Т позе и возможно даже получить примерный развес. Но вы лишаетесь “сцены”. Все модели будут в 0 точке координат.
Описание термина “риппинг”
Риппинг – cкриншот игры но в 3D, захвачено будет всё что видно на данный момент на экране в виде фрейма + текстуры в dds и файлы шейдеров.
3D Ripper DX – та самая прога которая давно уже не обновлялась но всё равно пользуется большим спросом у модостроителей. На данный момент версия 1.8.2
Подготовка нужных программ
Что нам понадобится
- Microsoft Windows XP SP3
- 3D Ripper DX 1.5 – 1.8.2 версий
ссылка на скачку – yadi .sk/d/_TrbYB985qZYs
- 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 игры.
Глобальный мониторинг используется когда простой запуск не удаётся.
Щелкните правой кнопкой мыши по иконке в трее, чтобы выйти из режима глобального мониторинга.
В 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.
Примудрости
Перед снимком надо учитывать некоторые правила которые помогут получить максимально качественный снимок 3D пространства игры !
- Встанте строго параллельно к снимаемому объекту. Ореентируйтесь по стенам помещения, по домам, постройкам или что там ещё есть… если собираетесь рипнуть целую локациию.
- Установите по возможности камеру параллельно объектам, это то-же поможет сделать более ровный снимок.
- Посторайтесь что-бы снимаемая локация была полностью в поле видимости (здесь разумеется в выйгрыше те кто с широкоформатным монитором). Во многих играх окружение сразу же выгружается и некоторые объекты вы уже не увидите на снимке.
- По возможности создайте несколько снимков с разных ракурсов или на других локациях игры. Это пожет при выправлении текстур и выборе лучшего варианта снимка.
Мы нажали кнопку “Сделать снимок”
Так вот, встали как надо, установили камеру и готовы нажать сделать снимок. Жмём ! В левом верхнем углу появилась панелька на которой написано что-то вроде: сейчас производится снимок, это займёт примерно 5 минут и ниже полный путь к создаваемому снимку.
Да, для снимка некоторых современных игр требуется весьма значительное время. Например когда я тестировал на NFS Hot Pursuit на каждый снимок уходило примерно по 3,5 минуты, а то и даже 5 минут !
“Переваривание” полученного снимка.
Мучались, мучались и вот у нас есть снимок в формате 3dr и пачка текстур в формате DDS. Что-же дальше делать ? А вот что: надеюсь вы сообразили как поставить плагин импорта 3dr, для полного комплекта вам ещё понадобиться фиксилка координат текстур. Кидаем uv-repair-tools.msв папку …3ds Max 2010Scripts. Запускаем 3ds max, жмём “импорт” и указываем наш снимок.
С начала нам предложат указать параметры импорта:
Здесь может быть всего один рекомендуемый параметр что даже очень хорошо – выбираем его и жмём ок. Но бывает что рекомендуемых параметров 2, а то 4. Это происходит если снимок таки не снимался по правилам которые я описал выше. Из за этого придётся импортировать данный снимок столько раз, сколько есть рекомендуемых параметров.
Для начала выбирайте первый рек. парамерт, если все не подошли то оставьте эту опцию не выбранной.
[/table]
[/tr]
И что-же у нас импортнулось ?
Ну вот мы и импортировали своё творение… Удачно ? Тогда идём дальше…. посторайтесь выровнять ваш рип если он таки получился не очень сторго по осям координат, помните что центр координат это кокраз точка снимка. Сохраните только в формат *.max Это очень важный момент т.к. этот формат сохраняет совершенно всё включая дополнительные координаты текстур и прочую дрянь… Сохраните и сбросте 3ds max (reset). Откройте только-что сохранённый фрейм, скорее всего вам предложат указать папку с текстурами, укажите ему папку с получившимися после рипа dds файлами. Если повезёт все текстуры сразу встанут на свои места, а если нет можете увидеть или везде нормалеи место текстур или вообще кое где растянутые по кривым координатам текстуры.
Нам повезло с рипом
Если все текстуры сразу встали на свои места вам остаётся просто вырезать ненужное и править сам меш.
Нам не очень повезло с рипом
Место практически всех текстур видны нормалеи но они натянуты правильно, это пол беды, просто надо будет долго и муторно просматривать все рипнутые текстуры (а их бывает по 700 и более) и пробовать применять на меш. Для этого дела я рекомендую использовать прогу IrfanView, она заодно показывает какие текстуры вообще не пригодны для использования т.е. он напишет ошибка декодирования, а в браузере зачёркнутый круг место превью.
Какие-же мы неудачники…
Очень подробно я разберу самый тяжёлый случай с которым мне пришлось работать. Я рипал игру 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 и выбираем наш скрипт.
Открывается вот такое окошко.
Конвертация NormalMap
Добрая половина движков нового поколения используют normal map в которых преобладает жёлто-зелёный цвет, а в Source нужен сине-фиолетовый. Для простого изменения жёлтого на синий достаточно инвертировать синий канал т.к. там только чёрный цвет, а для того чтобы появился синий нужен ярко белый. Но это слишком приметивно, бывает нужно “развернуть” выпуклость или сменить тень. Как всё это сделать я постараюсь наглядно объяснить ниже.
Что нам понадобится:
Бесплатный Paint.Net и плагин к нему. Плагин можно скачать по этой ссылке
Кидаем плагин-dll в папку c:Program Files/Paint.NET/Effects/
Итоги и обещания…
Вот впрочем и все примудрости риппинга, как перегонять рипнутую и пофиксенную модель я уже не буду рассписывать. Тутор сыроват да и можно сказать альфа версия. Не судите строго, как появится время допишу и поправлю ошибки.
- Ещё будет статья о дополнительной проге TexMod которая может тырить текстуры из игр, кокраз пригодиться в случаях когда 3d ripper dx напортачит с текстурами. Тутор будет приписан тут.