Создание и редактирование UCS файла

Добавлен , опубликован
Раздел:
Warhammer 40.000
Весь текст, содержащийся, загружаемый и используемый в Dawn of War, находится в UCS файлах.
Эти файлы являются простыми текстовыми файлами, но Юникод (т.к. ASCII кодировка не может содержать больше символов для нелатинских кодировок (A-Z), к примеру для корейского) при этом имеет специальный заголовок (который рассмотрен ниже) .
Этот файл используется для облегчения введения текста в игру - от НИР’ов, до описания юнитов в новых расах.

UCS файл: содержание и размещение

UCS размещаются в \Locale\LANGUAGE\ папках вашего мода. Есть стандартный файл в \Engine\Locale\LANGUAGE\Engine.ucs для игрового интерфейса (в основном для главного меню), и стандартный для ДоВ’а в папке w40k\Locale\LANGUAGE\w40k.ucs, а в wxp\Locale\LANGUAGE\wxp.ucs находится стандарт для Winter Assault.
Эти 3 файла не нуждаются в распаковке и загружаются вместе с любым модом при загрузке игры. Запомните: вы должны перезапустить игру для того чтобы увидеть изменения UCS файла. Эти файлы также не должны иметь конфликтов с другими UCS файлами, загружаемыми вместе с модами, т.к. любой конфликт в UCS файлах приведет к краху игры.
Содержание UCS файла выглядит так:

301Resolution
36006Your troops are under attack.
Обычно это выглядит так: номер (положительный), потом нажатый tab, а после идет текст, который может иметь много пробелов, но находится на одной строке.
Номера могут быть очень большими - свыше 1.000.000. Не используйте номера, зарезервированные Relic’ом (с каждым аддоном они увеличиваются). Здесь написаны зарезервированные строки с 15000000 по 20000000 для модов, создаваемых игроками.
Это важно, чтобы каждое новое описание начиналась с новой строки. Эти строки размещены в порядке возрастания (1, 2, 3...), а пробелы делят номер и размещённый текст.
Вы не можете иметь новые строки, но вы должны создать новое содержание для каждой новой строки, этим может быть, например, новый параграф для миссионного брифинга или описание юнита для новой расы.
Заметка: Одинаковые отступы после цифр красивы. Как вот эти:

10001Mod Name:
10002Super mod!

12000The descriptions now go below. This line not used in game.

12001 Super Killa Tank
12002 Kills stuff
12003 Costs lots
Это также важно по отношению к роликами. Как замечено здесь, в UCS файлах должны находиться все тексты диалогов роликов, например:

242000 Everyting is ready, Boss!
242002 Dem humies is in for a good stompin'!  Dis is gonna be da best fight o' dere miserable lives!
242004 Just make sure it's the last fight of their lives.
Не используйте нечетные номера, по некоторым причинам они не работают. По каким причинам не работают - Relic никогда не раскроет эту страшную тайну.

Формат файла и используемые программы

Сейчас формат файла известен не полностью. Но, как бы то ни было, это стандартный текстовый файл, имеющий специальный заголовок. Образец заголовка UCS файла с 16-ричным дампом:

FFFE3500 30003000 30003000 30003000 30002000 46006900
И это юникод-файл, пересохранённый в Textpad'e:

