MetroEX - универсальный инструмент для работы с ресурсами игр серии Метро |
Здравствуйте, гость ( Авторизация | Регистрация )
MetroEX - универсальный инструмент для работы с ресурсами игр серии Метро |
22.02.2019, 19:21
Сообщение
#321
|
|
BFG9000 owner
Половина землекопа Репутация: 247 Куратор темы Сообщений: 1813 Регистрация: 30.03.2010 |
Комплексная программа для работы с ресурсами игр серии Metro (+ Arktika.1) от iOrange - MetroEX http://s.gameru.net/metro/MetroEX_v047.zip Github репозиторий - временно недоступен Чейнджлог по версиям: MetroEX v0.3 1) Исправлен зум моделей колесиком мышки на Windows 7/8 (автор - abramcumner) 2) Добавлена фильтрация дерева файлов (автор - slik) 3) Известные типы файлов теперь отображаются со своими иконками (автор - Shoker) 4) config.bin теперь можно раскрыть и просматривать / извлекать файлы находящиеся в нем (автор - Shoker) 5) Добавлена инфо-панель для текстур и моделей, которая показывает полезную информацию о выбранном файле 6) Экспорт модели вместе с ее анимациями в FBX! * 7) Возможность просмотра анимаций прямо в программе (данный функционал не до конца доработан, учтите) * При единичном экспорте в FBX модель всегда экспортируется с анимациями. При пакетном извлечении можно отключить экспорт анимаций. Экспорт с анимациями может занять некоторое время. Я постараюсь оптимизировать это, но похоже что проблема в FBX SDK. Так выглядит проигрывание анимации в программе: А так выглядит результат экспорта открытый в 3Ds Max: MetroEX v0.4 были добавлены доп. опции экспорта в FBX: * Export animations - определяет нужно ли вообще экспортировать анимации. Полезно если вам просто нужна модель в FBX, без анимаций * Animations to separate files - имеет смысл только в паре с предыдущей опцией, и при включении будет экспортировать анимационные треки в отдельные FBX файлы. Т.е. на выходе будет FBX файл с моделью и скелетом, и рядом с ним FBX файлы, по одному на анимацию. Попытка экспорта моделей с 11,000 анимаций все равно займет прилично времени, но при этом памяти будет потребляться не много, и даже при сбое - у вас останутся те файлы, что успели записаться. [1] Был доработан немного 3D просмотрщик моделей - теперь реализована "правильная" Arcball камера, так что вращать и рассматривать модели стало удобнее. Так же был добавлен режим отображения сетки полигонов поверх модели. [2] Добавлено окно отображения свойств модели. Там отображена вся информация о модели. Есть даже информация о том, кто и на каком компьютере создал эту модель, и имя оригинального файла. [3] Добавлено окно отображения свойств текстур, находящихся в текстурной базе. Полезно тем, что вы можете найти там дополнительные текстуры, которые на данный момент не экспортирует программа (бамп, детали...) [4] Добавлено окно настроек программы, настройки сохраняются в файл рядом в папку с программой. Пока там только настройки экспорта, но в будущем туда будут добавляться / выноситься больше настроек. [5] Реализована заргузка, отображение, и экспорт локализационных файлов. Экспорт производится в формат Excel 2003. [6] Добавлено меню инструментов, содержащее следующие тулзы: - [7] Конвертер текстур в формат Metro Exodus. Умеет конвертировать как одиночный файл, так и папку (с подпапками). - Конвертер локализационных файлов из формата Excel 2003 назад в формат Metro Exodus. - [8] Злополучная утилита для создания патч-архивов. Указываете где лежит папка content, куда сохранять результирующий архив, и жмете кнопку. Остально за вас сделает программа. Так же было переписано много кода, решались организационные вопросы, велись работы по функционалу, который войдет в v0.5, но об этом будет позже. Дальше прикладываю скриншоты к отмеченным изменениям: screenshots here MetroEX v0.41 В версии MetroEX v0.41 добавлены опции экспорта моделей Так же добавлена кнопка на панели для включения / выключения показа колизии (если таковая есть). примеры Ну и по традиции - небольшой бонус - теперь зажав правую кнопку мышки можно перемещать модель. Так же на панели инструментов появилась кнопка сброса камеры, для удобства. MetroEX v0.42 * Исправлен экспорт единичной модели в FBX (не всегда правильно реагировала на настройки) + Добавлена поддержка текстур и моделей Redux версий Метро (просмотр + экспорт) MetroEX v0.45 + Добавлена возможность модификации игровых архивов + Добавлено чтение шрифтовой базы * Исправлена конвертация игровых локализаций назад в формат игры MetroEX v0.45a + Переписана файловая система, теперь можно указать папку с игрой, и будут загружены абсолютно все игровые паки, включая патчи и ДЛЦ. Новые файлы будут заменять собой старые, так же как это делает игра. + Добавлен функционал экспорта набора текстур описывающих "поверхность" (альбедо, "бамп", карта нормалей, карта деталей) + Добавлена опция экспорта моделей для экспорта всех текстур "поверхности" MetroEX v0.46 + Добавлена возможность сохранить отдельную анимацию (by SkyLoader) + Добавлено отображение и экспортирование лодов у модели (если таковые имеются) (by SkyLoader) + Инструмент "Textures converter" был доработан и теперь может создавать текстуры для предыдущих версий Metro (обычные и Redux) + Сильно переработана подсистема чтения/записи игровых ресурсов (больше задел на будущее, но уже дает свои плоды) + Доработана файловая система (ФС). Теперь ФС правильно обрабатывает дубликаты файлов, а так же поддерживает архивы вплоть до последнего DLC. + Написан код позволяющий заменять файлы в файле config.bin, и сохранять измененный config.bin. + Добавлен инструмент для редактирования/замены/проверки шрифтов. MetroEX v0.46a * Исправлена загрузка всех архивов из папки игры (было поломано для старых версий игры) * Улучшено качество отрисовки шрифтов в Font Preview. MetroEX v0.47 + Добавлена поддержка всех версий игр Metro и Arktika.1 * Исправлен просмотр анимаций * Исправлен экспорт в OBJ (была неправильная настройка материалов) * Улучшения стабильности Программа предназначена только для личного пользования в ознакомительных целях! Распространение извлеченных файлов и их содержимого за пределы вашего личного ПК - нарушение лицензионного соглашения. Автор программы не несет ответственности за прямой или косвенный ущерб причиненный в результате неправомерного использования программы. Дополнительный/алтернативный софт: Программа для конвертирования текстур любых версий Метро от iOrange - MetroTC http://s.gameru.net/metro/MetroTC.zip Github репозиторий - Описание Встречайте MetroTC - комбайн-конвертер любых текстур всех версий Метро в одном флаконе. Ваша задача - указать где лежат текстуры (или одна текстура) и дать команду "Convert!", и программа сама найдет в указанном месте все текстуры Метро, обработает, и выдаст DDS читаемый любыми редакторами и утилитами. Отличительные особенности: 1) Поддержка всех версий игр серии Метро 2) Текстуры 512/1024/2048 (если присутствуют) собираются в один DDS со всем мипмапами и правильными свойствами 3) Программа умеет определять что текстура уже была сконвертированна, и потому ее можно "натравливать" на папки с частично конвертированными текстурами 4) Эксклюзив для Gameru.net 5) Программа залита на сайт gameru.net, а потому ссылка не умрет Распаковщик архивов Metro Exodus от abramcumner Конвертер для текстур эксодуса в .dds от Prodnik -------------------- Hello worlds!
|
 
