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

Вскрытие XCOM TBG. Локализация

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

Прошу помочь. Сначала немного о сабже - это приложение для настольной игры XCOM, написанное на Unity 4.6 (судя по логам). Я понимаю, что сама тематика немного не по специализации форума, но больше не знаю куда обратиться.

XCOMTBG - App Win

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

Пользуясь советами и программами из данного раздела форума мне удалось найти файл, в котором хранится локализация. К сожалению, Unity Assets Explorer (1.3 и 1.5) хоть и смог распаковать архивы Unity, но при сборке обратно вместо какого-либо из языков локализации отображаются названия переменных (скрины скину вечером, сейчас, к сожалению не могу их снять), да и объем файла увеличивается на 3 лишних мегабайта.

Плагин Unity Assets Support для Total Commander'а напротив, справился с задачей на отлично - мне удалось вытащить файл, заменить ряд названий (поставил русские названия, вместо немецких) и загрузить обратно в архив.

После успешной первой пробы был переведён ещё кусок текста и названий. Но при дальнейшей загрузке обновлённого файла локализации приложение начало вылетать.

По логам, которые создаются в папке приложения ошибка в следующем:

DynamicHeapAllocator out of memory - Could not get memory for large allocationCould not allocate memory: System out of memory!Trying to allocate: 1935762480B with 4 alignment. MemoryLabel: StringAllocation happend at: Line:74 in Memory overview

 

На всякий случай, я решил удалить часть локализации, которая мне не понадобится в дальнейшем (другие европейские языки). И тут тоже постигло разочарование, т.к. ошибка расширилась:

The file 'D:/!Work/Unity/XCOMTBG_Win (1)/XCOMTBG_Win_v1.1.3_Data/resources.assets' is corrupted! Remove it and launch unity again![Position out of bounds! 111980300 > 111972262](Filename:  Line: 273)DynamicHeapAllocator out of memory - Could not get memory for large allocationCould not allocate memory: System out of memory!Trying to allocate: 1850027056B with 4 alignment. MemoryLabel: StringAllocation happend at: Line:74 in Memory overview

 

Если честно - я слабо представляю как правильно сделать локализацию данного приложения (хотя на первый взгляд вроде всё не сложно). Очень прошу помочь советом - с чего начать, как продолжить, на что обратить внимание и где нужно будет внести изменения, чтобы все заработало.

Заранее спасибо.

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

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


Ссылка на сообщение
После успешной первой пробы был переведён ещё кусок текста и названий. Но при дальнейшей загрузке обновлённого файла локализации приложение начало вылетать.

А ты добавлял в тот же файл куда уже добавлял до этого или в оригинальный заново? Попробуй в оригинальный добавлять. По чуть-чуть.

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


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

