Страница 1 из 1

[ArmA 3] Разбинаривание ODOL v70...

Добавлено: 15 июл 2016, 10:13
T-Max
...в этой теме рассматриваться не будет.
РазвернутьПрелюдия. Возможно, самая важная часть...
Почему такое странное название? Потому, что я потратил достаточно времени и сил, чтобы найти способ вытаскивать модели, не прибегая к рипперам и не хочу, чтобы кто-то так же, как и я, шарился по интернетам в поисках заветной програмки. Краткое описание результатов поиска: утилиты есть, но за них нужно заплатить; нет гарантии, что они работают; есть описание структуры ODOL v68; имея некоторые знания обратной разработки, программирования и оксиген, можно разобраться в структуре и 70-ой версии. Но мне лень, я и так потратил слишком много времени на снятие защиты с ехе, вышедшего одновременно с выходом дополнения Арех (при этом, товарищи из CODEX уже всё сделали, лол).
Вот еще замечание. В "новых" дополнениях, разработчик использует зашифрованную версию всем известного формата pbo - ebo. Вскрыть его нельзя (или просто утилит в свободном доступе нет), так что о вытаскивании "сырых" игровых материалов - приходится только мечтать. Пока...
В этой теме я предлагаю делиться опытом полного вытаскивания моделей со всеми необходимыми ресурсами (текстуры, uv развёртка, звуки, что еще там нужно?) потому, что имея на руках, к примеру, obj файлик, ничто не составляет труда скомпилировать модельку в требуемом формате для любой игры, а не только Арма-Арма.
РазвернутьТех. часть
Вот как делаю я. Я скачал 2 версии игры, по 20 гб каждая. Первая - официальная - нужна для доступа к воркшопу. Вторая - с торрентов - по сути является репаком и там внутри есть кряк (Арма3 использует так называемый Steam Stub (new #3) и, вдобавок, TLS коллбеки, так что утилитка Steamless, которую можно найти на просторах интернета - становится бесполезной, т.к. она не работает с TLS таблицей. Но даже после пропатчивания у меня не удалось получить ехе, который будет запускаться. Короче, я это дело бросил, нет у меня на это времени). Этот кряк позволяет запускать игру без стима (а на самом деле, с эмулятором, который идёт в комплекте) и с поддержкой NinjaRipper.
Далее, я запускаю крякнутую игру через NR, захожу в 3ден эдитор, выбираю Virtual Reality(на этой карте нет ничего, кроме куба геометрии карты - просто рай для захвата), ставлю интересующую меня модельку и рипаю её. НО. NR бьёт текстуры, затеняет или еще что-то там. Не важно. Для взятия текстур можно использовать Intel GPA (доступны версии x86, x64) - работает примерно так же. При анализе можно вытащить текстуры в формате bmp (в Арме DDS BC1 headless - фотошоп их не открывает, WTV тоже) и сохранить их в том формате, что нужно. И они не затенены - что очень офигенно. Также, в GPA есть возможность предпросмотра геометрии модели и возможность экспортировать её в формат obj - но не радуйтесь, на модели нет UV развёртки, хотя, если нужно посмотреть чему принаджит текстура, очень полезно.
Как вытаскивать звуки я пока, к сожалению, не придумал, так что просто записываю звук стрельбы, а далее очищаю его от шумов в Audacity. (Собственно, любой редактор звуков подойдёт).
РазвернутьИмпортирование, обработка модели
В 3дс Мах импортируем .rip файлы с помощью скрипта в режиме auto. При одном захвате (одно нажатие кнопки захвата в игре) захватывается 3 или 4 копии игровых моделей. Что это такое? Это LOD-модели (Level Of Details), которые используются для снижения нагрузки на видеосистему - чем дальше моделька от точки рендеринга, тем меньшее качество она должна иметь, тем меньше процессорного времени тратится на её обработку, тем выше производительность игры (LOD модели - явление частое, к примеру, используется во всех КоД с 4 части точно). LOD захватываются в порядке убывания качества. Поэтому, нас интересует не более 30 первых мешей. (Захватывал АКМ с голого персонажа - и вовсе в первой десятке). Геометрия есть, текстуры есть. Осталось поправить UV-развёртку. Она, к сожалению, импортируется раз в 10000 больше, чем хотелось бы. Я экспериментировал с полем UV x [YYY] в скрипте для импорта, при значении в 0.0001 или 0.00001 получал развёртку, центр которой был в (0;0), но она была чуть меньше, чем надо. Т.к. я не особо владею Мах'ом, опишу, как я поступаю в Maya 2016:
Беру меш, открываю окно UV->UV Editor, выделяю все UV (держа ПКМ, выбрать UV) и скейлю их до тех пор, пока они не станут заполнять один квадрат текстуры. Затем, если развёртка квадратная, применяю нормализацию (Polygons->Normalize) - тогда Майа сама проскейлит развёртку так, чтобы она полностью заполнила квадрат текстуры. Остаётся только проверить, чтобы всё находилось на своих местах и переместить\проскейлить отдельные элементы, в случае, если что-то не совпадает.

Как я заметил, каждая игра использует собственную логику для работы с Normal, Specular, Detail, Cosine картами. Все они нужны для того, чтобы ваша моделька не выглядела, словно выпиленная из дерева, чтобы была игра света\тени и вообще, чтобы такие люди как я получали зрительный оргазм от внешнего вида модели, а не от геймплея :) Поэтому, для работы с такими картами придётся определить что и на каком канале находится, а затем сделать аналогично тому, как это реализовано в конкретной игре. Если будет интересно, могу описать то, что я делал, к примеру, для КоД4.
Чтобы не быть голословным, вот несколько скриншотов в качестве доказательства. Высказывайте замечания, делитесь опытом. Буду только рад.
РазвернутьПара скриншотов
proof_1.png
proof_3.png
Портировал АКМ в КоД4 с оптимизацией текстур конкретно под эту игру.
Портировал АКМ в КоД4 с оптимизацией текстур конкретно под эту игру.

Re: [ArmA 3] Разбинаривание ODOL v70...

Добавлено: 15 июл 2016, 20:21
Tosyk
привет, скинь пару rip файлов.

Re: [ArmA 3] Разбинаривание ODOL v70...

Добавлено: 16 июл 2016, 07:11
T-Max
Пожалуйста.

Re: [ArmA 3] Разбинаривание ODOL v70...

Добавлено: 17 июл 2016, 10:47
Tosyk
в общем-то я не понимаю в чём главный вопрос этой темы. как я понял у тебя всё получилось вытащить/рипнуть. Я провери .rip файл и там всё на месте, рипает всю информацию, uv - да, большие, но это единственная проблема. Так как раздел называется "Вскрытие игровых моделей" не думаю, что тут уместно обсуждение звуков.

Re: [ArmA 3] Разбинаривание ODOL v70...

Добавлено: 04 сен 2016, 10:54
Man232
Раньше была программа от 'микеры' но он с... захотел бабло за это и сейчас нет её..

А тот-кто купил не хочет делится..