|
|
|
|
10.03.2019, 20:24
Сообщение
#322
|
|
Игрок Репутация: 2 Группа: Участник Сообщений: 33 Регистрация: 06.03.2019 |
Формата .obj более чем достаточно для импорта геометрии, не понимаю в чем проблема. А .fbx на данный момент у меня тоже критует да, но нужно просто подождать версию 0.29, и думаю там всё будет работать. Проблема в obj, на некоторых моделях, с вывернутыми полигонами на частях тела всё ещё имеет место быть, у демона ( demon_m3 ), крылья, верхняя часть, и некоторые части шерсти наизнанку, у носача ( nosach ), на частях туловища у mantabat, ноги вывернуты, ну и так далее по мелочи, но сейчас уже, конечно не то что раньше было, у большинства моделей в obj с полигонами всё в порядке. Например демона ( из той папки ( demon_m3 ) не могу в FBX, вылетает прога, а в obj у него вывернуты полигоны на частях тушки. Конечно я уверен, что уважаемый iOrange в новых версиях программы, всё это поправит. |
 
|
|
10.03.2019, 22:25
Сообщение
#323
|
|
Геймер Репутация: 0 Группа: Участник Сообщений: 100 Регистрация: 02.03.2019 |
Ребята, кто-нибудь находил вагон для авроры(Купе)?Подскажите пожалуйста как папка называется и где находиться
и ещё фурнитуру к нему там кровати Сообщение отредактировал Thekello - 10.03.2019, 22:30 |
 
|
|
10.03.2019, 23:02
Сообщение
#324
|
|
Репутация: 0 Группа: Участник Сообщений: 2 Регистрация: 10.03.2019 |
|
 
|
|
10.03.2019, 23:32
Сообщение
#325
|
|
Репутация: 0 Группа: Участник Сообщений: 2 Регистрация: 10.03.2019 |
Ребята, кто-нибудь находил вагон для авроры(Купе)?Подскажите пожалуйста как папка называется и где находиться и ещё фурнитуру к нему там кровати dynamik/objects/vagon_pas -- базовая модель интерьера/экстерьера, дверь, сцепка static/vagon_pas -- опять модель экстерьера(без внутренностей), колесные тележки,окна static/sostav -- всякие внутренние детали(в т.ч. и для метровагонов) |
 
|
|
11.03.2019, 07:27
Сообщение
#326
|
|
BFG9000 owner
Половина землекопа Репутация: 247 Куратор темы Сообщений: 1813 Регистрация: 30.03.2010 |
Отчет по разработке - малозначительный для конечного пользователя, но огромный для меня - произошла смена технологий.
Раньше проект базировался на wxWidgets + OpenGL 3.3. Теперь проект переехал на WinForms + Direct3D 11.0. Для пользователей, как я уже писал, это будет малозаметно, но это был необходимый шаг для обеспечения дальнейшей успешной разработки. Здесь уже неоднократно просили те или иные улучшения юзабилити, и многи из них были либо тяжело воплотимы, либо же практически невозможны на прошлой платформе. На данный момент полностью воссоздана версия v0.28c Возьму день на отдохнуть , и полностью погружусь в раскопки скелетов, ибо пора бы уже версию v0.29 выпускать Так что всех кто ждет обновления - прошу извинить меня за растягивание, обещаю поднажать. Сообщение отредактировал iOrange - 11.03.2019, 07:28 -------------------- Hello worlds!
|
 
|
|
11.03.2019, 08:10
Сообщение
#327
|
|
Геймер Репутация: 0 Группа: Участник Сообщений: 100 Регистрация: 02.03.2019 |
Ребята, кто-нибудь находил вагон для авроры(Купе)?Подскажите пожалуйста как папка называется и где находиться и ещё фурнитуру к нему там кровати dynamik/objects/vagon_pas -- базовая модель интерьера/экстерьера, дверь, сцепка static/vagon_pas -- опять модель экстерьера(без внутренностей), колесные тележки,окна static/sostav -- всякие внутренние детали(в т.ч. и для метровагонов) Спасибо большое Отчет по разработке - малозначительный для конечного пользователя, но огромный для меня - произошла смена технологий. Раньше проект базировался на wxWidgets + OpenGL 3.3. Теперь проект переехал на WinForms + Direct3D 11.0. Для пользователей, как я уже писал, это будет малозаметно, но это был необходимый шаг для обеспечения дальнейшей успешной разработки. Здесь уже неоднократно просили те или иные улучшения юзабилити, и многи из них были либо тяжело воплотимы, либо же практически невозможны на прошлой платформе. На данный момент полностью воссоздана версия v0.28c Возьму день на отдохнуть , и полностью погружусь в раскопки скелетов, ибо пора бы уже версию v0.29 выпускать Так что всех кто ждет обновления - прошу извинить меня за растягивание, обещаю поднажать. Отлично , жду с нетерпением новой обновы) |
 
