Дисклеймер
Так как я не являюсь профессиональным программистом, не создаю игры, 3D модели и прочее, а только делюсь своим личным опытом – то этот материал для новичков, которым интересна данная тематика. В нём могут быть ошибки, неточности и заблуждения. Если вам есть, что добавить – милости прошу.
Итак, у вас есть большое желание сделать ремейк игры, перенести её на новый движок или просто посмотреть, а как оно сделано.
Для начала надо выбрать игру, я предлагаю обратить внимание на игры эпохи PS2 и X-box original. Самый «распространённый» движок на тот момент был RenderWare.
Кроме всем известных GTA 3, VC, SA и Manhunter 1-2, на нём были сделаны такие “шедевры” как Бой с тенью 1-2, Меченосец и … Антикиллер.
Мой выбор, в своё время пал на DarkWatch.
Первая моя попытка вытащить модели, была с использованием Ninja Ripper.
Последнюю версию на тот момент 2.0.13, я приобрел у создателя через discord.
Но всплыл нюанс – рип с PCSX2 выходил ужасно кривой, с которым пришлось бы долго возиться, чтобы получить хоть что-то удобоваримое. В Blender рип импортировался с нарушением пропорций, есть несколько видео как это исправить, в том числе и на канале автора рипера, но напряжно.
А вот с версии x-box очень даже хорошо (с правильными пропорциями) рипались из Cxbx Reloaded. Но опять проблема, чтобы рипнуть надо пройти игру, а на моём ПК игра вылетала в самых неожиданных местах через каждые 5 минут. В конце концов терпение лопнуло, когда я не смог за неделю пройти один жалкий уровень. В тот момент я решил сменить подход, собственно, про него я и буду рассказывать.
В большинстве своём все ресурсы игры хранятся в архивах, может повезти если распаковать получиться через обычный архиватор. Если не повезло, придётся искать распаковщик – самый известный это QuickBMS к нему есть множество плагинов. Для Darkwatch же мне подошёл MultiEx-Commander 4.3.0.
Распаковав все файлы .pck с образа x-box версии, я получил кучу папок и файлов, которые ничуть не облегчили понимание, а чем собственно их открывать.
Добрые самаритяне написали кучу плагинов для Noesis позволяющие прочитать модель и экспортировать её в разные форматы.
Но для Darkwatchтакого плагина не было, попытки использовать ПО которым модифицируют GTA не помогли. Пока я не наткнулся на RWAnalyze.
RWAnalyze – позволяет заглянуть внутрь файлов “моделей”, в моём случае это были файлы .rx1
В этих файлах хранятся текстуры модели, mesh (verticesи faces, они же точки и грани), кости скелета и его веса. RWAnalyze строит дерево чанков (звеньев цепи) и показывает, где в файле какие данные начинаются и как распределены.
Обязательный инструмент для исследования моделей ModelResearcher — сейчас автор выложил в бесплатный доступ Pro версию.
https://mr.game-viewer.org
В ней вы можете методом тыка, или по уже имеющимся данным воссоздать 3D модель, вручную указав откуда брать данные координат точек, граней, UV.
Как пользоваться этим ПО есть руководства на сайте автора. Если будет много желающих (сильно сомневаюсь) напишу подробней как использовать.
Спустя несколько дней, разобравшись в нескольких моделях с помощью ModelResearcher, пришло понимание, что это займет много времени, да и хотелось автоматизировать процесс. Вот тогда я решил написать свой плагин для Noesis.
Плагины на Python, процесс не сильно сложный в плане алгоритмов, по крайней мере мне так казалось в начале, но затруднение вызывает по сути отсутствующие нормальные инструкции и руководства. На ютубе нашёлся только один автор, который разбирал процесс создания плагина. С горем пополам я приступил к созданию, что заняло достаточно много времени.
Удалось обработать 99% моделей, но этого мне показалось мало и захотелось до кучи ещё добавить анимации моделям. И здесь всё стало сильно сложнее — кости, скелеты, кватернионы.
Если вдруг найдутся люди которым это интересно – напишу как я писал плагин и сложности с которыми столкнулся.
ссылка на оригинал статьи https://habr.com/ru/articles/873564/
Добавить комментарий