Внимание! Статья носит только ознакомительный характер. Нарушение авторского права - преступление. Пожалуйста, уважайте закон и разработчиков.
Каждый из игроделов, проходя какую-нибудь игру, задумывается о том, что хорошо бы получить графику/музыку из этой самой игрушкой. Некоторые ищут ресурсы на форумах, а некоторые сами их и выдергивают. Как? Сейчас я поделюсь своим опытом по данной теме. Надеюсь вам будет интересно.
FlashЧаще всего появляется желание вытащить графику именно из Flash игр, по понятным причинам (красивая авторская графика, оригинальный стиль, плавная анимация etc..).
Sothink SWF DecompilerЯ долго мучал всякие стремные программки, пока не нашел нормального декомпилятора, имя ему -
Sothink SWF Decompiler.
Программа платная и стоит $79.99, но есть триал 30-дневка, а еще можно получить версию 5.5 нелегальным путем. (За ключом в ЛС, я сотни лет гуглил).
На самом деле Sothink SWF Decompiler очень многофункционален. Им можно дергать абсолютно все ресурсы SWF-файла, вплоть до кода. Также имеется экпорт во FLA-исходник, но использовать его за основу игры у вас не получится (но я, например, делал переводы).
Итак, приступим к практике. Что мы имеем? SWF файл и запущенный декомпилятор.
Интерфес программы выглядит так:Справа – панель всех ресурсов флешки, как видно там же отображаются фрэймы, AC, кнопки, музыка и прочее…
Но вы ведь пришли сюда не на скриншоты любоваться, так? Приступим к делу.
Растровая графикаПоищем глазами пункт
Image, кликнем по папке и увидим превьюшки всех файлов растровой графики, задействованных в игре.
Отмечаем нужные галочкой и жмем

.
Открывается окно детальной настройки, выбираем нужные и радуемся спрайтам в нужной вам папочке.
Векторная графикаНо что делать, если графика в игре – векторная, что очень типично для флэш?
Тут придется попотеть и обзавестись Adobe Flash нужной вам версии.
В Sothink SWF Decompiler векторая графика хранится в папках
Sprite и
Shape соответственно. Извлечь её можно в трех форматах: SWF, GLS, FLA. Первые два нам не подходят, потому что нам надо получить спрайт в стандартном формате растровой графики. Жмем FLA, ждем экспорта и открываем полученный *FLA файл в Adobe Flash. Меняем в спрайте то, что нужно поменять (все, что угодно, зависит целиком от вас). И жмем File-Export-Image, если спрайт статичный и File-Export-Movie, если анимация. Для анимации необходимо выбрать любой из форматов с припиской Sequence, что означает разложить покадрово.
P.S.: Есть еще один вариант (без Adobe Flash) - делать скриншоты из превью ( в программе есть спец.кнопочка над превью-окошком, для сохранения скриншота).
С графикой во флеш разобрались, с остальным все просто (точно так же, как с растровой графикой).
3D игрыВ 3D играх графика предоставлена 3D-моделями и текстурами, наложенными на них. Модели нас не интересуют, а вот текстурки с радостью выдернем.
Вариант0 – свободнолежащие ресурсы.
Иногда разработчики настолько ленивы, что совсем не прячут игровых ресурсов, рассчитывая на честность или нубство пользователя. Но мы-то хитрее и всегда поковыряем папку с игрой.
Итак, открываем мы папку и о боже! TGA текстуры лежат и ждут, пока ты их оттуда заберешь. Такое бывает, но редко. (например RE4). Также, иногда разрабы просто меняют разрешение функицей «переименовать», попробуйте пооткрывать подозрительные файлы различными редакторами.
Варианты, написанные выше это редкие исключения. Чаще всего разработчики используют свои форматы/технологии, тогда нужно поискать специальные программы для того, чтобы их сконвертировать в нормальный формат.
Вариант 1 – дергать на лету.Программ, умеющих такое, немного. Я использую
TexMod.
TexMod также позволяет делать моды, заменяющие текстуры в игре, но статья не об этом.
Итак, начнем.
Запускаем программу, переключаемся на вкладку «Logging Mode»
В окне «Target Application» указываем при помощи опции Browse путь к файлу игры.
Примерно так:
В «Output Folder» указываем паку, куда будут сохраняться текстуры. Указываем формат (я рекомендую TGA, т.к. маленькая степень сжатия и поддержка прозрачности).
Жмем «Run» …
Запускается игра в режиме отлова, листаем текстуры кнопками Num+ и Num-, жмем назначенную кнопку, чтобы текстура сохранилась в нужном вам формате в нужной вам папке (превью отображается в левом верхнем углу, причем, если поставить галочку в Replace Texture, то выбранная вами текстура в игре заменится зеленым). Всё очень просто и удобно.
Вариант 2 – анпакеры.Есть такая категория программ, называющихся Unpackers. Они пишутся как раз для того, чтобы потрошить игровые архивы. Анпакеры бывают универсальные или специально заточенные под определенные игры.
УниверсальныеНачнем с универсальных. К таким относится:
WinRAR, 7-Zip, PKZip, PAKScape…Смешно, но иногда разработчики очень ленивы и пакуют ресурсы в обычные архивы(ZIP,7-ZIP, RAR...) и тупо меняют расширение функцией «Переименовать». Новое разрешение может быть любым, например, PAK(HOMM, Quake).
P.S.: Есть еще более ленивые разработчики, о которых сказано в варианте 0.
Dragon Unpacker Это лучший на мой взгляд универсальный анпакер, он поддерживает действительно огромное кол-во игр.
(Полный список можно посмотреть
здесь(оф.сайт))
Я почти уверен, что вы нашли нужную вам игру в списке, но делать, если нет?
Запускаем Dragon Unpacker, жмем
Ctrl-H. Ловим такое окошко:

