Перейти к содержимому
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

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


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

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

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

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

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

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

Войти

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

Войти сейчас


  • Сейчас популярно

  • Продвигаемые темы

  • Последние сообщения

    • Through the Nightmares Метки: Головоломка-платформер, 2D-платформер, Платформер на точность, Вид сбоку, Сложная Платформы: PC PS5 SW Разработчик: Sandman Team Издатель: Sandman Team Дата выхода: 19 июня 2025 года Отзывы Steam: 29 отзывов, 100% положительных
    • Death Kid Метки: Экшен-рогалик, Упрощённый рогалик, Аркада, Пиксельная графика, Быстрая Платформы: PC XS XONE PS5 PS4 SW Разработчик: Crooked Games Издатель: Crooked Games, Take IT Studio! Дата выхода: 2 апреля 2025 года Отзывы Steam: 4 отзывов, 100% положительных
    • No Sun to Worship Метки: Экшен, Стелс, Для одного игрока, Приключенческий экшен, Киберпанк Платформы: PC Разработчик: Antonio Freyre Издатель: Merlino Games Дата выхода: 15 сентября 2023 года Отзывы Steam: 254 отзывов, 85% положительных
    • Студия Mechanics VoiceOver опубликовала очередное видео с демонстрацией процесса работы над локализацией Split Fiction.
    • Только вот “ихний” — это просторечие, устойчивое просторечие с долгой историей, а твой случай — это банальная безграмотность и нежелание признавать свои ошибки. Убедительный для кого? Пока что ты никого такими доводами убедить тут всё-таки не смог. Если бы ты давал источник, то есть указывал, на то, где конкретно ты прочитал что-либо, то это было бы определённо более весомо, чем пустые слова. А так что так, у тебя попытка выдать личный опыт за нечто, что неоспоримо для остальных, т.к. другого опыта и быть не может, что иначе — инфа без “корней”, прочитанная где-то — оба случая не блещут “убедительностью”. Личное мнение всё-таки надо поскромнее что ли преподносить, без такой вот помпы, на мой скромный взгляд. Например? И даже если допустить эту ситуацию, то у тебя отнюдь не “изредка” ошибки, ты их лупишь систематически, а ещё и бахвалиться с недавних пор ими начал. В целом иронично. Можно писать в кучей запятых длинные предложения, но при этом грамотно. Можно писать короткими предложениями и без ошибок. Можно писать короткие фразы, не являющиеся предложениями без заглавных букв и точек, но опять-таки без ошибок. Но всё это ты смешал под конец с тем, что безграмотность — это не безграмотность, а якобы стиль такой. Это тебе не пыщь-пыщь попячся, чтобы было “стилем”, когда у тебя-то самого ошибки идут рандомными и индивидуальными. В стиле есть единство общее для групп людей. Завязывай, в общем, подменять понятия. Твои ошибки — это не стиль, а личная неграмотность, не более того. Это не означает, что нет норм написания, это не означает, что стоит бахвалиться заведомо неправильным написанием, это отнюдь не означает, что личная безграмотность — это “стиль такой” личный. Это также означает, что если есть и другие в той или иной мере безграмотные и малограмотные люди, то это отнюдь не повод брать с них пример, не пытаясь стать лучше. Заметь, ты навалил уйму ошибок, но я тебя не правлю, т.к. раз тебе самому пофиг на себя самого, то мешать тебе деградировать у меня отсутствует какое-либо желание. Только вот избавь меня от твоих бесконечных оправданий, которыми ты откровенно бравируешь. Это отнюдь не повод для гордости — это повод лишь для того, чтобы пожалеть тебя, не более. В т.ч. забавно то, что ты рассуждаешь про “идеальность” языков, при этом не зная идеально или даже просто хорошо даже одного языка - родного.
    • Это как раз таки оправдание. Попытка обосновать свою правоту, правильность своих действий.
    • @Edgxcvd А вы там жили?) Я вот помню двухтысячные когда интернет был дорогой и  медленный и мы были в основном в локальной сети и не чувствовали, что нам чего-то не хватает, так что локальная сеть на миллиард, как в Китае или ограниченный доступ непонятно какой в КНДР — всего лишь дело привычки, думаю в государственно регулируемом капитализме и коммунизме (Китай и КНДР соответственно по экономическому признаку( есть свои плюсы и минусы, как в том же капитализме у нас и неизвестно чего больше или меньше.
    • Я лично ощущаю себя как в Китае с их цензурщиной и Северной Корее. В целом, оно понятно почему.
    • Я сказал, что главное понимать, что написано. Смысл языка, любого, в том чтобы понять друг друга. Если вдруг “по идеи” не будут понимать, то возможно  заменю на “по идее”. Но думаю этого никогда не случится. Поэтому не вижу смысла себя переучивать. Точно так же как в силу привычки люди пишут “ихнему, ихних” вместо просто “их”. Пока их понимают, или их не смущает ошибка, они не будут переучиваться. Личный опыт я часто привожу, просто как убедительный аргумент. Это лучше чем аргументы в стиле “я где то прочитал, в интернете, что все по другому”. Скорее к единому стандарту, а не к совершенствованию. Совершенного тут ничего нет. Иногда идеально правильно написанный текст  может даже навредить) Очень редкая ситуация, но она есть. Эм, всмысле? Я никому не тыкаю на ошибки и меня не надо. Это не оправдание. Это значит идти, пытаться учить кого-то другого. Я сразу сказал, мне так удобно и всё. Правильно или нет мне все равно. Это же просто форум с личным общением, а не какая-то работа с документами. Я не знаю какой язык идеальный, я только знаю про несовершенство и откровенные нарушения собственных правил английского и французского языка. В принципе любой язык постоянно трансформируется. Старые слова заменяются новыми, меняется правописание и произношение. Это само по себе означает, что нету какого-то правильного варианта. Он правильный лишь в нынешний момент времени. При этом суть языка не меняется, просто понимание друг друга, пока понимание есть — язык выполняет свою функцию. Есть разные люди, и люди пишут по разному. Кто-то ставит в предложениях дофига запятых, кто-то их вообще почти не ставит. Кто-то пишет предложения с маленькой буквы, кто-то с большой. Кто-то пишет короткими предложениями, а кто-то соединяет их в одно длинное союзами, а кто-то добавляет в свой стиль старые слова, ну а кто-то пишет с “ашибками”. в стиле “прифет” или “чиго”. Сначало сложно было читать, а потом я привык и мне норм стало, и никто никому не насилует мозг о том как им лучше писать, всем комфортно. 
  • Изменения статусов

    • Дмитрий Соснов  »  Tirniel

      Привет! ты разбираешься в компьютерном железе, сможешь помочь с советом по апгрейду старого компа?
      · 1 ответ
    • SHAMAH

      Куда вход на сайт убрали и ЗАЧЕМ? Хотел файл скачать, там только медленная загрузка и “зарегистрируйтесь”. Все. Пришлось вручную страницу входа прописывать.
      · 0 ответов
    • Nosferatu  »  behar

      Добрый вечер.
      Подскажите пожалуйста, у вас не осталось случайно исходников для фикса на широкоформатные мониторы для игры Vampire The Masquerade Redemption?
      Если да, то не могли бы вы ими поделиться, а если нет, то прошу прощенья что побеспокоил.
      Заранее спасибо.
      · 0 ответов
    • AlcoKolyic  »  makc_ar

      Здраствуйте! Извините, а можно попросить ссылку на место где можно взять перевод (патч или образ игры с переводом) El Shaddai: Ascension of the Metatron для ps3, пожалуйста? А то в теме к этой игре у меня не получилось найти работающие ссылки… Первая ведет в группу в которой удалены большинство постов, а пост с этой игрой ведет на сайт https://psnext.ru который сейчас не имеет отношения к видеоиграм. 
      · 0 ответов
    • oleg72  »  Boor

      https://www.skidrowcodex.net/fate-reawakened-goldberg/
      · 0 ответов
  • Лучшие авторы


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

×