CG in Games tosyk's blog

13Июл/1161

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) Пинги (0)
  1. xfire116, открыл регистрацию на сутки.
    http://cgig.ru/forum/

  2. Здраствуйте, можно еще раз открыть регистрацию ?

  3. deltaone, открыл регистрацию на сутки.
    http://cgig.ru/forum/

  4. спасибо, зарегистрировался …

  5. can you convert this post to english? please

  6. In this article I will explain how to restore the texture coordinates in game objects «captured» by the program 3d Ripper.
    After using 3d ripper, many faced the problem of lost texture coordinates from the «ripped» models. However, uv-coordinates do not disappear. They are present in the model, but hidden from the eye than the first texture channels. To restore uv-coordinates of the models of most of the games I have written a script for 3ds max, which aims to solve the problem of «missing» uv.
    To import files * .3dr advise always to use these settings, Recommended values for each game choose your:
    0. How to run a script. Open 3ds max. Click the MAXScript item and click on Run Script …
    Choose in the window script uv-repair-tools.ms and open it.
    Opens a script:
    The script is suitable for any version of 3ds max 9 to 2012. The number in parentheses indicates the uv-channel from which the restored texture coordinates. Name game means nothing, they are written in the script because it was the first game in which I found uv-coordinates in the corresponding channels (in parentheses).

    Restoring uv-coordinate consists of two stages.

    1. Determination of uv-channel. In order to determine in which uv-channel are texture coordinates, you can use the modifier Unwrap UVW and go to step 2. Is it possible for the texture of the object and alternately perform paragraph 2.

    2. Press the button. At this point, you need to press. If after a modifier in 3ds max, you know exactly in which uv-channel are texture coordinates, click on the button corresponding to uv-channel.

    If the selected queued press here everything is simple: alternately press each button until you see that the texture is properly seated on the model. After completion of the conversion object is automatically converted into Editable Poly.

    After the uv-coordinates restored try this method for a few more facilities. It happens that in the same game in different texture coordinates of objects are in different uv-channels. Choose to determine different types of objects: the main character, static objects, animated objects, weapons, glass, plants, monsters, eyes, lamps (light bulbs themselves / light), hair, etc. If you believe that a particular type of object is the same uv-channel you can select a group (sometimes all) of the objects and click on the appropriate button.

    NOTE: The script contains obscure errors. Do not neglect repeatedly pressing different (and the same) button. While pressing the button with the object is defined conversion, involving as modifiers and built-in scripting language and a beam reflected from Venus in the marsh gas.

    3. It’s fun. There are games in which uv-coordinates really lost. To receive them, you can try the following:

    «Ripnut» object from the script stage;
    «Ripnut» model from a different angle, or other gaming locations;
    to «Rip» to disable all effects leaving nonetheless max. details of facilities;

    Sometimes it happens that the 3d ripper can not cope and «rip» only pieces of level / object. Example Mafia: The City of Lost Heaven. No matter how trying on my computer configuration, and nothing but the character of the landscape «ripnut» failed.

    Some games developers use animation (or «substrate») texture coordinates. Example of Bad Company 2. Not only do the objects have different channels with the coordinates (determined 6 and 8), so also the coordinates of some objects are displaced / reduced. We have to straighten hands.

    It happens so that the position is not possible to recover under any conditions (0.1%), there’s nothing you can do about it.

    Request: If you have some sort of game you have defined channel with uv-texture coordinates, not too lazy to type the name and number of the uv-channel below in the comments. In the future I the opportunity to expand the tools and the information content of the script.

    ps: I also spread the sample: file cod-bo-sample.max uv-coordinates of the original, the file cod-bo-sample-f.max uv-coordinates fixed. Textures are attached.

  7. darko – try to use google chrome – browser, he can translait some not english web-pages.


Leave a comment

(required)

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