Перейти к содержимому
Zone of Games Forum
moodshimon

Помощь в распаковке игр на Unreal

Рекомендованные сообщения

Привет всем! Я занимаюсь моддингом игр, а именно озвучкой. Но у меня возникли проблемы с технической стороной - распаковкой и упаковкой файлов. Если у кого-то есть желание помочь мне с этим или хотя бы подсказать, я буду очень благодарен!

Проекты которые интересуют
Nightingale
Pacific Drive тест трейлер - YouTube

 

Поделиться сообщением


Ссылка на сообщение

@xoixa еще не проверял, т.к. в прошлую проверку оказалось, что я нашел не все шрифты. А сервера игры запущены только по выходным, так что завтра проверю. Накину какой-нибудь декоративный на латинице, чтобы не перепутать, если сменится. Спасибо.

Поделиться сообщением


Ссылка на сообщение
  В 11/14/2024 в 19:03, xoixa сказал:

Импорт только в ANSI(1 байт на символ). UCS-2 не осилил:(

Со шрифтами разобрался, кириллица появилась в игре, это прекрасно.

Но вот с ucas файлами никак не могу разобраться. Ваши скрипты работают, текстовые файлы распаковал, запаковал в uasset обратно. Но при паковке в ucas игра их не видит. И Fmodel тоже показывает их красным и не открывает. Уточню, версия движка 5.3.2. Пробовал паковать через ReZen и через UnZen. Ставил компрессию и None и Zlib. Результат один и тот же — создаются три файла: pak, ucas, utoc. Из них Ucas по весу подходит под то, что в него запаковывают. Но ни игра, ни fmodel их не распознаёт. Не могу понять в чем дело. Думаю, что может быть надо указать mount point отличную от дефолтной.

  Log ReZen (Показать содержимое)

UPD.

Покопался еще, поломал голову. Кажется понял, что для правильной запаковки в 5+ версиях движка нужна более хитрая система, использующая заранее экспортированные PackageStore.Manifest и ScriptObjects. Нашел на форуме модеров GUI версию упаковщика от Narknon’a. По отзывам работает отлично, но вот задача — ей для запаковки нужен uexp файл, который идет в паре с uasset. И достаётся он, судя по всему, только через ZenTools. Но те версии zentools что я нашел, работают только с UE 5.1/5.2.

И вопрос в том, есть ли способы достать этот uexp и так ли он необходим для создания ucas/utoc патча в версии 5.3.2

Изменено пользователем WhiskeyRacoon
UPD

Поделиться сообщением


Ссылка на сообщение
  В 11/14/2024 в 19:03, xoixa сказал:

Написал такое:

  textexport.bms (Показать содержимое)
Показать больше  

И еще вопрос. Не знаю насколько это критично, но заметил вот что. Если экспортировать из uasset текст через ваш скрипт через qbms, а потом не трогая его, импортировать обратно в uasset, то его размер становится меньше, чем у оригинального (44 кб против 46 кб у оригинала), и если его переименовать в оригинал, то он не экспортируется снова, выдавая такую ошибку:

  qbms log (Показать содержимое)

Вот оригинальный uasset: https://drive.google.com/file/d/1_kq-e3Yw3tGyBHUEiHyaOcaLM3sODgG9/view?usp=sharing

Вот прогнанный через экспорт и импорт (без изменения txt): https://drive.google.com/file/d/1SNHVGn-5PpSDjghqapAFsJMTVQD6PgGs/view?usp=sharing

Поделиться сообщением


Ссылка на сообщение

@xoixa прошу прощения за постоянно меняющиеся вводные))

Ситуация следующая. Оказывается, распаковка IOStore паков (ucas, utoc) через fmodel создаёт uasset одного типа (более современные, как я понял). К ним не создаётся пара uexp файла. Но для них не работают способы упаковки обратно в ucas. Во всяком случае, всё что я пробовал три дня — не работало.

Но. Есть ZenTools. Версия на гитхабе умеет распаковывать IOStore до версии UE5.2. Но в дискорде модеров я нашел новую версию, которая всё-таки взяла мой 5.3.2 пак, и распаковала его. В распаковке каждому uasset соответствует парный uexp файл. Причем в этом варианте uasset значительно меньше размером, а вся информация находится в uexp. И оно работает и запаковывается обратно в ucas и видится игрой. Я это проверил, отредактировав пару строк в uexp просто через HxD, запаковал через IOStorePak, и изменения текста отобразились в игре.

Соответственно, задачка теперь стоит в редактировании текстовых uexp, и, видимо, парных им uasset. Благо запаковка обратно в IOStore проверена и работает.

