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

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

Плагин для Total Commander для работы с архивами движка Unity.

[En] This plugin for Total Commander (ghisler.com) can pack and unpack files stored in Unity archives.

Это альтернатива для UnityAssetsExplorer от Haoose.

[En] This is alternative for standalone UnityAssetsExplorer from Haoose

Текущая версия / Current version: 0.7.5

Возможности / Capabilities:

Открытие архивов от Unity / Open archives +

Распакова файлов из архива / Unpack archives +

Запаковка файлов в архив / Pack archives +

Запаковка в архив файлов отличного размера, от оригинального / Support pack of different size +

Поддержка архивов > 2Gb / Support size of arhives > 2 Gb +

Конвертация форматов / Supported formats +- [assets, tex, uogm] (Неполная поддержка / Partial support)

Этот плагин находится в стадии экспериментальной разработки и теоретически способен повредить файлы архивов Unity, открываемые с помощью него,

уничтожить все данные на вашем компьютере, и взорвать нашу галактику.

И естественно, я, как автор, не несу ответственности за действия вызванные этим плагином.

License: Creative Commons Attribution 4.0 International Public License

https://www.dropbox.com/s/6955280opkej8om/unity_wcx.zip

В Total Commander войдите в архив с предложенным плагином и выполните вопросы программы установки плагинов Total Commander.

[En] Run Total commander and press Enter at archive unity_wcx.zip for install. Press Ok when he ask you. Now you can view, extract, pack assets like other archives in Total Commander.

Мы можете использовать Ctrl + PgDown для входа в архивы tex, uogm.

[En] You can use Ctrl + PgDown for exploring tex, uogm.

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

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


Ссылка на сообщение
Пока обнаружил пару ошибок в текстурах ARGB32 (hx5), вроде это tga, a у вас dds, ну это не суть важно, под dds всё заточено. В общем, при конвертации из tex, переворачиваться должны все 4 байтовые значения картинки, а в плагине старший перемещается на младший и 3 байта влево. От этого каналы неправильно идут. В проге от Haoose это уже поправлено. А обратная конвертация у этого типа совсем не работает даже равный размер, вставляется в файл начало самого ассета. При замене этих tex всё в порядке.

Если возможно можете описать структуру шапки tex файлов. Знаю только: длинна, ширина, размер текстуры, формат.

предоставьте пожалуйста tex файл на котором можно вопроизвести ошибку, и название игры - чтобы посмотреть результат на экране.

я не пойму что за hx5, может dxt5 ? хотя я с ним вообще порядок байтов не меняю.

из описание формата tex в внутреннем языке

# imagetype Pac = record {  global_header: GlobalHeader;  image_pixels: ImagePixels(global_header.bytes);  } &let{    extension: stdstring = ext.getExtension();    fullname: stdstring =  ext.fullname( ext.tex_filename, extension);} &byteorder=littleendian ;# header of main storagetype GlobalHeader = record {  width: uint32;  height: uint32;  image_size: uint32;  compression_type: uint32;  mipmap: uint8;  readable: uint8;  read_allow: uint8;  dummy: uint8;  image_count: uint32;  texture_dimension: uint32;  filter_mode: uint32; #0:point 1:bilinear 2:trilinear  anisotropy: uint32; # 0..9  mip_bias:uint32;  wrap_mode:uint32; #0:repeat 1:clamp  lightmap_format:uint32; # unity version > 3 , fileGen >= 8  colorspace_or_not: case prefetch < 2 of {    true  -> colorspace:uint32; #unity version > 3.5 #fileGen == 9    false -> none:empty;  } &requires(prefetch);  bytes: uint32;} &let {    file_size: uint32 = bytes + 14 * 4;    prefetch: uint32 withinput $context.flow.pacdata(sourcedata, offsetof(lightmap_format)+4, 4 );    # change to begin_of_data + offsetof} &exportsourcedata;#array of pixels    type ImagePixels(bytes: uint32) = record {pixels: bytestring &transient &length=bytes;} enum TEX_FORMAT{    TEX_FORMAT_A8       = 1,    TEX_FORMAT_ABGR4444 = 2,    TEX_FORMAT_BGR24    = 3,    TEX_FORMAT_ABGR32   = 4,    TEX_FORMAT_RGBA32   = 5,    TEX_FORMAT_BGR565   = 7,    TEX_FORMAT_DXT1     = 10,    TEX_FORMAT_DXT5     = 12,    TEX_FORMAT_BGRA4bpp = 13,    TEX_FORMAT_PVRTC_RGB2       = 30, # invalid byteorder    TEX_FORMAT_PVRTC_RGBA2      = 31,    TEX_FORMAT_PVRTC_RGB4       = 32,    TEX_FORMAT_PVRTC_RGBA4      = 33,    TEX_FORMAT_ETC_RGB4         = 34,    TEX_FORMAT_ATC_RGB4         = 35,    TEX_FORMAT_ATC_RGBA8        = 36};

 

