Восемь маленьких консольных утилит на Java, которые вытаскивают из пакетов клиента то, что обычно приходится выковыривать глазами в редакторе. Всё пишет JSON или OBJ, никакого GUI, запускается на любой ОС. Исходники в архиве.
Три исправления разбора tagged-properties, которые могут пригодиться, если пишете свой парсер. Они не роняют чтение, а молча дают неверный результат: bool лежит в бите 7 тега свойства, а не в теле; строка с отрицательной длиной — это UTF-16, а не битые данные; Color сериализуется как BGRA.
Чтение пакетов и расшифровка — на библиотеке L2unreal (автор acmi), у неё своя лицензия. Моё здесь — сами дамперы и эти исправления. Сборка: нужен JDK 8..15 (на новых не собирается) и клон L2unreal, дальше build.sh из архива. Примеры запуска — в README.
Проверялось на High Five rev.268 (EN). Формат тот же и на других хрониках, но за все версии не поручусь — если где-то разбор сломается, напишите в теме.
- L2SceneDump — граф сцены .unr в JSON: актёры, класс, Location/Rotation/DrawScale/DrawScale3D, ссылки на StaticMesh/Texture/Skins, параметры света;
- L2BspDump — собранный BSP уровня (Engine.Model) в JSON, то есть геометрия после CSG;
- L2BrushDump — полигоны брашей (Engine.Polys), то есть до сборки;
- L2GeoExport — BSP в OBJ + UV + MTL;
- L2VolumeDump — волюмы уровня (вода, зоны) с трансформами;
- L2TerrainDump — карта высот террейна (G16) в сырой RAW16;
- L2ClassDefaults — defaultproperties классов .u в JSON;
- L2ScriptDump — исходники UnrealScript (ScriptText) из .u.
Три исправления разбора tagged-properties, которые могут пригодиться, если пишете свой парсер. Они не роняют чтение, а молча дают неверный результат: bool лежит в бите 7 тега свойства, а не в теле; строка с отрицательной длиной — это UTF-16, а не битые данные; Color сериализуется как BGRA.
Чтение пакетов и расшифровка — на библиотеке L2unreal (автор acmi), у неё своя лицензия. Моё здесь — сами дамперы и эти исправления. Сборка: нужен JDK 8..15 (на новых не собирается) и клон L2unreal, дальше build.sh из архива. Примеры запуска — в README.
Проверялось на High Five rev.268 (EN). Формат тот же и на других хрониках, но за все версии не поручусь — если где-то разбор сломается, напишите в теме.