Во вкладке
Formats выбираем нужные форматы (кроме графики дергает и музыку и видео), во вкладке
Search выбираем нужный файл и жмем
Search. После окончания поиска, если что-то найдется, жмем ОК, выделяем нужные файлы, затем клик правой кнопкой и выбираем пункт
Extract to.. и указываем нужную папку. Готово.
Скачать последнюю версию Dragon Unpacker можно
тут (оф.сайт)l. (кстати, исходный код тоже доступен для скачивания)
Если универсальные анпакеры не помогают, то ищите на тематических форумах программы для вскрытия ресурсов.
Например, на
http://www.extractor.ru/ или на фан-сайтах нужной игры..
Другие платформыJ2MEСамая обычная телефонная ява. Сама игра состоит из JAD и JAR файлов. Первый – тупо установочник и телефоны его (почти все, кроме самсунгов) не требуют. JAR – сама игра, ничто иное как переименованный zip-архив.
Раньше ресурсы совсем не паковались, но теперь ведущие разрабы усиленно их прячут. Скажу сразу, что игры от Gameloft (обычно графика у них довольно красивая) потрошить ни у кого не получалось. Легче всего дергать ресурсы из игр от китайских разработчиков и любителей, в их потрошении помогает великий и могучий вин-рар.
HALOНо есть и хитрозапакованные ресурсы, вытащить их нам поможет Halo. (
вот ссылка на оф. страницу программы, кто найдет ссылку для скачивания последней версии, буду благодарен).
Для запуска Halo нужна ява-машина.
Итак, запускаем, жмем
Ctrl-N выбираем JAR-файл, переключаемся на вкладку
Resource Explorer, жмем
Extract all images. Программа ищет графику и музыку во всех файлах в архиве.
После окончания распаковки появляются вкладки с содержимым всех файлов архива, там ищем нужные спрайты и посредством правого клика вытаскиваем их в нужную папку.
AndroidЕще одна мобильная платформа, но гораздо мощнее, поэтому ресурсы из игр на адроиде более привлекательны, чем на яве.
Никто не придумывает велосипед заного, поэтому APK=ZIP. Распаковываем в отдельную папочку и ковыряем папки
res и
assets, там и зарыта графика (а музыка в
raw).
Почти все разработчики больше никак не пакуют ресурсы (помимо Gameloft и EA).
Но это в небольших играх, все большие игры требуют кэш. Т.е. APK – тупо установочник, а все ресурсы качаются с инета через вай-фай. Этим можно воспользоваться. Обычно кэш качается на флеш-карту и достаточно после установки просто поковырять новую папочку с кэшем. Но если кэш ставиться на телефон, придется приложить усилия. Необходимо получить root-права к своему смартфону и программой root-explorer (или подобной) ковыряем память телефона.
Внимание! Ничего не удаляйте и не изменяйте, а то запорите прошивку к чертям.iOSК сожалению, я не имею макбука и всего того ПО, что мне бы помогло разобраться в структуре игры на iOS, но иногда до ресурсов можно добраться 7-Zipом -)
Это не финальная версия статьи/FAQ задавайте интересующие вас вопросы и они будут освещены в первом посте.