record { } описывает фактические поля

& let {} виртуальные поля

я в теме выкладывал исходники, кстати.

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


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

Да мене это уже не нужно, конвертер уже написал. Вот здесь хорошо видно. https://yadi.sk/d/OA3eZi-hezwdQ

Вот этот TEX_FORMAT_RGBA32 = 5, да ддс.

За код спасибо.

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


Ссылка на сообщение
Пока обнаружил пару ошибок в текстурах ARGB32 (hx5), вроде это tga, a у вас dds, ну это не суть важно, под dds всё заточено. В общем, при конвертации из tex, переворачиваться должны все 4 байтовые значения картинки, а в плагине старший перемещается на младший и 3 байта влево. От этого каналы неправильно идут. В проге от Haoose это уже поправлено. А обратная конвертация у этого типа совсем не работает даже равный размер, вставляется в файл начало самого ассета. При замене этих tex всё в порядке.

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

По распаковке подвела документация по tex, название RGBA32 не соответсвовало действительности -

BGRA32 более соответсвует действительности.

Так что строка

TEX_FORMAT_RGBA32   = 5,

имеет неправильное название

По запаковке чисто моя ошибка.

History:

*исправлен баг с распаковкой tex типа 5 в dds

*исправлен баг с запаковкой dds в tex

Внимание: для запаковки принимаются только dds файлы формата A4R4G4B4, A8R8G8B8, DXT5

поддержка других не выполнена.

Внимание: перешел на новый компилятор gcc-tdm 2, так что вполне вероятны какие-нибудь новые проблемы.

0.7.3

https://www.dropbox.com/s/zgu6h4hjup7o2ld/u..._0.7.3.zip?dl=0

0.7.3 debug

https://www.dropbox.com/s/3sn9q684utfcb8q/u....7.3-d.zip?dl=0

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

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


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

* ресурсы с типом 152 переименованы из ogm в uogm , для избежания путаницы.

так как представляют из себя контейнер для хранения ogm файлов

* добавлена начальная поддержка uogm

* исправлен баг с запаковкой tex файлов. не тестировалось тщательно.

* исправлен баг с сообщениями access violation во время открытия ассетов.

0.7.4 release

https://www.dropbox.com/s/enfmu4ons3mbyrc/u..._0.7.4.zip?dl=0

0.7.4 debug

https://www.dropbox.com/s/pvpj1xcae30kfw0/u....7.4-d.zip?dl=0

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


Ссылка на сообщение
* ресурсы с типом 152 переименованы из ogm в uogm , для избежания путаницы.

так как представляют из себя контейнер для хранения ogm файлов[/url]

Большое спасибо!

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


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

* исправлена ошибка с обработкой последнего файла в архиве

* исправлена ошибка с извлечением ogm файлов в расширенном режиме

0.7.5 release

https://www.dropbox.com/s/zm14x48kxnv2cju/u..._0.7.5.zip?dl=0

0.7.5 debug

https://www.dropbox.com/s/8qyf1r5ugycktvx/u....7.5-d.zip?dl=0

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


Ссылка на сообщение
* исправлена ошибка с обработкой последнего файла в архиве

* исправлена ошибка с извлечением ogm файлов в расширенном режиме

0.7.5 release

https://www.dropbox.com/s/zm14x48kxnv2cju/u..._0.7.5.zip?dl=0

0.7.5 debug

https://www.dropbox.com/s/8qyf1r5ugycktvx/u....7.5-d.zip?dl=0

C ogm теперь проблем нет. Спасибо огромное!

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


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

изменился формат, насколько серьезно счас немогу сказать, я узнаю некоторые структуры но остаются непонятные моменты. плюс мне надо обновить инструментарий - думаю может уйти до месяца до выпуска рабочей версии.

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


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

 

RedSkotina текстуры и шрифты я всё равно через скрипт вытаскиваю и пакую на новых архивах. Меня сильно интересует запаковка бинарного текста как в предыдущих архивах, так как BMS реимпорт для этого не годится.

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


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

Получается что с Unity 5? очень ждем плагинчик. Предыдущие плагины здорово помогали в переводе, но сейчас часть игр идет на 5 версии движка.

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


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

trpvla

