1. Главная страница » Компьютеры

Half life как включить русский язык

Автор: | 16.12.2019

Данный исталлятор русифицирует звук в игре Half-Life. Совместим как с Steam, так и с noSteam версиями игры.

Над русификатором работали
Евгений Синельников- работа со звуком, исправление перевода
Голоса:

— Евгений Синельников — охранники-Барни, ученые, оповещения комплекса Черная Меса, голос костюма HEV, обучение (Half-Life: Blue Shift, Half-Life: Opposing Force), эпизодические роли
— Станислав Черсков – Нихилант, охранники-Отисы(Half-Life: Blue Shift, Half-Life: Opposing Force), дополнительный голос ученых(Half-Life), черные оперативники, дополнительный голос солдат(Half-Life: Blue Shift, Half-Life: Opposing Force), инструктор Барнс (обучение Half-Life: Opposing Force).
— Иван Титов – дополнительный голос ученых(Half-Life), дополнительный голос солдат
— Дмитрий Полонецкий – G-Man
— Петр Бойко — солдаты (Half-Life)
— Slava Blank- солдаты (Half-Life: Opposing Force)
— Филипп Буренин – Доктор Розенберг (Half-Life: Blue Shift), дополнительный голос солдат(Half-Life: Opposing Force), черные оперативники
— Елена Полонецкая – оповещения в поезде
— Елена Кулакова – обучение (Half-Life)

Это статья о том, Как переключить Half Life 2 на русский язык. Но сначала немного предыстории.
На днях я решил перепройти Half Life 2, но сразу же после загрузки из Steam я столкнулся с проблемой — игра установилась на английском языке, хотя в Steam‘е она заявлена как полностью на русском.

Half Life 2 — полностью на русском

Манипуляции приведённые в интернете мне ничем не помогли, но всё же я приведу их здесь для примера, чтобы была полная картина о переключении Half Life 2 на русский язык.

Читайте также:  Gtx 460 vs gt 640

1. Заходим в библиотеку игр Steam и ищем в списке Half Life 2. Нажимаем правой кнопкой мыши и входим в свойства. Переходим на вкладку язык. Выбираем русский и закрываем меню. Входим в игру. Это самый распространённый способ переключить Half Life 2 на русский язык.

2. Также входим в свойства Half Life 2, но выбираем любой другой язык. Дело в том, что иногда после обновления игры языки в меню прописываются неправильно. Пробуем разные языки, периодически запуская игру.

3. Снова заходим в свойства. Заходим в локальные файлы. Нажимаем «Проверить целостность кэша». Если файлы Half Life 2 были повреждены, то эта процедура восстановит их. И Вы получите Half Life 2 на русском языке.

4. И снова входим в свойства. Теперь нас интересуют бета-версии. Обновляемся до последней версии и входим в игру. Всё работает? Отлично!

5. Удаляем Half Life 2 и устанавливаем по новой.

А теперь перейдём к тому способу, которым я решил свою проблему. Подозреваю, что такое может случиться не только из-за установки Half Life 2

Как переключить игру Steam на русский язык

Если Вам не помог ни один из вышеописанных способов, то стоит проверить настройки самой программы Steam. Дело в том, что язык программы может самопроизвольно переключиться на английский язык при установке той или иной игры. У меня это произошло при установке Half Life 2. Итак, вот Вам инструкция к переключению Steam на русский язык.

В левом верхнем углу выбираем меню с названием Steam. Переходим в Settings. Выбираем Interface. Щёлкаем по Select the language, и выставляем русский (russian) язык. Готово! Теперь все игры, для которых доступен русский язык — будут запускаться с русским языком. В том числе и Half Life 2!

Если выстроить все игры, к которым наша игроманская геймдев-студия (кодовое название Format C:) переводит моды, по сложности локализации, то получится приблизительно такая цепочка. Проще всего (с точки зрения техники, но не времени) адаптировать на русский язык дополнения для Warcraft 3, затем идут Max Payne 2 и Titan Quest, очень близки к ним моды для Age of Empires 3. Куда труднее локализовать дополнения для TES 4: Oblivion и модели для Neverwinter Nights 2. Но самыми сложными для перевода всегда были и остаются моды для Half-Life 2. Но не так страшен черт, как его малюют: в «Игромании» №6’2008 мы рассказали вам, как в пять этапов сделать перевод любого дополнения для Warcraft 3, сегодня же уложим на лопатки Half-Life 2.

Шаг 1: изучаем структурные особенности