Добавлял в изменённый. Я оставил контрольный файл локализации, который был изначально (Localization.mov.xml.bcg). Если копирую его обратно (т.е. восстанавливаю assets в том виде, как они были изначально, то приложение снова запускается.

Хорошо, попробую в оригинальный, по чуть-чуть.

Странно, теперь даже то, что получалось в начале не получается. Вылетает с ошибкой, в логах:

(Filename: C:/BuildAgent/work/d63dfc6385190b60/artifacts/StandalonePlayerGenerated/UnityEngineDebug.cpp Line: 49)DynamicHeapAllocator out of memory - Could not get memory for large allocationCould not allocate memory: System out of memory!Trying to allocate: 1952544368B with 4 alignment. MemoryLabel: StringAllocation happend at: Line:74 in Memory overview[ ALLOC_DEFAULT ] used: 13836895B | peak: 0B | reserved: 20971520B [ ALLOC_GFX ] used: 69948B | peak: 0B | reserved: 7340032B [ ALLOC_CACHEOBJECTS ] used: 427232B | peak: 0B | reserved: 10485760B [ ALLOC_TYPETREE ] used: 0B | peak: 0B | reserved: 0B [ ALLOC_PROFILER ] used: 2340B | peak: 0B | reserved: 8388608B Could not allocate memory: System out of memory!Trying to allocate: 1952544368B with 4 alignment. MemoryLabel: StringAllocation happend at: Line:74 in Memory overview

 

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


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

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

2d23247bd8b4.png

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


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

Вот я рискую сорвать приз за тупые вопросы: А как правильно актуализировать информацию, какая верная длина должна быть?

И ещё вопрос: Есть ли возможность удалить из файла ненужные локализации? Чтобы была только русская и английская версии.

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


Ссылка на сообщение
Вот я рискую сорвать приз за тупые вопросы: А как правильно актуализировать информацию, какая верная длина должна быть?

Размер файла в байтах

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


Ссылка на сообщение
Размер файла в байтах

Хм. Идею понял, но вот тут интересный вопрос: судя по скрину длина файла 982056 + 4, но Тотал Коммандер говорит, что общая длина файла 982064. Куда делись 4 байта? О_о

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


Ссылка на сообщение
Хм. Идею понял, но вот тут интересный вопрос: судя по скрину длина файла 982056 + 4, но Тотал Коммандер говорит, что общая длина файла 982064. Куда делись 4 байта? О_о

4 байта в конце (00 00 00 00), служат для "выравнивания" длинны файла, пока оставь их как есть

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


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

Всем огромное спасибо за помощь, работа пошла!

Но как всегда - новые сложности:

Рабочий файл локализации

Как только я добавляю дополнительный перевод в файл выше (ну, в смысле перевожу очередной кусок текста) приложение начинает вылетать с ошибкой:

The file 'D:/!Work/Unity/XCOMTBG_Win (1)/XCOMTBG_Win_v1.1.3_Data/resources.assets' is corrupted! Remove it and launch unity again![Position out of bounds! 112833268 > 111981298](Filename:  Line: 273)Mismatched serialization in the builtin class 'TextAsset'. (Read 983076 bytes but expected 983074 bytes)(Filename:  Line: 1174)Shader warmup: 17 shaders 45 combinations 0.025sAudioController - Initialized with 24 hooks(Filename: C:/BuildAgent/work/d63dfc6385190b60/artifacts/StandalonePlayerGenerated/UnityEngineDebug.cpp Line: 49)Loading Saved Settings Music: 0.7894737 Sound: 0.7894737(Filename: C:/BuildAgent/work/d63dfc6385190b60/artifacts/StandalonePlayerGenerated/UnityEngineDebug.cpp Line: 49)DynamicHeapAllocator out of memory - Could not get memory for large allocationCould not allocate memory: System out of memory!Trying to allocate: 1733230628B with 4 alignment. MemoryLabel: AudioAllocation happend at: Line:334 in Memory overview[ ALLOC_DEFAULT ] used: 14692208B | peak: 0B | reserved: 20971520B [ ALLOC_GFX ] used: 69992B | peak: 0B | reserved: 7340032B [ ALLOC_CACHEOBJECTS ] used: 158348B | peak: 0B | reserved: 10485760B [ ALLOC_TYPETREE ] used: 0B | peak: 0B | reserved: 0B [ ALLOC_PROFILER ] used: 2376B | peak: 0B | reserved: 8388608B Could not allocate memory: System out of memory!Trying to allocate: 1733230628B with 4 alignment. MemoryLabel: AudioAllocation happend at: Line:334 in Memory overview

 

Пока проверил на двух разных кусках перевода в разных частях файла, ошибка вылетает одна и та же, как только значение длины файла, которую я записываю становится: 0a 00 0f 00

на нынешнем значении всё работает

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


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

UPD Всем огромная благодарность за помощь! Процесс идёт полных ходом.

Для тех, кто будет разбираться с дебрях перевода, читая эту тему - чтобы избежать ошибки в данном посте выше, необходимо добавить (или убрать) в конец файла (в блок выравнивания) дополнительные 00 байты так, чтобы длина файла делилась на 4.

Кстати, вопрос всё ещё актуален, кто-нибудь сталкивался:

И ещё вопрос: Есть ли возможность удалить из файла ненужные локализации? Чтобы была только русская и английская версии.

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


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

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

Накопилось несколько вопросов, с которыми так же хотел попросить помочь:

1. Если в файле локализаций меняешь название языка (в моём случае German -> Russian), то приложение падает. Как я понимаю, это связано с тем, что по названиям локализаций подгружаются остальные файлы из архива (картинки, музыка). Можно ли как-нибудь исправить данное падение и таки добавить русский в список доступных языков?

1.1. Есть вариант конечно, попробовать добавить пачку файлов с _Russian в названии, вдруг получится и заработает, но об этом скажу только завтра.

2. В продолжении варианта 1, есть ли возможность убрать остальные локализации, кроме Английской и Русской? (они, в принципе, не нужны, только место занимают) Если убираю вручную, то приложение опять же падает (а вот тут уже возникает подозрение, что языки "вшиты" в код приложения)

3. Который дополнительно вылезает из первых двух пунктов - есть вариант добавить тупо русский ко всему набору. И вот тут возникает ещё одна проблема: если оба предположения верны (части названий файлов и "вшитые" в код локализации), то если с первой проблемой разобраться можно легко, то как разобраться со вшитыми названиями локализаций и где это делать?

Заранее благодарен за помощь.

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

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


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

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

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

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

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

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

Войти

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

Войти сейчас


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

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

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

    • Динозавры это банально, вот если б боевые зайцы, то было бы другое дело, а так...
    • - Там больше 5% не озвученных фраз?
      - Больше 20 совершенно неверных диалогов которых не в том месте стоят?
      Если был стрим с полным прохождением с этой озвучкой на канале, то что мешает просто выложить эту озвучку? Я уверен что очень многие за это скажут спасибо и не только.

      Я думаю не все сильные эстеты и даже если большинство диалогов озвучены это лучше чем без озвучки.

        Надеюсь он понимал что срок не важен это 4+ лет

       
    • Обидно, честное слово.  Разрабы наши, хотел поддержать. Но … Да, в такое на релизе — лучше не играть, конечно.
    • Альфа версия это как раз таки не готовая локализация. Как будет готова сразу выложим. Насчёт беты ещё подумать можно было бы, но в текущем виде ещё слишком сыро. Всё очень просто. Сплит это платный проект со сборами и горящими сроками. У психов же никогда не было сборов и сроков. Был один спонсор с крупным донатом (и на условиях, что сроки для него не важны), который покрыл около половины стоимости, а остальное как раз таки записывалось за счёт тех самых платных проектов, ну и + вся наша работа бесплатно. К тому же проект совместный и текстовая часть в своё время сильно задержалась (на то были весомые причины у ребят и это не в укор командам, которые здесь занимались текстом, просто факт), а мы не могли всё это время сидеть и ждать его. 
    • UPD: добавил новые шрифты
         
    • @Alex Po Quest @Tirniel если лень ждать ремейк Готики, но прям хотите на новогодние поиграть, уже вполне можно — кайфанёте. Но
      Для примера о чём я выше писал, чтобы вы понимали суть проблемы. 3 глава, основные возможные квесты главы закрыты, идем строго по главному, т.е. в Мире по пути делать пока нечего и даже противников нет, т.к. все тропинки уже зачищены. И вот вы в точке начала очередного шага квеста (быстрого перемещения пока НЕТ, и с ним позже лучше не станет) это 7-12 мин реального времени (в зависимости от вашей выносливости и знания карты, если конечно вы её уже открыли). Думаете всё?  Потом обратно отчитываться. Это реально больно, осознавать как разработчики крадут время игроков. И это при том, что я прохожу уже 2 раз, еще помня, что за чем последует, и стараюсь раньше времени в локи, в которые отправят позже, не лезть, т.е. тут даже будущие гайды не позволят сократить подобное, а этого в игре много. Баги и остальное поправят, а вот эту механику, при отсутствии быстрого перемещения в любой форме, никак, если только не введут руны, свитки или проводников. 
    • Пресс Ф. Великий мужик был, одни из лучших шутеров делал. Жаль, что так рано ушёл, сколько ещё хорошего он пог сделать.
    • Ничего, лучше уж подожду пару-тройку месяцев для первых “хотфиксов”. Мне не горит играть прям на релизе. Например, как в случае рог трейдера совсем не жалею того, что ждал больше года патчей и балансовых фиксов (как оказалось, стоило бы даже подольше подождать).
  • Изменения статусов

    • maddante665  »  parabelum

      https://disk.yandex.ru/d/A7W9aHwW7wLTjg
      ссылка на торрент , в нем архив с игрой.
      единстенное в геймпасее папка TotalChaos_Data так, а в стиме Total Chaos_Data, но если пробел убрать в архиве с ркссификатором все равно не работает, ломаются надписи , просто прозрачные. я пробовал только текст .
      · 1 ответ
    • АлинаQT

      Играю в СТИМовскую версию. Столкнулась с непроходимым багом: при входе в Клуб капитанов игра вылетает на Рабочий стол и закрывается. Собрала 6 ингредиентов из 7, нужен мел. Но не могу войти. Пробовала войти на английской версии без русификатора, все равно вылетает и закрывается. Есть решение для этой проблемы? Буду рада любой помощи.
      · 0 ответов
    • Jimmi Hopkins  »  SerGEAnt

       
      Добавлена ONLINE версия. Проверено в steam — достижения, поддержка по сети.
      · 0 ответов
    • fevralski  »  SerGEAnt

      привет, есть что по хмурому?
      · 0 ответов
    • Netulogina  »  SerGEAnt

      Здравствуйте.
      Назрел такой вопрос. Существует ли архив/резервная копия переводов которые хранятся на данном сайте?
      · 5 ответов
  • Лучшие авторы


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

×