|
|
11.03.2019, 10:30
Сообщение
#328
|
|
Почти Игроман Репутация: 153 Группа: Участник Сообщений: 614 Награды: 4 Регистрация: 03.05.2012 |
Теперь проект переехал на WinForms + Direct3D 11.0. Всё же предлагаю добавить сортировку древа контента, ибо нужные текстуры адово искать, когда всё вразнобой. А раз WinForms, то предлагаю воспользоваться вариантом, который юзаю сам: Реализация Код ref class NodeSorter : public System::Collections::IComparer { public: virtual int Compare(Object^ x, Object^ y) { System::Windows::Forms::TreeNode^ left = safe_cast<System::Windows::Forms::TreeNode^>(x); System::Windows::Forms::TreeNode^ right = safe_cast<System::Windows::Forms::TreeNode^>(y); if (left->Nodes->Count) { if (right->Nodes->Count) return left->Text->CompareTo(right->Text); return false; } if (right->Nodes->Count) return true; return left->Text->CompareTo(right->Text); } }; // ref class NodeSorter Применение: После заполнения древа применить сортировку Код this->treeViewExample->TreeViewNodeSorter = gcnew NodeSorter(); this->treeViewExample->Sort(); P.S. Заметил, что экспорт в TGA сообщает об ошибке экспорта, даже если экспортировал текстуру. И также выдает ошибку, если отменить сохранения файла, закрыв окно выбора пути сохранения. Сообщение отредактировал SkyLoader - 11.03.2019, 10:31 |
 