С точки зрения движка Source любой мод представляет собой отдельную игру, просто «не подписанную» Valve и не запакованную в GCF-архив (в них через систему Steam распространяется цифровой контент). Структурно же любое дополнение состоит из измененных и дополнительных скриптов, звуков, текстур и карт, которые в строгой иерархии прописываются в каталоге Корневая папка SteamSteamAppsSourceModsназвание мода. Распределяются ресурсы по подпапкам этой директории следующим образом:

maps — игровые карты мода. Без них, как правило, ни один приличный мод не обходится. Карты — связующее звено всех прочих ресурсов. Логика карты может обращаться к любым звукам как напрямую, так и посредством специальных идентификаторов, аналогично с текстовыми сообщениями. Так же вызываются скриптовые сцены. В общем, карты — это «главный штаб» мода.

scenes — скриптовые (анимационные) сцены, используемые модом. Вызываются картами по требованию и сами могут обращаться к любым звуковым файлам напрямую или посредством идентификаторов.

resource — очень важный каталог, где находятся новые шрифты и текстовые ресурсы мода. Без них не будет отображаться ни один диалог или монолог.

scripts — скрипты и техническая часть мода. Здесь прописываются идентификаторы вызова и параметры всех звуковых и текстовых ресурсов.

sounds — звуковое и музыкальное сопровождение мода.

Корневая папка любого дополнения (ее название обычно соответствует названию дополнения) тоже содержит важные данные, по которым Steam идентифицирует мод. Чтобы не приходилось постоянно держать в голове, как папки связаны между собой, в какой содержатся главные, а в какой второстепенные ресурсы, внимательно посмотрите на диаграмму. На ней наглядно показано взаимоотношение между ресурсами.

Текстовая начинка

В игре полностью отсутствует функция вывода произвольного сообщения игроку. Half-Life 2 знает лишь понятия «сообщение на английском языке» (объект game_text) и «многоязычные титры» (объект env_message). Обычно западные мододелы не утруждают себя использованием титровых сообщений (ведь для этого необходимо прописывать дополнительную информацию в ресурсы мода) и используют упрощенный вариант — game_text. Выбор этот вполне очевиден. Для оформления такого сообщения достаточно указать в редакторе сам текст и некоторые параметры показа (цвет, положение на экране, эффекты). Вариант с env_message более громоздок. Вместо самого сообщения и горстки параметров используется лишь один идентификатор, который должен быть предварительно объявлен в файле scripts itles.txt в следующем формате:

Блок под (например, MAP1_MSG_0) не содержит текста сообщения и обращается к нему по (например, MAP1_TEXT_0), которое, в свою очередь, должно быть внесено в файл
esource _ .txt
(например,
esourceRock24_russian.txt
) по следующему правилу:

должен быть на , в том числе на русском. Именно поэтому оригинальные игры от Valve используют исключительно этот объект вывода сообщений: он обеспечивает поддержку многоязычности, а следовательно, повышает ее популярность — вот почему так важно переводить все игровые элементы, в особенности те, что отображаются визуально.

Во время создания карты в редакторе Hammer объект game_text легко заменить на env_message, но после компиляции в BSP-формат внести изменения практически невозможно: все сообщения оказываются погребены под мегабайтами двоичных кодов. Как решить эту проблему, мы расскажем чуть попозже.

Субтитры

В качественной локализации должны быть качественные субтитры. С технической точки зрения они практически ничем не отличаются от текстовых сообщений. Субтитры аналогичным образом записываются в файл
esourceclosecaption_ .txt
(например,
esourceclosecaption_russian.txt
), однако в остальном устроены несколько иначе. Они отображаются при воспроизведении соответствующих им звуков, этот процесс может быть запущен четырьмя способами. Во-первых, проигрывание звукового файла может быть инициировано объектом на карте, а также посредством обращения к скриптовой VCD-сцене из подпапки scenes. Во-вторых, начать проигрывание можно как прямым обращением к конкретному mp3- или wav-файлу из папки sound, так и с помощью звукового идентификатора. Такие идентификаторы должны совпадать с из файла субтитров и помещаться в новый текстовый файл scripts .txt (например, scriptsRock24_sounds.txt):

Важно понимать разницу между звуковыми идентификаторами (которые совпадают с текстовыми) и идентификаторами сообщений (обращаются к текстовым идентификаторам). Именно ввиду этих различий игровые сообщения и субтитры разнесены по разным файлам, пусть и со схожей структурой.

Файл со звуковыми идентификаторами для корректной работы, в свою очередь, должен быть зарегистрирован в файле scriptsgame_sounds_manifest.txt (это своего рода реестр всех используемых в игре звуков):

«precache_file» «scripts/ .txt»

