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

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

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

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

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

 

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


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

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

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


Ссылка на сообщение
В 14.11.2024 в 22:03, xoixa сказал:

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

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

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

Скрытый текст

G:\Games\AoC_translate\UnrealReZen_V01>UnrealReZen.exe —content-path G:\Games\AoC_translate\UnrealReZen_V01\AOC_ucas —compression-format None —engine-version GAME_UE5_3 —game-dir G:\Games\AoC\PROD\AOC\Content\Paks —output-path G:\Games\AoC\PROD\AOC\Content\Paks\pakchunk9900-WindowsClient-rus-localiz.utoc
Game Directory: G:\Games\AoC\PROD\AOC\Content\Paks
Content Path: G:\Games\AoC_translate\UnrealReZen_V01\AOC_ucas
Unreal Engine Version: GAME_UE5_3
Output Path: G:\Games\AoC\PROD\AOC\Content\Paks\pakchunk9900-WindowsClient-rus-localiz.utoc
[23:14:43 INF] Loading Game Archives...
[23:14:43 WRN] "pakchunk200_s3-WindowsClient.pak" has strange mount point "/", mounting to root
[23:14:43 WRN] "pakchunk100-WindowsClient.pak" has strange mount point "/", mounting to root
[23:14:43 WRN] "pakchunk1106-WindowsClient.pak" has strange mount point "/", mounting to root
[23:14:43 WRN] "pakchunk1000-WindowsClient.pak" has strange mount point "/", mounting to root
[23:14:43 WRN] "pakchunk303-WindowsClient.pak" has strange mount point "/", mounting to root
[23:14:43 WRN] "pakchunk1304-WindowsClient.pak" has strange mount point "/", mounting to root
[23:14:43 INF] IoStore "pakchunk400_s2-WindowsClient.utoc": 559 files, version 5 in 00:00:00.0064537
[23:14:43 INF] Pak "pakchunk200_s3-WindowsClient.pak": 0 files, version 11 in 00:00:00.0068864
[23:14:43 INF] IoStore "pakchunk0optional-WindowsClient.utoc": 1 files, mount point: "Engine/Content/EngineSky/VolumetricClouds/", version 5 in 00:00:00.0054805
[23:14:43 INF] Pak "pakchunk100-WindowsClient.pak": 0 files, version 11 in 00:00:00.0083322
[23:14:43 INF] IoStore "pakchunk303_s1-WindowsClient.utoc": 1340 files, mount point: "AOC/Content/", version 5 in 00:00:00.0062677
[23:14:43 INF] IoStore "pakchunk100-WindowsClient.utoc": 1495 files, mount point: "AOC/Content/", version 5 in 00:00:00.0071252
[23:14:43 INF] IoStore "pakchunk1303-WindowsClient.utoc": 930 files, mount point: "AOC/Content/ENV/", version 5 in 00:00:00.0068467
[23:14:43 INF] IoStore "pakchunk1000-WindowsClient.utoc": 464 files, mount point: "AOC/Content/", version 5 in 00:00:00.0068214
[23:14:43 INF] Pak "pakchunk1106-WindowsClient.pak": 0 files, version 11 in 00:00:00.0085324
[23:14:43 INF] Pak "pakchunk1000-WindowsClient.pak": 0 files, version 11 in 00:00:00.0096182
[23:14:43 INF] Pak "pakchunk303-WindowsClient.pak": 0 files, version 11 in 00:00:00.0102298
[23:14:43 INF] Pak "pakchunk1304-WindowsClient.pak": 0 files, version 11 in 00:00:00.0100693
[23:14:43 WRN] "pakchunk1300-WindowsClient.pak" has strange mount point "/", mounting to root
[23:14:43 INF] IoStore "pakchunk200_s5-WindowsClient.utoc": 2162 files, mount point: "AOC/Content/Levels/Verra_World_Master/Verra_World_Master/_Generated_/", version 5 in 00:00:00.0016822
[23:14:43 WRN] "pakchunk1303-WindowsClient.pak" has strange mount point "/", mounting to root
[23:14:43 INF] Pak "pakchunk1303-WindowsClient.pak": 0 files, version 11 in 00:00:00.0202034
[23:14:43 INF] IoStore "pakchunk301-WindowsClient.utoc": 3993 files, mount point: "AOC/Content/", version 5 in 00:00:00.0055948
[23:14:43 WRN] "pakchunk1109-WindowsClient.pak" has strange mount point "/", mounting to root
[23:14:43 WRN] "pakchunk1302-WindowsClient.pak" has strange mount point "/", mounting to root
[23:14:43 INF] IoStore "pakchunk300-WindowsClient.utoc": 6015 files, version 5 in 00:00:00.0198857
[23:14:43 WRN] "pakchunk200-WindowsClient.pak" has strange mount point "/", mounting to root
[23:14:43 WRN] "pakchunk1-WindowsClient.pak" has strange mount point "/", mounting to root
[23:14:43 INF] Pak "pakchunk1300-WindowsClient.pak": 0 files, version 11 in 00:00:00.0325227
[23:14:43 INF] IoStore "pakchunk1104-WindowsClient.utoc": 16 files, mount point: "AOC/Content/", version 5 in 00:00:00.0001664
[23:14:43 INF] IoStore "pakchunk1109-WindowsClient.utoc": 4 files, mount point: "AOC/Content/ENV/Biomes/Water/LandscapeTextures/", version 5 in 00:00:00.0001780
[23:14:43 INF] Pak "pakchunk1109-WindowsClient.pak": 0 files, version 11 in 00:00:00.0071805
[23:14:43 INF] Pak "pakchunk1302-WindowsClient.pak": 0 files, version 11 in 00:00:00.0077278
[23:14:43 INF] Pak "pakchunk200-WindowsClient.pak": 0 files, version 11 in 00:00:00.0076206
[23:14:43 INF] Pak "pakchunk1-WindowsClient.pak": 0 files, version 11 in 00:00:00.0065121
[23:14:43 WRN] "pakchunk400_s2-WindowsClient.pak" has strange mount point "/", mounting to root
[23:14:43 INF] IoStore "pakchunk1301-WindowsClient.utoc": 867 files, mount point: "AOC/Content/", version 5 in 00:00:00.0299748
[23:14:43 INF] IoStore "pakchunk1302-WindowsClient.utoc": 241 files, mount point: "AOC/Content/", version 5 in 00:00:00.0002856
[23:14:43 WRN] "pakchunk300-WindowsClient.pak" has strange mount point "/", mounting to root
[23:14:43 INF] IoStore "pakchunk302_s1-WindowsClient.utoc": 4267 files, version 5 in 00:00:00.0094823
[23:14:43 INF] IoStore "pakchunk304-WindowsClient.utoc": 3045 files, mount point: "AOC/Content/", version 5 in 00:00:00.0179052
[23:14:43 WRN] "pakchunk304-WindowsClient.pak" has strange mount point "/", mounting to root
[23:14:43 INF] Pak "pakchunk2-WindowsClient.pak": 15 files, mount point: "AOC/Content/", version 11 in 00:00:00.0005596
[23:14:43 WRN] "pakchunk200_s2-WindowsClient.pak" has strange mount point "/", mounting to root
[23:14:43 WRN] "pakchunk200_s1-WindowsClient.pak" has strange mount point "/", mounting to root
[23:14:43 INF] IoStore "pakchunk1303_s1-WindowsClient.utoc": 245 files, version 5 in 00:00:00.0003826
[23:14:43 INF] Pak "pakchunk400_s2-WindowsClient.pak": 0 files, version 11 in 00:00:00.0112951
[23:14:43 WRN] "pakchunk200_s5-WindowsClient.pak" has strange mount point "/", mounting to root
[23:14:43 WRN] "pakchunk1301-WindowsClient.pak" has strange mount point "/", mounting to root
[23:14:43 INF] Pak "pakchunk300-WindowsClient.pak": 0 files, version 11 in 00:00:00.0116922
[23:14:43 INF] IoStore "pakchunk303-WindowsClient.utoc": 7181 files, mount point: "AOC/Content/", version 5 in 00:00:00.0111429
[23:14:43 INF] Pak "pakchunk304-WindowsClient.pak": 0 files, version 11 in 00:00:00.0129621
[23:14:43 WRN] "pakchunk1102-WindowsClient.pak" has strange mount point "/", mounting to root
[23:14:43 INF] Pak "pakchunk200_s2-WindowsClient.pak": 0 files, version 11 in 00:00:00.0126219
[23:14:43 INF] IoStore "pakchunk1102-WindowsClient.utoc": 3 files, mount point: "AOC/Content/", version 5 in 00:00:00.0001633
[23:14:43 WRN] "pakchunk305-WindowsClient.pak" has strange mount point "/", mounting to root
[23:14:43 INF] Pak "pakchunk200_s1-WindowsClient.pak": 0 files, version 11 in 00:00:00.0126291
[23:14:43 WRN] "pakchunk400_s1-WindowsClient.pak" has strange mount point "/", mounting to root
[23:14:43 WRN] "pakchunk303_s1-WindowsClient.pak" has strange mount point "/", mounting to root
[23:14:43 INF] Pak "pakchunk200_s5-WindowsClient.pak": 0 files, version 11 in 00:00:00.0075176
[23:14:43 INF] Pak "pakchunk1301-WindowsClient.pak": 0 files, version 11 in 00:00:00.0063805
[23:14:43 WRN] "pakchunk1104-WindowsClient.pak" has strange mount point "/", mounting to root
[23:14:43 WRN] "pakchunk1303_s1-WindowsClient.pak" has strange mount point "/", mounting to root
[23:14:43 INF] Pak "pakchunk1102-WindowsClient.pak": 0 files, version 11 in 00:00:00.0139974
[23:14:43 INF] IoStore "pakchunk1300-WindowsClient.utoc": 259 files, mount point: "AOC/Content/", version 5 in 00:00:00.0003068
[23:14:43 INF] IoStore "pakchunk9000_s2-WindowsClient.utoc": 10 files, mount point: "AOC/Content/", version 5 in 00:00:00.0001207
[23:14:43 INF] Pak "pakchunk305-WindowsClient.pak": 0 files, version 11 in 00:00:00.0147448
[23:14:43 INF] Pak "pakchunk400_s1-WindowsClient.pak": 0 files, version 11 in 00:00:00.0150532
[23:14:43 INF] Pak "pakchunk303_s1-WindowsClient.pak": 0 files, version 11 in 00:00:00.0151415
[23:14:43 WRN] "pakchunk200_s4-WindowsClient.pak" has strange mount point "/", mounting to root
[23:14:43 INF] Pak "pakchunk1104-WindowsClient.pak": 0 files, version 11 in 00:00:00.0295187
[23:14:43 INF] Pak "pakchunk1303_s1-WindowsClient.pak": 0 files, version 11 in 00:00:00.0209170
[23:14:43 INF] IoStore "pakchunk200-WindowsClient.utoc": 9332 files, mount point: "AOC/Content/", version 5 in 00:00:00.0265273
[23:14:43 WRN] "pakchunk0optional-WindowsClient.pak" has strange mount point "/", mounting to root
[23:14:43 INF] IoStore "pakchunk305-WindowsClient.utoc": 3844 files, mount point: "AOC/Content/", version 5 in 00:00:00.0083848
[23:14:43 INF] IoStore "pakchunk1200-WindowsClient.utoc": 352 files, version 5 in 00:00:00.0007194
[23:14:43 INF] Pak "pakchunk302_s1-WindowsClient.pak": 9 files, mount point: "AOC/Content/UI/Fonts/", version 11 in 00:00:00.0000393
[23:14:43 INF] Pak "pakchunk200_s4-WindowsClient.pak": 0 files, version 11 in 00:00:00.0337762
[23:14:43 INF] IoStore "pakchunk1-WindowsClient.utoc": 16 files, mount point: "AOC/Content/", version 5 in 00:00:00.0001927
[23:14:43 INF] Pak "pakchunk0optional-WindowsClient.pak": 0 files, version 11 in 00:00:00.0200269
[23:14:43 INF] IoStore "pakchunk2-WindowsClient.utoc": 1862 files, version 5 in 00:00:00.0123703
[23:14:43 INF] IoStore "pakchunk200_s6-WindowsClient.utoc": 506 files, version 5 in 00:00:00.0007475
[23:14:43 WRN] "pakchunk200_s6-WindowsClient.pak" has strange mount point "/", mounting to root
[23:14:43 WRN] "pakchunk302-WindowsClient.pak" has strange mount point "/", mounting to root
[23:14:43 WRN] "pakchunk301-WindowsClient.pak" has strange mount point "/", mounting to root
[23:14:43 INF] IoStore "pakchunk1106-WindowsClient.utoc": 151 files, mount point: "AOC/Content/", version 5 in 00:00:00.0003040
[23:14:43 INF] Pak "pakchunk200_s6-WindowsClient.pak": 0 files, version 11 in 00:00:00.0023767
[23:14:43 INF] Pak "pakchunk302-WindowsClient.pak": 0 files, version 11 in 00:00:00.0025398
[23:14:43 INF] Pak "pakchunk301-WindowsClient.pak": 0 files, version 11 in 00:00:00.0017611
[23:14:43 INF] IoStore "pakchunk0-WindowsClient.utoc": 10669 files, version 5 in 00:00:00.0585721
[23:14:43 INF] IoStore "pakchunk200_s4-WindowsClient.utoc": 2461 files, mount point: "AOC/Content/Levels/Verra_World_Master/Verra_World_Master/_Generated_/", version 5 in 00:00:00.0300580
[23:14:43 INF] IoStore "pakchunk200_s2-WindowsClient.utoc": 6290 files, mount point: "AOC/Content/ENV/Races/", version 5 in 00:00:00.0420653
[23:14:43 INF] IoStore "pakchunk1304-WindowsClient.utoc": 323 files, mount point: "AOC/Content/", version 5 in 00:00:00.0153822
[23:14:43 WRN] "pakchunk9000_s2-WindowsClient.pak" has strange mount point "/", mounting to root
[23:14:43 INF] IoStore "pakchunk200_s1-WindowsClient.utoc": 4461 files, mount point: "AOC/Content/ENV/", version 5 in 00:00:00.0302140
[23:14:43 INF] IoStore "pakchunk400-WindowsClient.utoc": 6745 files, mount point: "AOC/Content/", version 5 in 00:00:00.0588834
[23:14:43 INF] IoStore "pakchunk200_s3-WindowsClient.utoc": 2948 files, mount point: "AOC/Content/", version 5 in 00:00:00.0163007
[23:14:43 WRN] "pakchunk1200-WindowsClient.pak" has strange mount point "/", mounting to root
[23:14:43 INF] IoStore "pakchunk400_s1-WindowsClient.utoc": 10459 files, mount point: "AOC/Content/", version 5 in 00:00:00.0590226
[23:14:43 WRN] "pakchunk400-WindowsClient.pak" has strange mount point "/", mounting to root
[23:14:43 INF] Pak "pakchunk9000_s2-WindowsClient.pak": 0 files, version 11 in 00:00:00.0416654
[23:14:43 INF] IoStore "pakchunk302-WindowsClient.utoc": 10014 files, mount point: "AOC/Content/", version 5 in 00:00:00.0762578
[23:14:43 INF] Pak "pakchunk1200-WindowsClient.pak": 0 files, version 11 in 00:00:00.0219118
[23:14:43 INF] Pak "pakchunk400-WindowsClient.pak": 0 files, version 11 in 00:00:00.0096782
[23:14:43 INF] Pak "pakchunk0-WindowsClient.pak": 155566 files, version 11 in 00:00:00.2650768
[23:14:43 INF] Packing Contents...
[23:14:43 INF] Mounting UIStringTable.uasset
[23:14:43 INF] Packing files...
Done! 1 file(s) packed

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

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