|
|
11.03.2019, 10:34
Сообщение
#329
|
|
Опытный Геймер Репутация: 41 Группа: Участник Сообщений: 198 Награды: 2 Регистрация: 29.09.2010 |
Спасибо огромное автору. Теперь как минимум можно ресурсы использовать для творчества.
Небольшая просьба - можно, чтобы кроме normal map извлекалась и bump текстура? В последней содержатся карты блеска, отражений и т.п. |
 
|
|
11.03.2019, 17:05
Сообщение
#330
|
|
BFG9000 owner
Половина землекопа Репутация: 247 Куратор темы Сообщений: 1813 Регистрация: 30.03.2010 |
Всё же предлагаю добавить сортировку древа контента Да, как я и писал выше - подобные просьбы и толкнули меня на смену платформы. Теперь реализовывать их будет гораздо проще. Заметил, что экспорт в TGA сообщает об ошибке экспорта, даже если экспортировал текстуру. И также выдает ошибку, если отменить сохранения файла, закрыв окно выбора пути сохранения. Да, это исправлено. Спасибо. можно, чтобы кроме normal map извлекалась и bump текстура? В последней содержатся карты блеска, отражений и т.п. Как разберусь с материалами - так и добавлю. Пока даже нормармапы угадывать приходится. -------------------- Hello worlds!
|
 
