SupHamster
Пользователи-
Публикации
131 -
Зарегистрирован
-
Посещение
Репутация
0 НейтральнаяО SupHamster
-
Звание
Активный участник
Интересности
-
Конфигурация компьютера
Core Q6600, GF 260GTX, RAM 4Gb
Информация
-
Пол
Male
-
Откуда
РФ
Посетители профиля
1 874 просмотра профиля
-
Текущий метод конвертации BC7 ->DXT5 делает текстуры намного темнее. В моём случае, если вручную конвертить и добавить к texconv.exe в конце ключ “-srgb”, то всё норм. Также качество DXT5 текстур (после конвертации BC7 ->DXT5) оставляет желать лучшего, хотя это к тулзе texconv.exe вопрос (вроде с ключём “-bc u” качество лучше). Upd: перекомпилил https://workupload.com/file/y4TuWN9Cj7s тулзу, чтобы по умолчанию это делала (без мипмапов). UnityEx в GUI может определять тип/формат dds текстуры, поэтому, думаю не сложно добавить в консольный режим экспорт по определённому типу текстуры (допустим BC7 [id=25] только, ибо если кранчить обратно всё подряд типа курсоров и тп, то это будет кринжово смотреться или вообще приведёт к крашу игры). Нашёл ещё баг: извлекается битый (на картинке справа UnityEx, слева UABEA, где всё ОК) dds файл не важно его в BC7, DXT5, png, либо в ARGB извлекать, где вместо картинки рябь из цветных пикселей показывается, хотя размер файла вроде верный, кстати, resS файл почти 5 гиг, но в данном случае, думаю, дело не в этом, ибо ~70% извлеклись без проблем. Ключ -skip_error не совсем понятно, что делает, ибо с ним UnityEx продолжает сыпать предупреждениями, что нельзя сохранять dds в dtx не кратным 4, ругается на слишком длинный путь и тд.
-
Поломана (или изначально бажная) запаковка в (большие? в районе 3.5Гб после разжатия, может и с меньшими тоже) бандлы (см мой прошлый пост). Исходный формат картинок BC7, если что. После переконвертации UnityEx в DXT5, ARGB или после кранча, игра не видит картинки. v1.10.6.4: в гуи пакует очень быстро, что уже подозрительно, в игре картинки (причём их размер не важен — тот же, меньше, больше) не видны в итоге, в консоле пакует с большими проблемами или не пакует вообще (см мой прошлый пост) - итог тот же (битые картинки, в игре не видны как будто их нет вообще, т.е. полностью игнорируются игрой). v1.10.6.1: после доп. тестирования вплыли походу те же проблемы, что и с более новой версией. Предыстория та же, что и выше (речь идёт о больших бандлах, на простых ассетах не проверял). Разница более новыми версиями в том, что гуи пакует картинки не в ResS файл (хотя в настройках выбран ResS), а в ассет. Upd: В общем, если делать так: for %%a in (intro) do ( UnityEX.exe export "%%a" -nft -t dds -p ".\" ) for %%a in (intro) do ( if exist "Unity_Assets_Files\%%~na\" ( UnityEX.exe exportbundle "%%a" UnityEX.exe import "%%a" -nft -res -dds_force_import_to_crunch -p ".\" UnityEX.exe importbundle "%%a" ) ) то нифига не работает, но если так: for %%a in (intro) do ( UnityEX.exe exportbundle "%%a" -p "%CD%\" ) for %%b in (CAB-????????????????????????????????) do ( UnityEX.exe export "%%b" -nft -t dds UnityEX.exe import "%%b" -nft -res -dds_force_import_to_crunch ) for %%a in (intro) do ( UnityEX.exe importbundle "%%a" -p "%CD%\" ) del /q "CAB-*" то всё норм — сложно сказать в чём причина, то что баг это да, но из-за BC7, большого размера бандла, кранча или всего вместе вопрос.
-
texconv.exe/ConverterTexture.exe довольно медленно конвертит BC7 → DXT5 (использует видяху только если наоборот DXT5 → BC7 (кстати возможность такой обратной конвертации не помешала бы в UnityEx при запаковке), обновление тулзы не особо помогает, хотя работает чуть быстрее), было б неплохо добавить многозадачность (ключ типа -tasks), ибо у меня проц даже до 50% нагрузки не доходит, чтобы допустим сразу 5 процессов texconv/ConverterTexture (для обработки 5 dds) можно запускать. С “-nft” и “-dds_force_import_to_crunch” через консоль так и не хочет кранченные текстуры создавать/паковать. Отредактировал батник — заработало. Было: if /i "!flip!"=="-yflip" ( set infile=%~dpn2_FLIP%~x2 Copy /Y %2 "!infile!" "%~dp0..\ConverterTexture.exe" "!infile!" "!infile!" -flipv rem "%~dp0..\texconv.exe" -vflip -o %~dp2 -y "!infile!" ) "%~dp0crunch_x64.exe" -file "!infile!" -out %1 %3 -maxmips %5 if not exist %1 ( "%~dp0old\nwn_crunch.exe" -file "!infile!" -out %1 %3 -maxmips %5 ) if /i "!flip!"=="-yflip" ( del "!infile!" ) Стало: set infile=%2 set infile=%~dpn2%~x2 Copy /Y %2 "!infile!" if /i "!flip!"=="-yflip" ( "%~dp0..\ConverterTexture.exe" "!infile!" "!infile!" -flipv ) "%~dp0crunch_x64.exe" -file "!infile!" -out %1 %3 -maxmips %5 if not exist %1 ( "%~dp0old\nwn_crunch.exe" -file "!infile!" -out %1 %3 -maxmips %5 ) По поводу бандлов ещё такой вопрос: если c “-dds_force_import_to_crunch” в бандл (> 3Gb) паковать, то текстуры битые пакуются? В GUI вроде норм, только через консоль проблемы с паковкой, но в игре dds не будут видеться. for %%a in (animation.bundle) do ( if exist "Unity_Assets_Files\%%~na\" ( UnityEX.exe exportbundle "%%a" UnityEX.exe import "%%a" -res -dds_force_import_to_crunch -p ".\" UnityEX.exe importbundle "%%a" Если паковать в бандл через exportres/importres (см ниже), то dds пакуются, но всё равно сначала надо сделать “сухой” прогон (см в самом низу), иначе будет ошибка EStreamError, хотя dds будут в итоге нечитабельные (EReadError при распаковке и игра их не будет видеть). for %%a in (animation) do ( if exist "Unity_Assets_Files\%%~na\" ( UnityEX.exe exportres "%%a" UnityEX.exe import "%%a" -res -dds_force_import_to_crunch -p ".\" UnityEX.exe importres "%%a" ) ) В общем разобрался — если импортить в очень большой неразжатый предварительно бандл сразу, то получаем: но если сделать сначала “сухой” прогон (для разжатия бандла), то затем в бандл можно паковать, хотя всё равно в итоге будут проблемы с импортированными файлами (см выше). for %%a in (animation) do ( UnityEX.exe exportbundle "%%a" UnityEX.exe importbundle "%%a" )
-
Не знаю баг не баг, но BC7 (а по факту BC7 → DXT5 → crn, ибо экспорт в DXT5 теперь работает) кранчится, только если убрана галка переворачивать, даже если сначала запаковать DXT5 вместо BC7, а потом уже делать импорт в crn, батник pack_crunch.bat сегодняшний если что.
-
Проблема в том, что BC7 как раз в DXT5 у меня не экспортируются в UnityEx, вот ассет https://pixeldrain.com/u/f4daWrHg (слева на картинке открытый Spaceship-Drakir5.tex.dds после экспорта)
-
Кранчеры, насколько я понял, не могут напрямую паковать BC7 → crn, поэтому надо сначала через texconv.exe пережать, например, в DXT5 или RGBA и только потом уже кранчить. Отсюда вопрос, раз в UnityEx есть галка DX10 to DXT5, то хотелось бы увидеть и DX11 to DXT5 тоже для того, чтобы ”DDS force import to Crunch” работал на BC7 текстурах. В png, кстати, UnityEx тоже BC7 не конвертирует. Upd: даже если dds текстуру предварительно конвернуть в DXT5 из BC7, всё равно UnityEx не хочет как crn её паковать через ”DDS force import to Crunch”, можно только DXT5 без кранча импортировать и вообще BC7 dds тоже походу назад не пакуется, только так BC7 → DXT5 → ассет. И BC7 текстуры всегда перевёрнутые экспортируются независимо от выбора настроек переворачивания в UnityEx.
-
Теперь работает и после паковки игра не крашится.
-
Новая версия (v1.10.6.3 Ultimate) без конца сыпет ошибками — в прошлой такого не было. Ну хоть со скоростью вроде профиксилось...
-
Если “-nft” убрать (либо в pack_crunch.bat "%~dp0crunch_x64.exe" -file %2 -out %1 %3 %4 -maxmips %5 поменять на "%~dp0crunch_x64.exe" -file %2 -out %1 %3 -maxmips %5, что походу одно и тоже), то пакует без ошибки в указанный файл. Новая версия бажная: теперь экспортит из бандлов полчаса вместо одной минуты, хотя в прошлой всё ОК. Импорт (код ниже) тоже протестить (чтобы узнать профиксен или нет) не получилось, ибо ппц медленный... for %%a in (*.bundle) do ( if exist "Unity_Assets_Files\%%~na\" ( UnityEX.exe exportres "%%a" UnityEX.exe import "%%a" -p ".\" UnityEX.exe importres "%%a" Игру для эксперименов я в личку скину. Кстати, при конвертации fsb->wav UnityEx создаёт 0 байтные файлы (типа etfx_shoot_soul.snd_3BCF5FB98A8CBB34.fobj) там же, где сами бандлы при их распаковки.
-
Не жмуца .bundle файлы, не важно какого размера, UABEA тоже это подтверждает (не предлагает разжать при открытии). Нарыл прогу (медленная правда) для сжатия бандлов https://pixeldrain.com/u/QFK8JrU6 Usage: UBT.EXE <options> <infile> <outfile> Options: -c : Compress bundle file (must specifiy use of LZ4 or LZMA). Example usage: UBT.EXE -c lz4 decompressed_data.unity3d data.unity3d UBT.EXE -c lzma decompressed_data.unity3d data.unity3d Кстати importres руинит бандлы походу. После импорта игра крашится (для проверки у меня пакуются назад оригинальные ресурсы без изменений, сразу после экспорта). @echo off color a for %%a in (*.bundle) do ( if exist "Unity_Assets_Files\%%~na\" ( UnityEX.exe exportres "%%a" UnityEX.exe import "%%a" -res -p ".\" UnityEX.exe importres "%%a" ) ) del /q "*.resS" del /q "*.resource" Если по-старинке импортить через importbundle, то всё пучком. @echo off color a for %%a in (*.bundle) do ( if exist "Unity_Assets_Files\%%~na\" ( UnityEX.exe exportbundle "%%a" UnityEX.exe import "%%a" -res -p ".\" UnityEX.exe importbundle "%%a" ) ) del /q "CAB-*" И ещё не знаю баг не баг, но “-dds_force_import_to_crunch” в связке с “-nft” вызывает краш при запаковки RGBA32 текстур через консоль (из-за того что не создаётся .crn файл и UnityEx не может его найти), проверить можно, например, на файле “globalgamemanagers.assets/curcs.tex” https://pixeldrain.com/u/LkNvRVx2 из игры “NTR Apartment”.
-
У меня игра/бандлы на диске I: лежат в папке games — походу дело в этом. Кстати, сжатие бандлов формата .bundle не планируется делать (LZ4/LZMA), ибо, насколько я понял - это только для .unity3d бандлов сейчас работает?
-
после прогона данного экспорт батника в папке с кучей .bundle файлов у меня появилось почти столько же .temp файлов (86 бандлов и 81 темпаков, не появились темпаки только у бандлов, где нет CAB-*.resS файлов внутри, например, где только звуки) сколько самих бандлов в итоге, ошибок не было вроде. С одной стороны, можно добавить del "*.temp", но лучше если будет само чиститься, думаю. Самое интересное, что после импорта темпаки удалились сами.
-
UnityEX.exe export "test.bundle" -t ogm,webm,dds,tex,crn,fsb -p "C:\games\Test\Test_Data\StreamingAssets\aa\StandaloneWindows64" UnityEX.exe exportres "test.bundle" UnityEX.exe importres "test.bundle" Замутил такой батник для тестов — вроде работает, но, думаю, не помешал бы ключ для удаления импортированных кабов (которые создаются во 2й команде) на последнем шаге, что-то типа “-delcab” в конце.
-
-f для ассетов, -p для бандлов походу, ибо с 1м структура распаковки другая (нет папки CAB-*). Кстати, текстуры можно сразу в .bundle паковать без предварительной распаковки CAB-* файлов из бандла, проблема только в видео и аудио (ругается на отсутствие CAB-*.resource).
-
Я в курсе, что путь слишком длинный (хотя я и так его укоротил), но планируется это как-то фиксить, ибо когда бандлы далеко запрятаны, то путь становится хочешь, не хочешь, очень длинным.