Ссылка на сообщение
В 14.11.2024 в 22:03, xoixa сказал:

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

 

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

Скрытый текст

G:\Games\AoC_translate\qbms>quickbms textexport.bms UIStringTable.uasset

QuickBMS generic files extractor and reimporter 0.12.0
by Luigi Auriemma
e-mail: me@aluigi.org
web:    aluigi.org
        (Aug 24 2022 - 10:55:28)

                          quickbms.com  Homepage
                            zenhax.com  ZenHAX Forum
                     @zenhax @quickbms  Twitter & Scripts

- open input file G:\Games\AoC_translate\qbms\UIStringTable.uasset
- open script textexport.bms
- set output folder .

  offset   filesize   filename
--------------------------------------

Error: incomplete input file 0: G:\Games\AoC_translate\qbms\UIStringTable.uasset
       Can't read 1698913393 bytes from offset 0000aec8.
       Anyway don't worry, it's possible that the BMS script has been written
       to exit in this way if it's reached the end of the archive so check it
       or contact its author or verify that all the files have been extracted.
       Please check the following coverage information to know if it's ok.

  coverage file 0    99%   44476      44744      . offset 0000aec8

Last script line before the error or that produced the error:
  33  getDString Str Len2
  coverage file 0    99%   44476      44744      . offset 0000aec8
  coverage file -1    0%   0          12         . offset 0000000c

