IPB

>

MetroEX - универсальный инструмент для работы с ресурсами игр серии Метро

 
 iOrange
сообщение 22.02.2019, 19:21
Сообщение #341


Половина землекопа
**************

Куратор темы
Сообщений: 1813
Регистрация: 30.03.2010
Из: Planet Earth
Пользователь №: 13811



(IMG:https://images.gameru.net/image/direct/f00e707647a32ce.png)

Комплексная программа для работы с ресурсами игр серии 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, но об этом будет позже.

Дальше прикладываю скриншоты к отмеченным изменениям:


MetroEX v0.41

В версии MetroEX v0.41 добавлены опции экспорта моделей
(IMG:https://images.gameru.net/thumb/1c995d6916d1cbd.png)

Так же добавлена кнопка на панели для включения / выключения показа колизии (если таковая есть).
примеры

Включено:
(IMG:https://images.gameru.net/thumb/00021eddee13f88.jpg)

Выключено:
(IMG:https://images.gameru.net/thumb/f442e23a7e5eb59.jpg)

Ну и злополучные деревья, кстати. Помню кто-то в этой теме на них жаловался.
Включено:
(IMG:https://images.gameru.net/thumb/052abc73297e4e4.jpg)

Выключено:
(IMG:https://images.gameru.net/thumb/14e7e8868eabf9e.jpg)


Ну и по традиции - небольшой бонус - теперь зажав правую кнопку мышки можно перемещать модель.
Так же на панели инструментов появилась кнопка сброса камеры, для удобства.

MetroEX v0.42

* Исправлен экспорт единичной модели в FBX (не всегда правильно реагировала на настройки)
+ Добавлена поддержка текстур и моделей Redux версий Метро (просмотр + экспорт)

MetroEX v0.45

+ Добавлена возможность модификации игровых архивов
+ Добавлено чтение шрифтовой базы
* Исправлена конвертация игровых локализаций назад в формат игры

MetroEX v0.45a

+ Переписана файловая система, теперь можно указать папку с игрой, и будут загружены абсолютно все игровые паки, включая патчи и ДЛЦ. Новые файлы будут заменять собой старые, так же как это делает игра.
+ Добавлен функционал экспорта набора текстур описывающих "поверхность" (альбедо, "бамп", карта нормалей, карта деталей)
+ Добавлена опция экспорта моделей для экспорта всех текстур "поверхности"

(IMG:https://images.gameru.net/thumb/a91c489ad64e0b1.png)

(IMG:https://images.gameru.net/thumb/8b29aa0ba30fc96.jpg)

(IMG:https://images.gameru.net/thumb/22769ae5a05703c.png)


MetroEX v0.46

+ Добавлена возможность сохранить отдельную анимацию (by SkyLoader)
+ Добавлено отображение и экспортирование лодов у модели (если таковые имеются) (by SkyLoader)
+ Инструмент "Textures converter" был доработан и теперь может создавать текстуры для предыдущих версий Metro (обычные и Redux)
+ Сильно переработана подсистема чтения/записи игровых ресурсов (больше задел на будущее, но уже дает свои плоды)
+ Доработана файловая система (ФС). Теперь ФС правильно обрабатывает дубликаты файлов, а так же поддерживает архивы вплоть до последнего DLC.
+ Написан код позволяющий заменять файлы в файле config.bin, и сохранять измененный config.bin.
+ Добавлен инструмент для редактирования/замены/проверки шрифтов.

(IMG:https://images.gameru.net/thumb/72c3881efd4e615.png)

(IMG:https://images.gameru.net/thumb/c43a3f8dea9394b.png)

(IMG:https://images.gameru.net/thumb/5b8d7a215660c3d.png)

MetroEX v0.46a

* Исправлена загрузка всех архивов из папки игры (было поломано для старых версий игры)
* Улучшено качество отрисовки шрифтов в Font Preview.


MetroEX v0.47

+ Добавлена поддержка всех версий игр Metro и Arktika.1
* Исправлен просмотр анимаций
* Исправлен экспорт в OBJ (была неправильная настройка материалов)
* Улучшения стабильности


Программа предназначена только для личного пользования в ознакомительных целях!
Распространение извлеченных файлов и их содержимого за пределы вашего личного ПК - нарушение лицензионного соглашения.
Автор программы не несет ответственности за прямой или косвенный ущерб причиненный в результате неправомерного использования программы.


Дополнительный/алтернативный софт:

Программа для конвертирования текстур любых версий Метро от iOrange - MetroTC
http://s.gameru.net/metro/MetroTC.zip
Github репозиторий - https://github.com/iOrange/MetroTC
Описание

Встречайте MetroTC - комбайн-конвертер любых текстур всех версий Метро в одном флаконе.
Ваша задача - указать где лежат текстуры (или одна текстура) и дать команду "Convert!", и программа сама найдет в указанном месте все текстуры Метро, обработает, и выдаст DDS читаемый любыми редакторами и утилитами.

Отличительные особенности:
1) Поддержка всех версий игр серии Метро
2) Текстуры 512/1024/2048 (если присутствуют) собираются в один DDS со всем мипмапами и правильными свойствами
3) Программа умеет определять что текстура уже была сконвертированна, и потому ее можно "натравливать" на папки с частично конвертированными текстурами
4) Эксклюзив для Gameru.net (IMG:style_emoticons/default/rolleyes.gif)
5) Программа залита на сайт gameru.net, а потому ссылка не умрет (IMG:style_emoticons/default/cool.gif)

(IMG:https://images.gameru.net/thumb/e15d5150d10d5eb.png)


Распаковщик архивов Metro Exodus от abramcumner
https://yadi.sk/d/XhCjq0wVK_oAsQ

Конвертер для текстур эксодуса в .dds от Prodnik
https://yadi.sk/d/G1xL2FcYE4FlxQ
Перейти в начало страницы
 
 
 
Ответов
 Antnigm
сообщение 14.03.2019, 11:11
Сообщение #342


Опытный Геймер
*******

Группа: Участник
Сообщений: 198
Регистрация: 29.09.2010
Из: г. Шахты, Ростовская обл.
Пользователь №: 14096



Hellroon, я так понимаю, программа пока работает только с файлами, имеющими расширение .model
.mesh и .ph_model она не открывает. Если первое - просто элемент меши, который собирается потом в .model (так что его не обязательно вытаскивать), то второе - х.з. Физическая модель (?)
Ты как раз попытался ph_model открыть.
Перейти в начало страницы
 
 
 SkyLoader
сообщение 14.03.2019, 11:57
Сообщение #343


Почти Игроман
*********

Группа: Участник
Сообщений: 605
Регистрация: 03.05.2012
Пользователь №: 14742



Цитата(iOrange @ 14.03.2019, 08:30) *
* эта самая сортировка, огромному моему сожалению, занимает прилично времени (около 15 секунд), из-за огромного количества файлов в архиве. Я работаю над этим и постараюсь оптимизировать это. Заранее прошу прощения.

А оно столько времени занимает даже при использовании BeginUpdate()/EndUpdate()? Просто как-то довольно долго получается. У меня обычно быстро обрабатывает:
Пример
Код
this->treeSpawns->BeginUpdate();

// Очистка перед заполнением древа
this->treeSpawns->Nodes->Clear();
this->treeSpawns->SelectedNode = nullptr;

// Заполнение древа нодами
// ...

// Сортировка
this->treeSpawns->TreeViewNodeSorter = gcnew NodeSorter();
this->treeSpawns->Sort();

this->treeSpawns->EndUpdate();
Перейти в начало страницы
 
 
 iOrange
сообщение 14.03.2019, 16:39
Сообщение #344


Половина землекопа
**************

Куратор темы
Сообщений: 1813
Регистрация: 30.03.2010
Из: Planet Earth
Пользователь №: 13811



Цитата(SkyLoader @ 14.03.2019, 10:57) *
А оно столько времени занимает даже при использовании BeginUpdate()/EndUpdate()? Просто как-то довольно долго получается. У меня обычно быстро обрабатывает:

открой меня

Нет, при заполнении дерева я отключаю в нем сортировку и обновление
Код
this->treeView1->SuspendLayout();
this->treeView1->Sorted = false;
this->treeView1->TreeViewNodeSorter = nullptr;

Затем заполняю (это занимает около 0.7 секунд)
затем все включаю назад

Код
this->treeView1->Sorted = true;
this->treeView1->ResumeLayout();
this->treeView1->TreeViewNodeSorter = gcnew NodeSorter();


Кстати, Sort() вызывать не нужно, дерево реагирует на присвоение сортировщика и сразу сортируется.

Так вот вся основная работа происходит при присвоении сортировщика - тут мы и сидим около 15 секунд.
И все это внутри самого дерева.

Размер дерева - 203383 элементов (папки + файлы).

Я пока думаю над вариантами (отсортироваться самому перед заполнением дерева, переписать компонент дерева, т.д.)
Перейти в начало страницы
 
 
 slik
сообщение 14.03.2019, 16:41
Сообщение #345


Почти Игрок
**

Группа: Участник
Сообщений: 20
Регистрация: 02.11.2010
Из: /home/slik
Пользователь №: 14193



А on demand сортировки нет? Сортировать только то, что видно.
Перейти в начало страницы
 
 
 iOrange
сообщение 14.03.2019, 17:13
Сообщение #346


Половина землекопа
**************

Куратор темы
Сообщений: 1813
Регистрация: 30.03.2010
Из: Planet Earth
Пользователь №: 13811



Цитата(slik @ 14.03.2019, 15:41) *
А on demand сортировки нет? Сортировать только то, что видно.

Я исследую варианты оптимизации. Прошу прощения за неудобства.
Перейти в начало страницы
 
 
 SkyLoader
сообщение 14.03.2019, 19:51
Сообщение #347


Почти Игроман
*********

Группа: Участник
Сообщений: 605
Регистрация: 03.05.2012
Пользователь №: 14742



iOrange,
Цитата
SuspendLayout()

Это всё же не BeginUpdate() (IMG:style_emoticons/default/smile.gif) Применение предложенного мной варианта отключает переотрисовку древа при каждом действии, будь то добавление нода или сортировка. Потому что отрисовка получается дорогая, особенно если количество нодов растет с каждым разом.
Сейчас даже сравнил. BeginUpdate() выигрывает в скорости у SuspendLayout() как минимум в два раза. И, кстати, лучше это:
Код
this->treeView1->TreeViewNodeSorter = gcnew NodeSorter();

применить до окончания работ с древом, то бишь до вызова EndUpdate().
Перейти в начало страницы
 
 
 iOrange
сообщение 14.03.2019, 20:11
Сообщение #348


Половина землекопа
**************

Куратор темы
Сообщений: 1813
Регистрация: 30.03.2010
Из: Planet Earth
Пользователь №: 13811



Цитата(SkyLoader @ 14.03.2019, 18:51) *
Это всё же не BeginUpdate()

Это не имеет значения, заполнение дерева занимает 700ms всего.
А вот после заполнения дерева - я включаю сортировку, и именно она тупит.

Цитата(SkyLoader @ 14.03.2019, 18:51) *
рименить до окончания работ с древом, то бишь до вызова EndUpdate().

Посмотрите как работает сортировка дерева - оно само включает Update перед началом сортировки
Перейти в начало страницы
 
 
 SkyLoader
сообщение 14.03.2019, 20:27
Сообщение #349


Почти Игроман
*********

Группа: Участник
Сообщений: 605
Регистрация: 03.05.2012
Пользователь №: 14742



Цитата(iOrange @ 14.03.2019, 20:11) *
Это не имеет значения, заполнение дерева занимает 700ms всего.

Ну так если BeginUpdate() быстрее хоть на сколько-то, то почему бы и нет?

Цитата(iOrange @ 14.03.2019, 20:11) *
Цитата(SkyLoader @ 14.03.2019, 18:51) *
рименить до окончания работ с древом, то бишь до вызова EndUpdate().

Посмотрите как работает сортировка дерева - оно само включает Update перед началом сортировки

Видимо в случае в активным BeginUpdate() при Update всё-равно игнорируется отрисовка, потому что перемещение сортировки в пределы BeginUpdate()/EndUpdate() даже визуально на форме заметно.

Сообщение отредактировал SkyLoader - 14.03.2019, 20:28
Перейти в начало страницы
 
 
 iOrange
сообщение 14.03.2019, 20:41
Сообщение #350


Половина землекопа
**************

Куратор темы
Сообщений: 1813
Регистрация: 30.03.2010
Из: Planet Earth
Пользователь №: 13811



Цитата(SkyLoader @ 14.03.2019, 19:27) *
Ну так если BeginUpdate() быстрее хоть на сколько-то, то почему бы и нет?

Попробовал BeginUpdate/EndUpdate - время не поменялось.
В ваших тестах у вас сколько нодов было?

У меня в профайлере показывает что все время мы сидим в сортировке, отрисовка даже не вклинивается там

(IMG:https://images.gameru.net/thumb/49d6b4ce4ae2d76.png)
Перейти в начало страницы
 
 
 Thekello
сообщение 14.03.2019, 21:03
Сообщение #351


Геймер
******

Группа: Участник
Сообщений: 100
Регистрация: 02.03.2019
Из: Россия
Пользователь №: 30622



Добавьте пожалуйста в версию v3.0 выгрузку уровней (IMG:style_emoticons/default/cray.gif) умоляю (IMG:style_emoticons/default/cray.gif)
Перейти в начало страницы
 
 
 SkyLoader
сообщение 14.03.2019, 21:14
Сообщение #352


Почти Игроман
*********

Группа: Участник
Сообщений: 605
Регистрация: 03.05.2012
Пользователь №: 14742



Цитата(iOrange @ 14.03.2019, 20:41) *
В ваших тестах у вас сколько нодов было?

30000, но это без вложенных. Похоже, при добавлении вложенных нодов в корневые ноды, отрисовка отключается автоматически, так как корневая нода не раскрыта, поэтому сильного прироста не происходит. Значит надо думать над другими вариантами оптимизации. Например, сортировать дочерние ноды, когда пользователь раскрывает какой-либо родительский нод , или же сначала отсортировать массив путей к контенту(строк), а потом уже из сортированного массива путей формировать древо.
Перейти в начало страницы
 
 
 Hellroon
сообщение 15.03.2019, 00:17
Сообщение #353


Ветеран
*****

Группа: Участник
Сообщений: 80
Регистрация: 23.05.2016
Пользователь №: 24532



Цитата(Antnigm @ 14.03.2019, 11:11) *
Hellroon, я так понимаю, программа пока работает только с файлами, имеющими расширение .model
.mesh и .ph_model она не открывает. Если первое - просто элемент меши, который собирается потом в .model (так что его не обязательно вытаскивать), то второе - х.з. Физическая модель (?)
Ты как раз попытался ph_model открыть.


ах ну да, каюсь, не заметил что не одно и тоже

Сообщение отредактировал Hellroon - 15.03.2019, 00:19
Перейти в начало страницы
 
 
 iOrange
сообщение 15.03.2019, 08:53
Сообщение #354


Половина землекопа
**************

Куратор темы
Сообщений: 1813
Регистрация: 30.03.2010
Из: Planet Earth
Пользователь №: 13811



Так, для очищения совести, сделал патч-версию v0.29a.
Главное изменение - сортировка дерева теперь происходит только в момент раскрытия подпапки (и только раз!)
Перепробовав все возможные варианты (даже сортировка до заполнения в несколько потоков с восходящей склейкой) - этот вариант самы приемлемый оказался.
Это должно улучшить общие ощущения от программы и мое душевное спокойствие.

За идею - благодарите slik, я лишь вернулся к ней перепробовав разные способы оптимизации сортировки всех 203383 элементов.

В качестве небольшого "извинения" за неудобства - я добавил простейшую возможность прослушивать звуки прямо из программы. Очень спартанский функционал - Play / Stop.

http://s.gameru.net/metro/MetroEX_v029a.zip

(IMG:https://images.gameru.net/thumb/9f8ddf072af3e7d.png)
Перейти в начало страницы
 
 
 Antnigm
сообщение 15.03.2019, 13:38
Сообщение #355


Опытный Геймер
*******

Группа: Участник
Сообщений: 198
Регистрация: 29.09.2010
Из: г. Шахты, Ростовская обл.
Пользователь №: 14096



Цитата(iOrange @ 15.03.2019, 08:53) *
В качестве небольшого "извинения" за неудобства - я добавил простейшую возможность прослушивать звуки прямо из программы. Очень спартанский функционал - Play / Stop.

А вот это очень удобно! В игре про нью-спартанцев спартанский функционал прям напрашивается. (IMG:style_emoticons/default/biggrin.gif)

Сообщение отредактировал Antnigm - 15.03.2019, 13:38
Перейти в начало страницы
 
 
 Raily
сообщение 15.03.2019, 15:56
Сообщение #356


Новичок
*

Группа: Участник
Сообщений: 8
Регистрация: 15.03.2019
Пользователь №: 30714



Здравствуйте iOrange, большое вам спасибо за программу, она очень классная.Хотел бы вас попросить, не могли бы вы пожалуйста заняться выгрузкой уровней?Уж очень хочется посмотреть на уровни Исхода (IMG:style_emoticons/default/smile.gif)
Перейти в начало страницы
 
 
 mmyr
сообщение 15.03.2019, 17:11
Сообщение #357


Почти Игрок
**

Группа: Участник
Сообщений: 19
Регистрация: 27.12.2018
Пользователь №: 30159



Цитата(Raily @ 15.03.2019, 14:56) *
Здравствуйте iOrange, большое вам спасибо за программу, она очень классная.Хотел бы вас попросить, не могли бы вы пожалуйста заняться выгрузкой уровней?Уж очень хочется посмотреть на уровни Исхода (IMG:style_emoticons/default/smile.gif)

Такая возможность будет, только немного позже
Перейти в начало страницы
 
 
 Antnigm
сообщение 16.03.2019, 14:22
Сообщение #358


Опытный Геймер
*******

Группа: Участник
Сообщений: 198
Регистрация: 29.09.2010
Из: г. Шахты, Ростовская обл.
Пользователь №: 14096



Вот и закончилось веселье.
Некто с ником Vandeley выложил на своём Youtube-канале видео по разбору утилиты и ссылку на эту тему. Остается теперь только дождаться требований 4A Games тему и все ссылки на программу удалить.
Очередной ютубер, не дружащий с головой, всё испортил. Дружно скажем ему спасибо.
видео
Тут что-то было

Впредь за рекламу буду раздавать предупреждения. Надеюсь на понимание.
autistic



Сообщение отредактировал autistic - 16.03.2019, 18:38
Перейти в начало страницы
 
 
 Flash_CSM
сообщение 16.03.2019, 14:36
Сообщение #359


Новичок
*

Группа: Участник
Сообщений: 4
Регистрация: 16.03.2019
Пользователь №: 30723



Цитата(Antnigm @ 16.03.2019, 13:22) *
Вот и закончилось веселье.
Некто с ником Vandeley выложил на своём Youtube-канале видео по разбору утилиты и ссылку на эту тему. Остается теперь только дождаться требований 4A Games тему и все ссылки на программу удалить.
Очередной ютубер, не дружащий с головой, всё испортил. Дружно скажем ему спасибо.
видео
Тут что-то было

Первый раз что ли для игр студии 4А делают программы для распаковки\экспорта?
Вряд ли будут проблемы с их стороны, имхо.
А вот благодаря видео наконец-то узнал о существовании столь нужного софта (большой респект автору). Ранее гуглил, но безрезультатно.

2 iOrange:
Можно ли добавить в прогу счётчик полигонов?

Сообщение отредактировал autistic - 16.03.2019, 18:33
Перейти в начало страницы
 
 
 apan65
сообщение 16.03.2019, 14:39
Сообщение #360


Почти Игрок
**

Группа: Участник
Сообщений: 17
Регистрация: 16.05.2018
Пользователь №: 29303



Никто ничего не будет требовать, а вот за то что всё обещают, но не выкладывают инструментарий конечно обидно.
Перейти в начало страницы
 
 
 Antnigm
сообщение 16.03.2019, 14:44
Сообщение #361


Опытный Геймер
*******

Группа: Участник
Сообщений: 198
Регистрация: 29.09.2010
Из: г. Шахты, Ростовская обл.
Пользователь №: 14096



Цитата(Flash_CSM @ 16.03.2019, 14:36) *
Первый раз что ли для игр студии 4А делают программы для распаковки\экспорта?
Вряд ли будут проблемы с их стороны, имхо.
А вот благодаря видео наконец-то узнал о существовании столь нужного софта (большой респект автору). Ранее гуглил, но безрезультатно.
Вот именно, что не первый с последующими требованиями прикрыть разработку утилит и тему форума. Ну, теперь ждём реакции разработчиков. Если, конечно, Ванделей не включит мозги и не удалит из своего видео ссылку на форум. Хотя и это уже наверное не поможет...
Насчет поиска - надо знать, где искать и уметь искать.
У меня всё. Автору ещё раз спасибо за такую полезную программу.

Сообщение отредактировал Antnigm - 16.03.2019, 14:45
Перейти в начало страницы
 
 
 
 

 
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 

Текстовая версия Сейчас: 31.10.2020, 04:53