Итого у нас есть 4 способа проигрывания звуков, но лишь обращение к звукам по идентификаторам позволяет подключать субтитры. И, как назло, западные мододелы массово игнорируют эту возможность: англоязычным игрокам незачем читать субтитры, а остальной мир пусть учит международный язык.

Кстати, если в моде есть озвучка, то можно и вовсе обойтись без субтитров. Достаточно всего лишь наговорить весь текст, который произносят персонажи, на русском (wav- и mp3-файлы из папки sound). Но в этом случае появится другая проблема: придется с нуля синхронизировать речь персонажей с движением их губ, а это, мягко говоря, очень непросто.

Помимо этого, многие модостроители зачастую добавляют в свои моды новые текстуры, на некоторых из них могут быть надписи. Разумеется, в хорошей локализации все они должны быть переведены. Текстуры проживают в подпапке materials и имеют формат VTF (на самом деле это обычные DDS-картинки).

Дополнительные ресурсы

Теперь, когда мы разобрали основные категории ресурсов, запутанная диаграмма становится понятной. Итак, локализация мода для Half-Life 2 состоит из четырех основных этапов: перевод сообщений, субтитров, дубляж озвучки и перерисовка текстур. Но есть еще несколько мелких, но важных моментов. Во-первых, это файл gameinfo.txt, который содержит название мода и имена разработчиков, отображаемые в меню Steam:

Файл редактируется любым текстовым редактором, но обязательно должен быть сохранен в юникод-формате UTF-8. Во-вторых, необходимо русифицировать файлы шрифтов
esource*.ttf
, но можно их и просто заменить другими подходящими по стилю. В-третьих, нужно позаботиться о переводе на русский язык финальных титров мода, которые находятся в текстовом файле scriptscredits.txt (тоже в кодировке UTF-8), нас интересует блок:

дополнительно описывается в файле
esourceClientScheme.res
так:

Шаг 2: локализуем текст

Если локализовывать весь контент Half-Life 2 вручную, то на одно небольшое дополнение у вас вполне может уйти несколько месяцев кропотливой работы, да еще и в программировании придется серьезно разбираться. Чтобы облегчить себе жизнь, мы разработали набор утилит, благодаря которым некоторые рутинные действия удалось автоматизировать. Так что теперь переводить моды для игры может даже обычный человек, ничего не смыслящий в кодинге.

Главный инструмент нашего софтверного набора — программа 1CLICK_RIP. Работает она следующим образом. Перетаскиваем на исполняемый файл утилиты папку мода (да-да, просто хватаете в файловом менеджере папку мышкой и кидаете на ехе-шник) и через 10-20 секунд получаем в папке мода файл locale_text.txt, в котором содержится весь извлеченный текст и указания по его помещению в игру. Сообщения из карт и субтитры (если в моде есть звуки) достаточно разложить по нескольким ресурсным и скриптовым файлам, и все — можно приступать к переводу. Если текст сообщений из файла
esource _russian.txt
достаточно просто перевести на русский, то файл с субтитрами
esourceclosecaption_russian.txt
необходимо перекомпилировать с помощью входящего в Source SDK компилятора субтитров (он нормально работает, только если у вас установлен Orange Box или отдельно Team Fortress 2). К сожалению, он сложен в освоении, так что мы разработали вспомогательную утилиту RECOMPILE_CC. Перетащив на нее иконку файла с субтитрами, вы получите полностью откомпилированную версию. Главное, чтобы Steam был запущен, а в списке Current Game меню Source SDK была выбрана одна из игр, входящих в Orange Box.

В 80% случаев программы 1CLICK_RIP достаточно для извлечения всех требуемых ресурсов. Но у нее есть один минус: она не знает, что находится в звуковых файлах, и потому для всех найденных файлов создает субтитры. Разумеется, это не всегда удобно, например в случае с музыкой или различными звуками. На этот случай мы создали более продвинутый вариант утилиты извлечения, состоящий из двух частей: PROCESS_ENTS_ST1 и PROCESS_ENTS_ST2. После применения первой утилиты в папках maps, sound и scenes появляется полный список карт, звуков и сцен, которые указывают второй утилите, какие ресурсы нужно обрабатывать, а какие нет. Кроме того, в корневой папке мода появляется плейлист-файл mod_sounds.m3u. Как нетрудно догадаться, это тоже список всех звуковых файлов, но предназначенный для прослушивания в обычном музыкальном плеере. Зачем это нужно? Запуская плейлист на воспроизведение и по очереди слушая звуковые фрагменты, удаляем из списка файлы без речи, после чего сохраняем его. Теперь с помощью утилиты M3U2LIST можно легко обновить список звуков для обработки. По окончании работы второй утилиты мы получаем тот же результат, что и в случае с 1CLICK_RIP, но без лишних субтитров.

