Субтитры (Portal 2)

From Valve Developer Community
Jump to: navigation, search
English (en)русский (ru)
... Icon-Important.png

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

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

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

Note.pngNote:В данном руководстве подразумевается, что вы уже добавили свои звуки в карту, и указанные далее названия используются только в качестве примеров.

Создание файла субтитров

В первую очередь создайте текстовый файл с субтитрами в папке Steam/steamapps/common/Portal 2/portal2/resource. Формат субтитров должен быть следующий:


lang
{ 
	Language "Russian"
	Tokens 
	{ 
		character.example1	"Это образец субтитров."
		character.example2	"Вы должны видеть надписи на экране."
	}
}


  • Сохраните файл .txt в кодировке UCS-2 Little Endian или UTF-16 LE. Для этого воспользуйтесь Notepad++ или другим продвинутым текстовым редактором.
  • Текст субтитров должен быть заключён в кавычки.
  • Именем субтитра должно быть имя English soundscript, а не имя звука. Однако, субтитры работают и без создания soundscript.
  • Сохраните файл .txt с префиксом closecaption_ в имени.

Компиляция файла .txt в файл .dat

Для того, чтобы субтитры отображались в игре, их нужно скомпилировать в файл .dat. Это можно сделать с помощью компилятора captioncompiler в папке Portal 2/bin.

Нажмите кнопку Пуск, выберите Выполнить и введите cmd, чтобы открыть командную строку. Найдите файл captioncompiler.exe и перетащите его в окно командной строки. Введите -v "closedaption_ИМЯФАЙЛА.txt", примерно так:


"U:/Program Files/Steam/steamapps/common/Portal 2/bin/captioncompiler.exe" -v "closecaption_ИМЯФАЙЛА.txt"


Субтитры будут скомпилированы в файл, к которому будет обращаться игра. Оставьте скомпилированный файл в папке resource.


Note.pngNote:Если компиляция завершается ошибкой из-за того, что Game directory не настроена на папку portal 2, создайте еще одну строку в файле gameConfig.txt в папке SouceSDK/bin/ep1(orangebox)/bin со значением "GameDir", указывающим на папку Portal 2/portal2. Затем запустите SourceSDK с другими параметрами, чтобы сделать Portal 2 текущим модом.
Note.pngNote:Другой способ: Откройте папку \Steam\SteamApps\common\portal 2\bin, создайте новую папку с именем "resource" и сохраните в нее файл closecaption_ИМЯФАЙЛА.txt. Откройте папку \Steam\SteamApps\common\portal 2\portal2 и скопируйте файл gameinfo.txt в \Steam\SteamApps\common\portal 2\bin. При выполнении captioncompiler.exe скомпилированный файл .dat будет сохранен в \Steam\SteamApps\common\portal 2\bin\resource. Оттуда переместите файлы .txt и .dat в папку \Steam\SteamApps\common\portal 2\portal2\resource.

Показ субтитров в игре

Поскольку создание сцен для субтитров не подойдет, требуется вызывать субтитры вручную с помощью энтитей в Hammer или с помощью English скрипта.

  1. Создайте или используйте English point_servercommand.
  2. Создайте English logic_auto и добавьте выход с именем файла субтитров без префикса closecaption_:
My Output Target Target Input Parameter
OnMapSpawn @servercommand Command cc_lang NameOfFile

     3. Чтобы вызвать звук или субтитр каким душе угодно способом, добавьте такие выходы:

My Output Target Target Input Parameter
OnAnOutput @servercommand Command cc_emit character.example1
  • Не забудьте одновременно воспроизвести звук, к которому относится субтитр.


Note.pngNote:Не добавляйте префикс closecaption_ при вызове таких файлов. При использовании команды cc_lang игра автоматически добавит префикс, иначе префикс будет продублирован, и у вас получится closecaption_closecapion_ИМЯФАЙЛА. English В обсуждении этой страницы можно посмотреть пример.


Если вы используете в своей карте оригинальные файлы сцен, но со своими голосовыми репликами, не меняйте cc_lang OnMapSpawn, чтобы у игроков не отображались субтитры оригинальных сцен. Вместо этого воспроизводите свой файл субтитров, когда потребуется. Примерно так:

My Output Target Target Input Parameter Delay
OnAnOutput @servercommand Command cc_lang NameOfFile 0.00
OnAnOutput @servercommand Command cc_emit character.example1 0.10
OnAnOutput @servercommand Command cc_lang 0.20

Если команде cc_lang не указан конечный выход (Output), игра снова будет использовать язык Game_UI, но при этом воспроизведет ваши субтитры, вызванные за 0.1 секунды до этого.

Коды субтитров (Portal 2)

<sfx>
Строка описания звукового эффекта, которая будет отображаться только при выборе полных субтитров. Если переменная cc_subtitles задана на "1", такие строки отображаться не будут.
<clr:255,255,255>
Задает цвет строки в RGB; 0 - без цвета, 255 - полный цвет. Например, красный: ;<clr:255,0,0>.
<b>
Текст, выделенный этим тегом, станет полужирным.
<i>
Текст, выделенный этим тегом, станет курсивным.
<len:#>
Задает продолжительность показа субтитра на экране.
<norepeat:#>
Задает интервал ожидания перед повторным показом субтитра. Требуется для часто повторяющихся звуков.

Пример использования кода:

lang
{ 
	Language "Russian"
	Tokens 
	{ 
		character.example1	"<clr:255,0,0><b> Персонаж: Это субтитр-образец."
		character.example2	"<clr:255,0,0><len:3> Персонаж: Субтитры должны отображаться на экране."
	}
}

См. также