Пока можешь поюзать софт в подписи ↓

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


Ссылка на сообщение
How can i edit the extracted font ? I tried import a new ttf font and it was crash.

Размер идентичен?

Новый .ttf должен равняться старому по размеру.

Если старый 1424009 байт, то новый обязан быть тоже 1424009 байт.

The file size is equal?

New .ttf must be = original .ttf.

If original size is 1424009 bytes, then new size must be 1424009 bytes too.

Или же попробуйте Unity Assets Explorer от Haoose. (http://quickbms.aluigi.org[/post]

math GUESS_NAMES = 1 # set to 0 to avoid possible rare problems

# or if you are sure that there are no names

quickbmsver "0.6.1d"

# from my tests:

# - all the mainData are nameless

# - only some *.assets are nameless

# I have not found a point where it's written if a resource is nameless or not

get FULL_NAME filename

if FULL_NAME == "mainData"

math GUESS_NAMES = 0

endif

get EXT extension

if EXT == "unity3d"

print "Error: you must use the unity3d_webplayer.bms script for this archive"

cleanexit

elif EXT == "split0"

callfunction combine_splits 1

open FDSE BNAME

endif

endian big

get HEADER_SIZE long

get FULL_SIZE long

get VERSION long

get BASE_OFF long

math ZERO_GUESS = 0

if VERSION <= 8

xmath OFFSET "FULL_SIZE - HEADER_SIZE"

goto OFFSET

get DUMMY byte

else

# version 9 tested

get ZERO_GUESS long

endif

endian little

endian guess ZERO_GUESS

if VERSION >= 8

get VERSION_STRING string

print "%VERSION_STRING%"

get DUMMY long

endif

if VERSION >= 0xe

get ZERO byte

get BASES long

for i = 0 < BASES

get DUMMY signed_long

if DUMMY < 0

getdstring DUMMY 0x20

else

getdstring DUMMY 0x10

endif

next i

else

get BASES long

for BASE = 0 < BASES

get DUMMY long

math SUB_ELEMENTS = 1

callfunction PARSE_TYPES

next BASE

endif

math ADDITIONAL_FIELD = 0

if VERSION >= 7

if VERSION < 0xe

get ADDITIONAL_FIELD long

endif

endif

get FILES long

if VERSION >= 0xe

padding 4

endif

for i = 0 < FILES

if VERSION >= 0xe

get INDEX long

get ZERO long

get OFFSET long

get SIZE long

get TYPE long

get XTYPE short # same as TYPE

get DUMMY short # -1

if VERSION >= 0xf

get ZERO long

endif

else

get INDEX long

if ADDITIONAL_FIELD != 0

get ZERO long

endif

get OFFSET long

get SIZE long

get TYPE long

get XTYPE long # same as TYPE

endif

savepos TMP_OFF

xmath OFFSET_TMP "OFFSET + BASE_OFF"

goto OFFSET_TMP

math GET_FILENAMES = 0

if GUESS_NAMES != 0

get NAMESZ long

if NAMESZ u< 128

getdstring NAME NAMESZ

strlen TMP NAME

if TMP == NAMESZ

math GET_FILENAMES = 1

endif

endif

goto OFFSET_TMP

endif

set NAME string ""

if GET_FILENAMES != 0

get NAMESZ long

getdstring NAME NAMESZ

padding 4

endif

savepos OFFSET

goto TMP_OFF

xmath TMP "SIZE - (OFFSET - OFFSET_TMP)"

if TMP < 0

math OFFSET = OFFSET_TMP

else

math SIZE = TMP

endif

get BNAME basename

getvarchr TMP NAME 0

if TMP <= 0x20

string NAME p= "%s_%d" BNAME i

endif

callfunction disttype 1

string FNAME p= "TYPE_%d/%s%s" TYPE NAME EXT

log FNAME OFFSET SIZE

next i

startfunction PARSE_TYPES

math ELEMENTS = SUB_ELEMENTS

for ELEMENT = 0 < ELEMENTS

get TYPE string

get NAME string

get SIZE long

get INDEX long

get ZERO long

get DUMMY long

get DUMMY long

get SUB_ELEMENTS long

if SUB_ELEMENTS != 0

callfunction PARSE_TYPES

endif

next ELEMENT

endfunction

startfunction disttype

savepos disttype_offset # backup offset

goto OFFSET # maybe useful

string EXT p= ".%d" TYPE

if TYPE == 21

set EXT ".mat"

elif TYPE == 28

set EXT ".tex"

elif TYPE == 48

set EXT ".shader"

elif TYPE == 49

get DUMMY long

getDstring TEST 4

if TEST == "<?xm"

math OFFSET += 4

math SIZE -= 4

set EXT ".xml"

endif

elif TYPE == 74

set EXT ".ani"

elif TYPE == 83

set EXT ".snd"

math OFFSET += 0x14

math SIZE -= 0x14

goto OFFSET

getDstring TEMP 4

if TEMP == "OggS"

set EXT ".ogg"

elif TEMP == "RIFF"

set EXT ".wav"

elif TEMP == "FORM"

set EXT ".aif"

else

goto OFFSET

get TEMP byte

if TEMP == 0xff

set EXT ".mp3"

elif TEMP == 0x49

goto OFFSET

getDstring TEMP 3

if TEMP == "ID3"

set EXT ".mp3"

else

math OFFSET -= 0x14

math SIZE += 0x14

endif

else # roll back changes

math OFFSET -= 0x14

math SIZE += 0x14

endif

endif

elif TYPE == 115

set EXT ".script"

elif TYPE == 128

set EXT ".ttf"

elif TYPE == 150

set EXT ".bin"

elif TYPE == 152

math OFFSET += 0x10

math SIZE -= 0x10

set EXT ".ogm"

elif TYPE == 156

set EXT ".ter"

elif TYPE == 184

set EXT ".sbam"

elif TYPE == 194

set EXT ".tes"

endif

goto disttype_offset

endfunction

startfunction combine_splits

get BNAME basename

append

for i = 0

string ONAME p= "%s.split%d" BNAME i

open FDSE ONAME 0 EXIST

if EXIST == 0

break

endif

get SIZE asize

log MEMORY_FILE 0 SIZE

next i

append

get SIZE asize MEMORY_FILE

log BNAME 0 SIZE MEMORY_FILE

endfunction

После этого создайте 2 .bat файла. И добавьте туда содержимое из под спойлеров.

Create 2 .bat files.

 

Spoiler

Unpack.bat

@echo off

color a

md Unpack

for %%a in (*.assets) do quickbms.exe -o assets_files.bms "%%a" Unpack\

pause

Pack.bat

@echo off

color a

for %%a in (*.assets) DO quickbms.exe -w -r assets_files.bms "%%a" Unpack\

pause

Поместите .assets файл в директорию с QuickBms (с двумя .bat файлами и файлом assets_files.bms)

Откройте unpack.bat

После этого достаньте шрифт из unpack/type_128 и прошейте в него кириллицу.

Put .assets file into QuickBMS dir (with 2 .bat and assets_files.bms).

Then open unpack.bat.

After that, get the font from unpack/type_128 and make a new font.

Важно!

Новый .ttf должен равняться старому по размеру.

Если старый 1424009 байт, то новый обязан быть тоже 1424009 байт.

Для BMS это особенно важно.

Important!

New .ttf must be = original .ttf.

If original size is 1424009 bytes, then new size must be 1424009 bytes too.

For BMS this is especially critical.

После этого откройте pack.bat и ваш .assets файл готов.

After that, open pack.bat and .assets file with new font is ready.

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

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


Ссылка на сообщение
The file size is equal?

New .ttf must be = original .ttf.

If original size is 1424009 bytes, then new size must be 1424009 bytes too.

Also try to use Unity Assets Explorer by Haoose. (https://www.dropbox.com/s/2qorsfd50ixvn6o/UnityAssetsExplorer.exe)

OR

QuickBMS by Aluigi.

Download Quick BMS and create file assets_files.bms

Then, past the script in this file.

 

Spoiler

Create 2 .bat files.

 

Spoiler

Unpack.bat

Pack.bat

Put .assets file into QuickBMS dir (with 2 .bat and assets_files.bms).

Then open unpack.bat.

After that, get the font from unpack/type_128 and make a new font.

Important!

For BMS this is especially critical.

After that, open pack.bat and .assets file with new font is ready.

i knew, but some games using very small font (~50KB) and i can't mod it smaller than orginal. Do you have other ways?

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


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

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

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

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

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

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

Войти

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

Войти сейчас


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

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

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

    • озвучка не до конца  я так понял ?
    • Ох, так это был чей-то хитроумный план для того, чтобы провоцировать нас тратить ресурс клавиатур для того, чтобы продать нам новые образчики? Ничего себе далекоидущие коварные планы у кого-то, прям зло во плоти.
    • под Sam & Max Beyond Time and Space получается не было рус озвучки старой как в других частях? или ее просто пока не получается портировать?
    • Даскер так остервенело стучал по клавишам, что переломал несколько пальцев.
    • В прямом смысле. Это полноценная игра, где есть начало и есть конец, а не демо версия, включающая лишь кусочек игры без завершения. Ты так и не ответил на вопрос (в том числе и других людей) по поводу того когда именно игра становится по-твоему полноценной, а не огрызком, демкой и так далее. Тебе мною был приведён пример вполне конкретный о том ,что можно до посинения ждать выхода наиполнейшего издания, но всё равно когда-нибудь может появиться ещё более полное издание. Что нам теперь — не играть и считать, что то, что доступно здесь и сейчас — это лишь огрызки игр? Если бы твоя логика была верной и ты сам ей следовал, то скорее всего у тебя не было бы ни одной пройденной игры, т.к. они ведь по сути чуть ли не все по твоей логике являлись бы “не полными”. Посмотри на невервинтер найтс, где после золотого следует платиновое, а потом диамондовое и так далее издания. Если ждать наиполнейшего супер пупер издания, можно десятки лет вообще так ни во что и не поиграть. А потом если вдруг добраться, то понять, что львиная доля этого контента тебе изначально и нафиг нужна не была (как вриант), пройдя по сути базовый сценарий (который уже был в самой первой версии игры без длс), на том и успокоившись. Из чего следует вывод, а не чрезмерно ли ты переоцениваешь значимость длс, утверждая, что без них игры являются неполноценными огрызками. В траблшутере, где ты требовал от меня доказать твои же собственные слова, требуя от меня цитату того, что тебе было не понятно в одном предложении, где целая толпа народа поняла всё, а тебе, как ни разжёвывай, всё было не понятно? Извини, но это был клинический случай, а я отнюдь не психиатр, не учитель и не лингвист, чтобы учить тебя понимать слова, понятные прочим, а также понимать контекст и складывать в уме события воедино. В т.ч. если бы у тебя не было бы настолько дырявая память, то ты прекрасно понял бы ту сценку, банально пройдя игру чуть дальше. А в прочий случаях имею обыкновение давать линки на источники данных, чем лично ты пренебрегаешь, когда ты из раза в раз выдаёшь собственные слова за мнение масс людей. Ты увильнул от ответа, не дав его. Итак, когда у игры версия будет считаться полной: тогда, когда вся основная сюжетка выйдет целиком? Но тогда человек пропустит временные ивенты, если будет ждать у моря погоды. Или если играть с релиза, не пропуская ничего. Но тогда версия игры заведомо неполная, т.к. весь контент ещё не вышел. По итогу у игры ни в один момент времени невозможно наиполнейшее состояние, за которое ты так ратуешь. То есть, следуя твоей логике, подобные игры в любой момент времени будут считаться неполноценными огрызками. Но не нужно быть семи пядей во лбу, чтобы понимать, что это явно не так. А следовательно, мы получаем очередное логическое опровержение твоей логики, т.к. твоя логика не совпадает с реальностью. Извини за прямоту, но длс в большинстве случаев работают не так. Это не вырезанный контент, а дополнительный опциональный, в т.ч. и тот, что появляется уже после релиза, а не вырезанный до релиза. Вырезают контент, пиля тот на длс, лишь самые недобросовестные разработчики, это единичные случаи, которые ты пытаешься приписать всем остальным. В том числе твоя аналогия не выдерживает критики. Где ты видел, чтобы яблоки продавали граммами, распиливая на кусочки, а не штуками на развес? Хоть бы постарался бы что ли. В том числе ты опять увильнул от своего же более старого примера с яблоками и грушами, где яблоки у тебя переставали быть полноценными, если от них убрать грушу, который я будут продолжать тебе напоминать, указывая на его абсурдность.
    • Шел третий день дебатов, оппоненты сточили не одну клавиатуру...
    • Да не, версия для V3 очень даже хороша. (Хотя я я всегда использую не стандартную версию, а Tampermonkey BETA). Все мои скрипты подстроены под V3.
    • Ну как же без утрирования и бреда. А еще в процессе разработки игры и dlc, бывает меняется состав, кого-то увольняют кого-то нанимают, а что-то на аутсорсе вообще делается. Ведьмака что dlc что базовую игру, делал “один и тот же” человек кстати. Рабочая сила разная была только.
    • @Dusker так что тогда по поводу длц, которые делали левые люди? Например гугл говорит, что кровь и вино частично делалось другой командой, не той, что делала основную игру. Значит ли это, что это длц обычная отсебятина и 3-й ведьмак будет вполне себе полной игрой и без него?
  • Изменения статусов

    • Дмитрий Соснов  »  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 | Реклама на сайте.

×