35003000 30003000 30003000 30003000 20004600 69006E00
Если кто-нибудь имеет хорошую идею насчет того, почему имеется 4 байта: FFFE в начале файла, то это бы решило много проблем с UCS файлами! Текст, если вам интересно, для FFFE не доступен, но как было найдено в быстром поиске: U+FFFE и U+FFFF. Они не используются при декодировке, но вместо этого зарезервированы для внутреннего использования (U+FFFF как часовой, а U+FFFE как показатель размещение байтов//?//).
Fizzled по почте прислал некоторые отобранные FAQ с таких ресурсов как wikipedia:
Так, я догадываюсь, что все UCS файлы используют кодировку UTF-16 c FFFE, являющейся "способом кодировки, который использует ... little-endian порядок". В то время, когда "нормальный Юникод файл" пользуется UTF-8, который не требует байт-порядка, обозначенного в начале, и приводящего к путанице.
Если вы используете такую программу, как Textpad, когда вы пересохраняете любые изменения в UCS или вы просто создаете Юникод файл сначала, то он не будет работать в игре (и в консоле появится ошибка) .
Но более простые программы, такие как блокнот, откроют и сохранят его без каких-либо изменений в заголовке. Поэтому используйте Блокнот для открытия, редактирования и сохранения UCS фалов.
Существует более простой способ: используете любой ваш любимый текстовой редактор (textpad, например), делаете TXT версию файла, потом копируете сделанную в UCS файл, открываете в блокноте.

Создание чистого UCS файла


Первым делом вы должны найти оригинальный UCS файл. Не редактируйте оригинальные UCS файлы, а то у вас могут возникнуть проблемы с патчингом, и в случае глюков найти оригинальные файлы без установочного диска будет проблематично.
Открытие английской версии w40k описано ниже:
Идите в папку Install path\Dawn of War\W40K\Locale\English (замените English на какой либо другой язык, если вам надо)
Затем вы увидите W40k.ucs файл, выберите его, нажмите правой кнопкой мыши и выберите "Открыть с помощью..."
Заметка: Это было бы мудро, если вы, в первую очередь, сделаете его копию.
Выберите блокнот из списка программ и откройте его. Для облегчения дальнейшего использования вы можете сделать блокнот стандартной программой для его открытия.
Сейчас вы можете создать чистый файл, следуя эти шагам:
  1. Выделите всё, нажав CTRL + A.
  2. Нажмите Delete.
  3. Используя команду "Сохранить как...", сохраните файл где-нибудь в другом месте.
Если вы не удалите содержание файла, это может привести к ошибке. Конечно, вы можете экспериментировать, но не пересохраняйте оригинальный w40k.ucs файл! Вас предупредили!

Добавление информации к вашему UCS файлу

Это может быть сделано 2 способами. Предпочитаемый мною метод - это копирование текста из TXT файла, редактируемого любой программой и замещение им содержания любого UCS файла. Это значит, что ваш файл никогда не будет нарушен или не читаем Dawn of War'ом:
  1. Откройте свой TXT файл с данными. Убедитесь, что он правильно отформатирован.
  2. Копируйте всё (CTRL + A, потом CTRL + C).
  3. Закройте свой TXT файл, откройте UCS файл в блокноте.
  4. Выделите всё содержимое UCS файла (CTRL + A), затем вставьте содержимое своего TXT файла (CTRL + V).
  5. Сохраните свой UCS файл.
Этот метод позволяет редактировать ваш TXT файл в любой программе, которая удаляет требуемый заголовок. Запомните, что UCS файл закодирован юникодом, поэтому ваш файл должен быть тоже в нем.//!!//
Другой метод - это редактирование UCS файла на прямую. Этот путь сложнее, так как Блокнот не имеет много возможностей, делающих это легче – таких, как изменение длины tab или легкий поиск.
**__Примечание от переводчика: Имеется еще один способ: редактирование UCS файла напрямую, используя SCiTe. Если вы читали наши предыдущие руководства, вы знаете, что это такое.
Запомните: всегда имейте резервные копии любого UCS или TXT файла, который вы делаете. Вы ведь не хотите потерять сотни строчек текста, просто потому что случайно нажали Delete и сохранили файл. __**

Проверка на ошибки

Есть несколько ошибок, которые появляются в неправильных UCS файлах:
“Cannot find localised string” появляется, если вы имеете ссылки (такие как $43020 в АЕ или 30020 в SCAR и NIS файлах), но нет такой строки в любом из загружаемых UCS файлов. Для исправления создайте строку или измените ссылку (это трудно, т.к. игра никогда не говорит, в каком файле она не может её найти).
«LOCALIZER — Failed to load MODNAME\Locale\LANGUAGE\UCSNAME.ucs» (или похожая) появится, когда вы имеете, например, новый TXT файл и сохранили его с UCS расширением. Меня раздражает, как Relic использует иногда нечетные номера в их UCS файлах и даже не обеспечивает нас приличным строковым инструментом, так что мы должны копировать и пересохранять их файлы.
“Duplicate entries” (или похожая) появится, когда вы пробуете загрузить два конфликтных UCS файла содержащие похожие номера. Вы должны быть уверены, что все номера в тексте не повторяются!

Возможности использования UCS файлов

В некоторых случаях в игре, хотя и я не проверял это, вы можете сделать ссылку на строку в UCS файле. Для этого вставьте в текст файла "$Номер", так например "$40000" становятся New test string.

GameData["ui_ext"]["ui_info"]["help_text_list"]["text_01"] = "$40000"
GameData["ui_ext"]["ui_info"]["help_text_list"]["text_01"] = New test string
Примечание: Вы все еще нуждаетесь в компилировании информации, используя Attribute Editor в версии выше 1.3., но вы можете вручную отредактировать LUA файл и просто откомпилировать его в АЕ.
Вы можете делать тоже самое в SCAR и NIS файлах. Вы можете размещать ссылки в тексте, цитатах, где хотите, в общем.
Так как имеется большое количество строк, это не факт, что вы захотите иметь версии на других языках. Но для того чтобы они имелись, вы можете использовать программу переводчик на UCS файле, для того чтобы сделать базовый перевод на другие языки.

Языковые локализации

Dawn of War поддерживает моды с мульти-языковыми переводами. Вы имеете несколько папок с UCS фалами в твоей папке Locale. У меня это Locale\English.
Это названия языков которые вы можете использовать в Locale папке, которые я знаю (с сохранением регистра)
**Chinese
Czech
English
English_Chinese
French
German
Italian
Japanese
Korean
Korean adult
Polish
Russian
Slovak
Spanish**
Конечно, если вы играете в немецкую версию, но имеете файл только в английской подпапке, вы не сможете увидеть слова. Очевидно, что использование большого количество озвучки роликов для всех языков займет слишком много места. Использовать отдельные закачки для каждого языка было бы легче, отдельные UCS файлы тоже были бы неплохой идеей.
Заметка: Если вы не планируете переводить UCS файлы, то скопируйте ваш оригинальный файл в каждую папку, так как если вы скопируете только в одну, в других версиях текст не появится.
Перевод GreatVV