3d Ripper UV Repair

3d Ripper UV Repair

Русский

В этой статье я объясню как восстановить текстурные координаты у игровых объектов «снятых» при помощи программы 3d Ripper.

После использования 3d ripper‘a многие столкнулись с проблемой потерянных текстурных координат у «рипнутых» моделей. Однако uv-координаты никуда не пропадали. Они присутствуют на модели, но скрыты от глаз в отличном от 1-ого текстурном канале. Для восстановления uv-координат у моделей из большинства игр я написал скрипт для 3ds max, который призван решить проблему «отсутствующих» uv.

скачать скрипт (download script)

Для импорта *.3dr файлов советую всегда пользоваться такими настройками, Recommended values для каждой игры выбирать свой:

Спойлер

0. Как запустить скрипт. Открыть 3ds max. Нажать на пункт меню MAXScript и нажать на Run Script…

Выбрать в открывшемся окне скрипт uv-repair-tools.ms и открыть его.

Откроется окно скрипта:

Скрипт подходит для 3ds max любой версии от 9 до 2012. Цифра в скобках означает uv-канал из которого восстанавливаются текстурные координаты. Название игр ничего не значит, написаны они в скрипте потому, что это были первые игры в которых я обнаружил uv-координаты в соответствующих каналах (в скобках).

Восстановление uv-координат состоит из двух этапов.

1. Определение uv-канала. Для определения в каком uv-канале находятся текстурные координаты можно воспользоваться модификатором Unwrap UVW и перейти к пункту 2. А можно затекстурить объект и поочерёдно выполнять пункт 2.

2. Нажать на кнопку. В этом пункте нужно нажать на кнопку. Если через модификатор в 3ds max вы точно узнали в каком uv-канале находятся текстурные координаты, то нажмите на кнопку соответствующую uv-каналу.

Если выбрали поочерёдное нажатие то тут всё просто: поочерёдно нажимайте на каждую кнопку пока не увидите, что текстура встала ровно на модели. После завершения преобразования объект автоматически преобразуется в Editable Poly.

После того как uv-координаты восстановлены попробуйте этот способ ещё на нескольких объектах. Бывает, что в одной и той же игре текстурные координаты у разных объектов находятся в разных uv-каналах. Для определения выбирайте разные типы объектов: главный персонаж, статические объекты, анимированные объекты, оружие, стекло, растительность, монстры, глаза, лампы (сами лампочки/свет), волосы и т.д. Если уверены, что тот или иной тип объектов имеет один и тот же uv-канал то можете выделить группу (иногда все) объекты и нажать на соответствующую кнопку.

ВНИМАНИЕ: В скрипте содержатся непонятные ошибки. Не стоит пренебрегать многократным нажатием на разные (и на одну и ту же) кнопки. Во время нажатия на кнопку с объектом происходят определённые преобразования, в которых участвуют как модификаторы и встроенный скриптовый язык так и луч с венеры отражённый в болотном газе.

3. Это интересно. Существуют игры, в которых uv-координаты действительно теряются. Для их получения можно попробовать следующее:

  • «рипнуть» объект из скриптовой сцены;
  • «рипнуть» модель с другого ракурса или другой игровой локации;
  • перед «рипом» отключить все эффекты оставив тем не менее макс. детализацию объектов;

Бывает и такое, что 3d ripper не справляется и «рипается» только куски уровня/объекта. Пример Mafia: The City of Lost Heaven. Как ни пытался на моей конфигурации компьютера ничего кроме персонажа и ландшафта «рипнуть» не удалось.

В некоторых играх разработчики используют анимацию (или их «подложку») текстурных координат. Пример Bad Company 2. Мало того, что объекты имеют различные каналы с координатами (определил 6 и 8), так ещё и координаты некоторых объектов смещены/уменьшены. Приходится выправлять руками.

Случается и так, что координаты восстановить не удаётся ни при каких условиях (0,1%), тут уж ничего не поделать.

Просьба: Если у какой нибудь игры вы определили uv-канал с текстурными координатами, не поленитесь напечатать название и номер uv-канала ниже в комментариях. В дальнейшем я возможно расширю инструментарий и информативность скрипта.

p.s.: я так же выкладываю сэмпл: в файле cod-bo-sample.max uv-координаты оригинальные, в файле cod-bo-sample-f.max uv-координаты исправлены. Текстуры прилагаются.

скачать пример

61 thoughts on “3d Ripper UV Repair

  1. Класс !!! Статья просто отпад, скоро попробую на тех играх которые уже думал не вскрыть никогда, большое спасибо за статью, она реал пригодиться всем!

  2. А раньше люди сами рисовали развёртки ) Ну что же, теперь нужно поблагодарить автора! Tosyk огромнейшее спасибо!!!

  3. рисование развёрток очень полезный навык,
    сам раньше этим занимался 🙂
    спасибо за обратную связь.

  4. нет ли совета ,как мне достать файлы упокаванные в .ar ?
    Просто хочется перенести гоночный трек из игры midtown madness 2 в 3dmax.

  5. Tosyk, А ты случайно не умеешь захватывать сцену из эмулятора psx2 ? Рускоязычных статей нигде нет.

  6. Fixer, сцену захватить можно, но эмулятор использует какую то странную систему слоёв для отображения картинки, поэтому у всех рипнутых моделей отсутствует глубина, т.е модели плоские, никак не исправить это

  7. текстуры тоже нельзя
    если не говорить о рипе, то можно попробывать вскрыть саму игры напряму спеуиализированными программами
    что за игра?

  8. The warriors, там 1 .wad архив, но его вродь многие пытались вскрыть…

  9. Есть такая игра Lost:Via Domus. Как я ни пытался ничего не вышло с ней. Там действительно теряются развертки?

  10. HaCKer_UTD, да действительно
    ещё тот же движок используется в биовульф и ещё в нескольких играх развёртку получить не удаётся никак, либо модель искажена

  11. HaCKer_UTD, мне не удавалось риппером получить развёртку
    скажи какими настройками и какой версией пользовался
    в т-позу сам выправлял? потому что риппер этого не умеет

  12. Есть ещё один интересный формат архивов, — .viv использовался в серии игр про бонда на ps2

  13. Fixer, viv как и big это стандартный архив Electronic Arts, кинь один архив сюда, я поковыряю его

  14. Он открывался Dragon Unpaker’ом но там все файлы обозваны как в сцене у 3д риппера, при этом все файлы без разрешений))

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

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