G:\Games\AoC_translate\qbms>

Вот оригинальный 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

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


Ссылка на сообщение
21 час назад, WhiskeyRacoon сказал:

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

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

было

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

стало

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

 

17 часов назад, WhiskeyRacoon сказал:

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

 

17 часов назад, WhiskeyRacoon сказал:

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

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

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

 

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

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

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

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

17 часов назад, WhiskeyRacoon сказал:

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

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

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

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

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


Ссылка на сообщение
5 часов назад, xoixa сказал:

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

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

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

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

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

5 часов назад, 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

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


Ссылка на сообщение
В 14.11.2024 в 22:03, xoixa сказал:

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

 

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

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


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

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

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

HQ7EqXV.png

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

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


Ссылка на сообщение
2 минуты назад, selector сказал:

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

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

HQ7EqXV.png

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

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


Ссылка на сообщение
12 минут назад, selector сказал:

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

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

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

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


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

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

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

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


Ссылка на сообщение
9 минут назад, Haoose сказал:

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

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

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

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

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


Ссылка на сообщение
43 минуты назад, Haoose сказал:

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

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

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

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

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


Ссылка на сообщение
1 час назад, eaZy сказал:

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

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

34 минуты назад, nojqva сказал:

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

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

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

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

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


Ссылка на сообщение
11 минут назад, selector сказал:

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

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

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

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

iJKjXlK.jpeg

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

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


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

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

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

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

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

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

Войти

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

Войти сейчас



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

×