Вот обновленный архив с парами текстовых файлов локализации uasset/uexp с сохранением пути:

https://drive.google.com/file/d/16oSPbDfI3ZMChDoFuBB7waTAsNjf7TSO/view?usp=sharing

Поделиться сообщением


Ссылка на сообщение
  В 11/17/2024 в 16:37, WhiskeyRacoon сказал:

выдавая такую ошибку

Показать больше  

Исправил скрипт импорта:

было

	math Len1 + 1
	//print "%ID% %Str%"

стало

	math Len1 + 1
	math Len2 + 1
	//print "%ID% %Str%"

 

  В 11/17/2024 в 20:44, WhiskeyRacoon сказал:

В распаковке каждому uasset соответствует парный uexp файл

Показать больше  

 

  В 11/17/2024 в 20:44, WhiskeyRacoon сказал:

задачка теперь стоит в редактировании текстовых uexp

Показать больше  

uexp это, по сути, часть ассета как и ubulk

мне лень переписывать скрипт.

 

Можете работать с целым ассетом, а для запаковки, отрезать от большого uasset хвост в uexp файл,

и в маленьком uasset изменить значение с размером uexp, если размер uexp изменился:

размер uexp(-4 в хекс) указан в последней секции маленького uasset(перед размером uasset)

на примере GameplayTagStringTable: по адресу 0х255 0х4825 (размер uexp 0x4829 — 4) размер uasset 0х02b1

  В 11/17/2024 в 20:44, WhiskeyRacoon сказал:

Благо запаковка обратно в IOStore проверена и работает

Показать больше  

Напишите, пожалуйста, подробную инструкцию, как это сделать

Запаковка в OIStore для UE 5+ у многих является проблемой

Изменено пользователем xoixa

Поделиться сообщением


Ссылка на сообщение
  В 11/18/2024 в 14:29, xoixa сказал:

Можете работать с целым ассетом, а для запаковки, отрезать от большого uasset хвост в uexp файл,

и в маленьком uasset изменить значение с размером uexp, если размер uexp изменился:

размер uexp(-4 в хекс) указан в последней секции маленького uasset(перед размером uasset)

на примере GameplayTagStringTable: по адресу 0х255 0х4825 (размер uexp 0x4829 — 4) размер uasset 0х02b1

Показать больше  

Уф. Для меня это конечно не то, чтобы очевидные понятные вещи, но думаю с помощью чатгпт получится разобраться. Спасибо.

  В 11/18/2024 в 14:29, xoixa сказал:

Напишите, пожалуйста, подробную инструкцию, как это сделать

Запаковка в OIStore для UE 5+ у многих является проблемой

Показать больше  

Собственно, инструкция:

Взять отсюда zentools, который умеет работать с 5.3 версией: https://drive.google.com/file/d/1N2cmzUCUhEFRUbVwcN9C9c_lMKJ7qob5/view?usp=drive_link

Так же взять IOStorePackagev2 от многоуважаемого Narknon’a : https://drive.google.com/file/d/1RFaS9FAT1ktSGxgA98Ym1Ctzje3E5u8T/view?usp=sharing

Обе этих проги с дискорда UEmodding, от, собственно, их создателей. Можно взять их там, если есть сомнения в источнике.

  1. Скачать нужную версию UnrealEngine через Epic Store Launcher.
  2. С помощью zentools распаковать игру полностью.
  3. Взять из корня распаковки два файла ScriptObjects.bin и PackageStore.Manifest, сохранить их куда-нибудь.
  4. Подготовить измененные пары uasset/uexp с сохранением путей.
  5. Запустить IOStorePackagev2, заполнить все поля
  6. Отредактировать соответствующим образом текстовые файлы IoStoreCommands.txt и PakListIoStore_pakchunk99-Windows.txt из корня папки с IOStorePackagev2
  7. Запустить. В случае ошибок, ну, как всегда, спрашивать тут или в том дисе.
  8. После работы в папке paks игры создадутся два файла ucas и utoc. И в сообщениях в дискорде прочитал, что надо еще создать пустой .pak файл с тем же именем, чтобы получилась стандартная тройка файлов. Но я не до конца понял, пустой .pak это просто нулевой текстовый файл, который переименовали, или что-то в нём должно быть. Поэтому я в соей игре просто вставил “пустой” .pac из примера, который скинули в том дискорде, и всё заработало. Вот он. Ничем не отличается от остальных “пустых” паков в папке, те же 339 байт. Только переименуйте его соответственно названиям ваших ucas/utoc — https://drive.google.com/file/d/1yKlnqbR8DiCFrcOxP4nQjnxaMgYawf5e/view?usp=sharing