1. Исходная англоязычная дорожка для дублирования.

2. Записанная с помощью микрофона дорожка на русском языке.

3. С помощью утилиты Audacity редактируются уровни громкости русской озвучки для максимального соответствия оригиналу.

4. При необходимости выделенные фрагменты обрабатываются специальными фильтрами, например меняющими высоту голоса диктора.

5. В редакторе Face Poser работа идет на вкладке Phoneme Editor, где создается lip-sync.

6. Для наглядности выбирается модель с самыми большими губами, на ней в реальном времени проверяется адекватность мимики.

7. Синхронизация начинается с того, что модулю фонетического распознавания задается продиктованная фраза, написанная на транслите (MS Speech Engine не распознает русскую речь).

8. Опорная звуковая дорожка, по ней затем корректируется результат распознавания.

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

10. Инструмент уточняющего распознавания отдельных слов и фраз.

Шаг 3: синхронизируем речь

На время отложим в сторону комплект утилит и обратимся к проблемам дублирования. Для переозвучивания персонажей нужно совсем немного: более-менее качественный микрофон, нешумная комната и немного актерского мастерства. Кроме того, пригодится программа звукозаписи (к примеру, бесплатная Audacity) и установленный Source SDK, из которого понадобится утилита Face Poser для синхронизации движения губ и речи героев (lip-sync). Чтобы утилита смогла распознавать фонемы, необходимо также установить MS Speech API. И если процесс переозвучивания в большей степени очевиден, то этап работы в Face Poser для многих остается темным лесом.

Записанный звуковой файл загружается в Phoneme Editor командой Load. Затем начинается расстановка фонем: выделяем небольшой законченный фрагмент речи, кликаем на нем правой кнопкой мыши и в контекстном меню выбираем пункт Redo extraction of selected words. Появляется небольшое окошко, в котором нужно задать ключевые слова выделенной фразы. Тут важен один нюанс: печатать нужно не русскую фразу, а ее транслитерацию. Например, вместо фразы «Капрал Шепард» мы пишем «kapral shepard». После расстановки фонем нужно провести корректировку: заменить ошибочно распознанные/добавить/удалить элементы. Face Poser, к сожалению, не отличается интуитивно понятным интерфейсом, поэтому этапы работы в нем наглядно проиллюстрированы на картинке. Главное, подготовьтесь морально: синхронизация — дело довольно трудоемкое, на него может уйти очень много времени.

После создания lip-sync жмем Save, и результат наших трудов прописывается в конец wav-файла. Вот только что делать, если понадобится немного подправить звуковой файл (например, изменить громкость в Audacity) уже после работы в Face Poser? Увы, после сохранения изменений данные lip-sync будут безвозвратно потеряны. Для предотвращения подобной, не побоимся этого слова, катастрофы мы разработали еще две очень полезные утилиты — EXPORT_LIPSYNC и IMPORT_LIPSYNC. Чтобы создать резервную копию синхронизации, достаточно перетащить подпапку sound на утилиту экспорта, а для восстановления — на утилиту импорта.

Шаг 4: перерисовываем текстуры

Работа с текстурами потребует наличия Photoshop или любого другого мощного графического редактора (для перерисовки изображений) и набора вспомогательных утилит и плагинов. Очень важно, чтобы была возможность легкого просмотра VTF-файлов для отбора текстур на перерисовку. В этом нам помогут VTF Shell Extensions (просмотр миниатюр в Проводнике Windows) и очень популярный скоростной просмотрщик графики IrfanView (для просмотра текстур в натуральную величину). Также необходимо установить плагин для редактирования VTF-файлов в Photoshop или средство конвертирования в один из «понятных» любому редактору формат (например, Targa) — VTF Edit. Эта программа полезна еще и тем, что позволяет работать с анимированными текстурами.

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

Этапы создания lip-sync в Face Poser.

Шаг 5: сохраняем кодировку

Локализация потихонечку подходит к концу. Осталось лишь разобраться, как правильно сохранять текстовые файлы в кодировке UTF-8, чтобы игра распознавала их корректно. Несмотря на то что сохранить текст в указанном формате можно и обычным «Блокнотом», игра такой файл понимать наотрез отказывается. Поэтому для работы нам понадобится текстовый перекодировщик «Штирлиц»: открываем в нем файл, переводим требуемые фрагменты на русский язык, после чего осуществляем преобразование WIN/UTF-8 и сохраняем файл с полученной «абракадаброй». Теперь игра не будет капризничать.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *