Озвучка

Начальный Обновлено 10 июл. 2026 г.

Содержание

Каждая реплика диалога, реплика-барк и фоновый барк могут нести озвучку. Стадия сборки resolve-audio синтезирует (или импортирует) один аудиоассет на реплику и на язык, а лицевая стадия затем запекает из этого аудио липсинк (см. Лицевую анимацию).

Провайдеры

Три взаимозаменяемых провайдера, выбираются во вкладках Voice/Build:

ПровайдерЧто этоСтоимость
ProvidedВы кладёте WAV-файлы, названные по id реплик, в VO_Source/<culture>/
OmniVoiceЛокальный HTTP-сервер TTS; ставится и запускается одним кликом Setup & Launch на вкладке Voiceбесплатно, локально
ElevenLabsОблачный TTS с вашим API-ключомваш аккаунт

В комплекте ничего не поставляется и ничто никуда не «звонит»: OmniVoice работает на вашей машине, ElevenLabs использует ваш ключ, а с готовыми WAV-файлами (Provided) плагин работает полностью офлайн.

Назначение голосов

Голоса назначаются на говорящего и на язык во вкладке Voice: у одного персонажа может быть английский голос и русский с другим кастингом. Можно прослушать отдельную реплику, перегенерировать одну реплику или пакетно синтезировать всё недостающее.

Вкладка Voice: выбор провайдера и назначение голосов по говорящим

Синтез идемпотентен: уже озвученные реплики при пересборке пропускаются, изменённые синтезируются заново, а аудио удалённых реплик вычищается. Сгенерированные звуковые ассеты называются по стабильным id реплик (<Step>_<line>_<Speaker>); именно поэтому id никогда нельзя перенумеровывать.

Настройка OmniVoice

OmniVoice — локальный TTS-сервер с открытым исходным кодом: github.com/debpalash/OmniVoice-Studio. Склонируйте или скачайте этот репозиторий в любое место на машине — дальше Studio всё сделает сама.

Укажите в Repo path путь к скачанному репозиторию и нажмите Setup & Launch (это нужно, только если вы не запустили сервер сами заранее — для уже работающего сервера достаточно указать его URL). Кнопка устанавливает зависимости и запускает сервер, обходя подводные камни консольного окружения, которые ломают запуск вручную; при первом запуске дополнительно скачиваются ML-модели, так что он может идти несколько минут без вывода. Дождитесь, пока строка статуса станет зелёной. Если сервер не стартует, посмотрите _qw_omnivoice.log рядом с файлами сервера.

Секция OmniVoice на вкладке Voice: Repo path указывает на склонированный репозиторий, рядом кнопка Setup & Launch

Когда сервер поднят, нажмите Fetch voices — все доступные на сервере голоса подтянутся в выпадающие списки по говорящим.

Кнопка Fetch voices получает всех доступных спикеров с работающего сервера

Нужно больше разнообразия? Откройте список Add preset с подобранными голосовыми пресетами сервера и выберите нужный — после клика он автоматически появится как опция в выпадающих списках голосов ваших говорящих.

Список Add preset: выбранный пресет становится доступен как голос для ваших говорящих

Где живёт конфигурация

Провайдер/модель на культуру и карта голосов по говорящим относятся к настройкам проекта: вкладка Voice редактирует Project Settings → Plugins → Questwright Studio (BuildCultures, VoiceByCulture), которые хранятся в DefaultGame.ini и потому общие для всей команды. См. Справочник настроек.

API-ключи никогда не хранятся в файлах проекта. Ключи живут в пользовательском ini (игнорируется git) с запасным вариантом через переменную окружения (QW_ELEVENLABS_KEY), что безопасно для команд и CI.

Ваши собственные записи

Чтобы использовать записанную озвучку, выберите провайдер Provided и положите WAV-файлы, названные по id реплик, в VO_Source/<culture>/. Смешивать можно: на время производства синтезируйте заглушки через OmniVoice, а позже подмените их студийными записями: id не меняются, а значит не меняется и всё остальное.