|
|
12.03.2019, 00:08
Сообщение
#331
|
|
BFG9000 owner
Половина землекопа Репутация: 247 Куратор темы Сообщений: 1813 Регистрация: 30.03.2010 |
Кстати, спрошу вдруг кто натыкался - никто не находил в архивах шейдеры?
Я нашел только паки шейдеров для Dx11 рендера в патче. Но меня больше интересуют Dx12. Если кто чего видел - отпишите мне плиз. разбивка шейдерных паков на отдельные шейдеры Код use std::env; use std::fs::File; use std::io::prelude::*; fn read_u32(buf: &Vec<u8>, offset: usize) -> u32 { let a = buf[offset + 0] as u32; let b = buf[offset + 1] as u32; let c = buf[offset + 2] as u32; let d = buf[offset + 3] as u32; (a | (b << 8) | (c << 16) | (d << 24)) } fn main() { let args: Vec<String> = env::args().collect(); if args.len() == 2 { let file_name = &args[1]; let mut file = File::open(file_name).expect("file not found"); let mut content: Vec<u8> = Vec::new(); let file_size = file .read_to_end(&mut content) .expect("Can't read file content"); let mut shd_idx: u32 = 0; let mut offset: usize = 44; while offset < file_size { let dxbc: u32 = read_u32(&content, offset); let size = read_u32(&content, offset + 24) as usize; if dxbc == 0x43425844 { let shader_name = format!("{}{:04}.bin", "shd_", shd_idx); let mut shd_file = File::create(shader_name).expect("Can't create output file"); shd_file .write(&content[offset..(offset + size)]) .expect("Can't write to output file"); shd_file.sync_all().unwrap(); println!("Unpacking shader #{} of size {}", shd_idx, size); offset += size + 8; while content[offset] == 0 { offset = offset + 1; } shd_idx = shd_idx + 1; } else { // quit offset = file_size } } } } -------------------- Hello worlds!
|
 
|
|
12.03.2019, 08:51
Сообщение
#332
|
|
BFG9000 owner
Половина землекопа Репутация: 247 Куратор темы Сообщений: 1813 Регистрация: 30.03.2010 |
Немного прогресса.
Изначальный мой подход к чтению скелета был неверен, ибо это тоже reflection (бывает с дебаг инфой и без оной). Благодаря тому что у меня уже был написан костяк MetroReflection, чуть допилив его напильником получилось сделать универсальное и гибкое чтение скелетов. Теперь читаются и встроенные в модель скелеты (такие, например, у крутилок в главном меню). Осталось доразбираться с составными скелетами и будет версия v0.29 После которой я засяду за уже сами анимации. Скриншотик для затравки: -------------------- Hello worlds!
|
 
|
|
12.03.2019, 19:52
Сообщение
#333
|
|
Репутация: 0 Группа: Участник Сообщений: 2 Регистрация: 09.03.2019 |
|
 
|
|
13.03.2019, 05:22
Сообщение
#334
|
|
BFG9000 owner
Половина землекопа Репутация: 247 Куратор темы Сообщений: 1813 Регистрация: 30.03.2010 |
Уххх, мучаюсь я с этим скелетом.
Формат скелета большой и сложный (не то что в первом Метро 9 лет назад) К тому же наличие тех или иных полей зависит от версий и прочих флагов.... Но! Прокрасноглазив пару ночей до состояния я смог кой-чего наваять Например, вот Lurker, еще недавно крашивший программу при попытке экспорта в FBX: А вот .... хехе, интрига! Дайте мне денек на тесты-утряски, и будет версия v0.29 А я отсыпаться. -------------------- Hello worlds!
|
 
|
|
13.03.2019, 10:06
Сообщение
#335
|
|
Опытный Геймер Репутация: 41 Группа: Участник Сообщений: 198 Награды: 2 Регистрация: 29.09.2010 |
Что-то дофига косточек на грудь. В игре у неё, вроде, и "физики" особой нет. Хотя может просто не замечал. Тем временем уже первые кривые моды на сталкач подкатили. Сообщение отредактировал Antnigm - 13.03.2019, 10:16 |
 
|
|
13.03.2019, 10:37
Сообщение
#336
|
|
Продвинутый геймер Репутация: 53 Группа: Участник Сообщений: 265 Награды: 3 Регистрация: 22.02.2010 |
Что-то дофига косточек на грудь. Они на платок почти все. По идее в катсценах каких-нибудь более-менее юзаются, или просто чтобы он по ветру красиво развевался во время стартовой сцены на Каспии. -------------------- Официально разморожен
|
 
|
|
13.03.2019, 16:51
Сообщение
#337
|
|
Почти Игрок Репутация: 7 Группа: Участник Сообщений: 25 Регистрация: 09.03.2019 |
iOrange Скажи пожалуйста, а сделаешь ли ты утилиту, позволяющую запаковывать "измененные" файлы обратно в игру??
Я и мои друзья ждут с нетерпением этой тулзы... Сообщение отредактировал NiutoN - 13.03.2019, 16:51 |
 
|
|
13.03.2019, 17:39
Сообщение
#338
|
|
BFG9000 owner
Половина землекопа Репутация: 247 Куратор темы Сообщений: 1813 Регистрация: 30.03.2010 |
а сделаешь ли ты утилиту, позволяющую запаковывать "измененные" файлы обратно в игру?? Такой функционал планируется, но обещать на данный момент ничего особо не могу -------------------- Hello worlds!
|
 
|
|
14.03.2019, 08:30
Сообщение
#339
|
|
BFG9000 owner
Половина землекопа Репутация: 247 Куратор темы Сообщений: 1813 Регистрация: 30.03.2010 |
Итак, обещанная v0.29
Основные изменения: - смена платформы (с wxWidgets + OpenGL 3.3 на WinForms (CRL) + Direct3D 11.0) - загрузка любых скелетов (надеюсь) - экспорт в FBX со скелетом (теперь без падений (надеюсь)) - улучшена поддержка игровых текстур - улучшение юзабилити (текстуры можно склоллить "тягая" мышкой, можно включать-выключать альфу кнопкой на панели) - куча переписанного/дописанного кода для более правильной работы с игровыми форматами - долгожданная сортировка файлов и папок* * эта самая сортировка, огромному моему сожалению, занимает прилично времени (около 15 секунд), из-за огромного количества файлов в архиве. Я работаю над этим и постараюсь оптимизировать это. Заранее прошу прощения. Как всегда - рад всем отзывам / предложениям. Скриншот для порядку (хотя визуально мало что поменялось) Сообщение отредактировал iOrange - 14.03.2019, 08:30 -------------------- Hello worlds!
|
 
|
|
14.03.2019, 08:34
Сообщение
#340
|
|
Почти Игрок Репутация: 0 Группа: Участник Сообщений: 19 Регистрация: 27.12.2018 |
Простите, всё отлично работает Нужно было немного подождать.
Спасибо большое автору за его труды! Сообщение отредактировал mmyr - 14.03.2019, 08:38 |
 
|
|
14.03.2019, 10:22
Сообщение
#341
|
|
Ветеран Репутация: 2 Группа: Участник Сообщений: 80 Награды: 1 Регистрация: 23.05.2016 |
|
 
|
|
Текстовая версия | Сейчас: 26.04.2024, 22:19 |