Открытие GUI в Mass Effect 1

В заметке просмотр и извлечение элементов GUI (графического пользовательского интерфейса) из "Mass Effect 1".

Используемые программы:

В заметке рассматривается оригинальная "Mass Effect 1" (2007) на ПК.

GUI-овые элементы в игре находятся по пути: Mass Effect/BioGame/CookedPC/Packages/GUI. Они упакованы в формат файлов UPK (пакет ресурсов "Unreal Engine 3"). В этих UPK файлах они значатся под классом "BioSWF".

SWF это формат "Adobe Flash" ("Small Web Format"/"Shockwave Flash"), который может содержать в себе текст, изображения, звуки и анимации.

1) Для извлечения тех самых "BioSWF" располагаю "Unreal Package Extractor" (далее "UPExtractor") в корневой папке игры, то есть там, где находятся папки "Binaries", "BioGame", "data", "DLC", "Engine" и т.д.

2) Создаю новую папку, в которую будут извлекаться файлы из пакетов UPK, например "extractexport".

Изображение файлового менеджера с новой папкой и программой UPExtractor (extract.exe)
Изображение файлового менеджера с новой папкой и программой UPExtractor (extract.exe)

3) В командной строке задаётся такая команда: extract.exe -extract -game=mass -out=./extractexport -path= ./BioGame/CookedPC/Packages/GUI/GUI_PC_MainMenu.upk

Программа возвращает такой вывод в командную строку:

Found 4721 game files (257 skipped) in 376 folders at path "." Overriden version 491/1008 -> 491/90 Loading package: BioGame/CookedPC/Packages/GUI/GUI_PC_MainMenu.upk Ver: 491/90 E ngine: 3240 Names: 13 Exports: 1 Imports: 2 Game: 800002 Done ...

И создаёт в папке "extractexport" одноимённую распакованному пакету папку: "GUI_PC_MainMenu".

Открытие GUI в Mass Effect 1

Содержимое папки имеет такую структуру:

./ ├── ExportTable.txt ├── ImportTable.txt ├── NameTable.txt └── PCMainMenu.BioSWF

Из всех этих файлов потребен только "PCMainMenu.BioSWF".

4) Файл PCMainMenu.BioSWF — это обычный "Flash" файл, но первые 32 байта в нём лишние. Их можно-нужно удалить с помощью какого-нибудь HEX редактора. Я использую редактор "Bless" версии 0.6.3 от "Alexandros Frantzis".

В файле удаляются все байты до слова "CWS". Изменения сохраняются.

Изображение HEX редактора. В нём выделена область перед символами "CWS", которую нужно удалить
Изображение HEX редактора. В нём выделена область перед символами "CWS", которую нужно удалить

5) После этого можно задать, а можно и нет, файлу разрешение SWF вместо BioSWF.

6) Нужно открыть файл "PCMainMenu.SWF" с помощью "FFDec". Программа может запросить указать путь до "BioMassFont.swf" — отказываем.

Изображение ffdec с проигрываемой анимацией главного меню из Mass Effect

7) В боковом меню программы можно просмотреть используемые в файле изображения, основные формы, собранные спрайты и готовые кадры. Чтобы извлечь их, нужно выбрать нужный элемент (изображение или спрайт или кадр), нажать правою кнопкой мыши и выбрать пункт "Экспортировать выбранное".

Лучше всего извлекать в формат SVG — его можно масштабировать без искажений.

Открытие GUI в Mass Effect 1
Открытие GUI в Mass Effect 1

Добытые последовательности изображений можно использовать по разному; например, импортировать как последовательность изображений (секвенцию) в видеоредактор для какого-нибудь тематического видео по "Mass Effect", а может быть просто для мемов-засмешек. Или же для изучения того как оно устроено изнутри.

Открытие GUI в Mass Effect 1

Был удивлён, что эта тема будто бы никак не освещена в интернете, хотя довольно интересная. Ну и никаких модификаций с этим не найдено, хотя редактирование будто бы совсем простое.

На этом в общем-то всё.

А другие интересности по "Mass Effect" (разработка и прочее) можно посмотреть и почитать в моей ВКшной группе "MassEffectica" — https://vk.ru/masseffectica.

11