DirDJS0.png

Плюс, в качестве полезного источника — огромный список всех-всех тулзов, гайдов, источников касательно моддинга UE — https://github.com/Buckminsterfullerene02/UE-Modding-Tools

Изменено пользователем WhiskeyRacoon
  • Спасибо (+1) 1
  • +1 1

Поделиться сообщением


Ссылка на сообщение
  В 11/14/2024 в 19:03, xoixa сказал:

Импорт только в ANSI(1 байт на символ). UCS-2 не осилил:(

 

Показать больше  

Я только сейчас понял, что это означает, что, собственно, кириллицу, скрипт импортировать не будет, так?

Поделиться сообщением


Ссылка на сообщение

Всем привет. Пытаюсь достать субтитры из stalker 2. Распаковал игру, субтитры похоже лежат в файле Stalker2\Content\_Stalker_2\Localization\LocalizationDB.ubulk вес 121мб.

Кто ни буть знает что это за формат? Чем его извлечь?

HQ7EqXV.png

Изменено пользователем selector

Поделиться сообщением


Ссылка на сообщение
  В 11/21/2024 в 08:45, selector сказал:

Всем привет. Пытаюсь достать субтитры из stalker 2. Распаковал игру, субтитры похоже лежат в файле Stalker2\Content\_Stalker_2\Localization\LocalizationDB.ubulk вес 121мб.

Кто ни буть знает что это за формат? Чем его извлечь?

HQ7EqXV.png

Показать больше  

Тоже интересно 

Поделиться сообщением


Ссылка на сообщение
  В 11/21/2024 в 08:45, selector сказал:

Чем его извлечь?

Показать больше  

в начале, видимо число строк (59845). затем 4 байта — длина ID, потом сам ID (0x00 отсечь надо), затем длина строки текста 4 байта. так как отрицательное число FBFFFFFF (-5) — то значит что кодировка UTF16, далее сам текст длиной (-5*-2)=10байт. Два нуля (0х0000) в конце отсечь. получается, “Скiф”. И так далее

Изменено пользователем eaZy
  • Лайк (+1) 1

Поделиться сообщением


Ссылка на сообщение

@selector В том файле только украинские субтитры, смотрел тоже вчера ) Куда засунули русские пока не нашел.

Изменено пользователем Haoose

Поделиться сообщением


Ссылка на сообщение
  В 11/21/2024 в 08:59, Haoose сказал:

Куда засунули русские пока не нашел

Показать больше  

Удалили, наверняка)

А, там есть русский. Не вникал

Изменено пользователем eaZy
  • Спасибо (+1) 1

Поделиться сообщением


Ссылка на сообщение
  В 11/21/2024 в 08:59, Haoose сказал:

@selector В том файле только украинские субтитры, смотрел тоже вчера ) Куда засунули русские пока не нашел.

Показать больше  

в юбульке все субтитры всех языков (включая русский). вытащил еще 13го от туда все.

причем в юбульке 1.7М строк при распаковке...

Изменено пользователем nojqva
  • Спасибо (+1) 1

Поделиться сообщением


Ссылка на сообщение
  В 11/21/2024 в 08:54, eaZy сказал:

в начале, видимо число строк (59845). затем 4 байта — длина ID, потом сам ID (0x00 отсечь надо), затем длина строки текста 4 байта. так как отрицательное число FBFFFFFF (-5) — то значит что кодировка UTF16, далее сам текст длиной (-5*-2)=10байт. Два нуля (0х0000) в конце отсечь. получается, “Скiф”. И так далее

Показать больше  

Спасибо, этим алгоритмом удалось извлечь украинские субтитры. 

  В 11/21/2024 в 09:35, nojqva сказал:

в юбульке все субтитры всех языков (включая русский). вытащил еще 13го от туда все.

причем в юбульке 1.7М строк при распаковке...

Показать больше  

Тогда может подскажешь как скорректировать логику что предложил eaZy?

Изменено пользователем selector

Поделиться сообщением


Ссылка на сообщение
  В 11/21/2024 в 10:03, selector сказал:

Спасибо, этим алгоритмом удалось извлечь украинские субтитры. 

Тогда может подскажешь как скорректировать логику что предложил eaZy?

Показать больше  

у нас свой софт для этого.

з.ы. не дадим :) да и программиста давно нет в сети, который написал софт. так что...

iJKjXlK.jpeg

Изменено пользователем nojqva
  • -1 1

Поделиться сообщением


Ссылка на сообщение

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас



Zone of Games © 2003–2025 | Реклама на сайте.

×