Голос (Voice)

Материал из Ren'Py Wiki
Перейти к навигации Перейти к поиску

Ren'Py включает поддержку воспроизведения голоса совместно с диалогом. Это осуществляется с помощью оператора voice, который позволяет воспроизводить голосовой файл:

voice "line0001.ogg"
"Добро пожаловать в Ren'Py"

Обычно воспроизведение голоса прерывается в начале следующего взаимодействия. Оператор voice sustain может поддерживать воспроизведение голоса через взаимодействие:

voice "line0001.ogg"
"Добро пожаловать в Ren'Py..."

voice sustain
"...ваш движок цифрового повествования."

Переменная сonfig.voice_filename_format позволяет настроить имя голосового файла, давая возможность отказаться от использования директорий и расширений.

Голосовые теги (Voice Tags)[править | править код]

Ren'Py включает систему голосовых тегов, которая позволяет выборочно отключить или включить озвучку персонажа. Чтобы воспользоваться преимуществами этой системы, предоставьте аргумент voice_tag каждому Character() и используйте action SetVoiceMute() или action ToggleVoiceMute(), чтобы позволить игроку включить или выключить озвучку.

Например:

define e = Character("Эйлин", voice_tag="eileen")
define l = Character("Люси", voice_tag="lucy")

screen voice_toggle:
    vbox:
        textbutton "Выключить озвучку Эйлин" action ToggleVoiceMute("eileen")
        textbutton "Выключить озвучку Люси" action ToggleVoiceMute("lucy")

label start:
    show screen voice_toggle

    voice "e01.ogg"
    e "Вы можете включить или выключить озвучку персонажа."

    voice "l01.ogg"
    l "Да! Теперь я наконец-то могу заткнуть тебя!"

    voice "l02.ogg"
    l "Подожди... это значит, они могут отключить и меня тоже! Серьезно?"

Автоматическая озвучка (Automatic Voice)[править | править код]

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

Вышеуказанное осуществляется путём создания голосовых файлов, которые соответствуют идентификатору для каждой строки диалога. Чтобы определить используемые идентификаторы, в первую очередь экспортируйте диалога в электронную таблицу, выбрав в Ren'Py Launcher «Извлечь диалог», «Tab-delimited Spreadsheet (dialogue.tab)» и «Продолжить». Это создаст файл dialogue.tab, который можно загрузить в программу обработки электронных таблиц.

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

Чтобы Ren'Py автоматически воспроизводил озвучку, установите переменную config.auto_voice в строку, содержащую {id}. При возникновении диалога {id} заменяется идентификатором диалога, формируя имя файла. Если имя файла существует, файл воспроизводится.

Например, если у нас есть:

config.auto_voice = "voice/{id}.ogg"

и идентификатор диалога demo_minigame_03fc91ef, то, когда соответствующая строка отображается, Ren'Py ищет файл voice/demo_minigame_03fc91ef.ogg. Если файл существует, Ren'Py его воспроизведёт.

Голосовые функции (Voice Functions)[править | править код]

_get_voice_info()
Возврат сведения о озвучке, воспроизводимой текущим оператор say. Эту функция может быть вызвана только во время выполнения оператора say.
Возвращаемый объект имеет следующие поля:
VoiceInfo.filename
Имя файла озвучки, которая будет воспроизводиться или значение None, если файлы не должны воспроизводиться.
VoiceInfo.auto_filename
Имя файла, которое Ren'Py искал в целях автоматического озвучивания или значение None, если его не удалось найти.
VoiceInfo.tag
Параметр voice_tag, предоставленный говорящему Character.
VoiceInfo.sustain
Значение False, если файл был воспроизведен как часть этого взаимодействия. Значение True, он был продолжен предыдущим взаимодействием.


voice(filename, tag=None)
Воспроизводит filename на канал для голосовой озвучки. Эквивалентен оператора voice.
filename
Имя файла для воспроизведения. Используется с config.voice_filename_format для получения имени файла, которое будет воспроизводиться.
tag
Если значение не None, параметр должен стать последовательностью с голосовым тегом, который будет воспроизведен. Если значение None, параметр применяет своё значение по умолчанию из voice_tag Character, вызывающего следующий идентификатор.
Голосовой тег используется для уточнения, какой персонаж начинает говорить, чтобы позволить пользователю включить или выключить озвучку определенных персонажей.


voice_can_replay()
Возврат значения True, если есть возможность повторить текущую озвучку.


voice_replay()
Воспроизводит текущую озвучку, если это возможно.


voice_sustain(ignored=u, **kwargs)
Эквивалент оператора voice sustain.

Голосовые действия (Voice Actions)[править | править код]

PlayCharacterVoice(voice_tag, sample, selected=False)
Воспроизводит sample на голосовом канале, словно это сказано персонажем с voice_tag.
sample
Полный путь к звуковому файлу. Голосовая обработка данного файла не выполняется.
selected
Если принимает значение True, кнопки, использующие это действие, будут обозначены как выбранные во время воспроизведения семпла.


SetCharacterVolume(voice_tag, volume=None)
Позволяет регулировать громкость каждого персонажа. Если volume принимает значение None, возвращается значение громкости voice_tag. Иначе параметр установит его на volume.
volume является числом от 0.0 до 1.0 и интерпретируется как часть микшера громкости для канала voice.


SetVoiceMute(voice_tag, volume=None)
Если mute принимает истинное значение, отключает голоса, которые воспроизводятся с заданным voice_tag. Если mute принимает ложное значение, включает голоса, которые воспроизводятся с voice_tag.


ToggleVoiceMute(voice_tag, invert=False)
Переключает отключение voice_tag. Выбирается, если заданный голосовой тег выключен, за исключением случаев, когда invert принимает значение True, в этом случае он выбирается, если озвучка включена.


VoiceReplay(*args, **kwarg)
Повторное проигрывает последнюю воспроизведенную озвучку.

Источник[править | править код]

Статья "Voice" на английском языке.


На главную страницу Официальная документация движка Вернуться к началу статьи