Texto em fala no Unity: falas de diálogo e voz durante o jogo
Um jogo no Unity precisa de falas com voz muito antes de ter elenco: para protótipos, diálogos provisórios, tutoriais e equipes pequenas que nunca vão reservar um estúdio. O texto em fala dá voz a cada fala no dia em que ela é escrita e a refaz em segundos quando o roteiro muda.
O motor gratuito SuperClonica gera voz offline num processador comum. Este guia mostra as duas formas de usá-lo com o Unity, clipes gerados antes e voz durante o jogo a partir de C#, e quais vozes você pode lançar.
Duas formas de dar voz a um jogo no Unity
O computador de um jogador não vai rodar um servidor de voz, então um jogo single-player lançado deve incluir os clipes.
- Clipes gerados antes: dê voz a cada fala durante o desenvolvimento e lance os WAV como AudioClips comuns. Nada extra roda no computador do jogador.
- Voz durante o jogo: o jogo envia texto a um servidor da SuperClonica e toca a resposta. Serve para ferramentas do editor, protótipos e jogos online com servidor próprio.
- Nos dois casos, a voz é gerada num processador comum, sem cobrança por caractere.
- O modelo fala 31 idiomas; o chinês ainda não é suportado.
Escolha vozes grátis
Na página de qualquer voz, escreva uma fala do seu NPC, de 30 a 100 caracteres, escolha o idioma e clique no botão para gerar. Em poucos segundos você ouve se a voz combina com o personagem, sem conta.
Gere os diálogos antes
O mesmo texto, voz e seed sempre geram o mesmo áudio, então regenere só as falas que mudaram e guarde no repositório o script, não o áudio.
- Instale o motor: python -m pip install superclonica-cpu.
- Guarde as falas numa tabela com id, idioma e texto.
- Um script curto percorre a tabela: superclonica --text "Bem-vindo à vila!" --voice npc.json --lang pt --output Assets/Audio/Lines/npc_greeting_01.wav.
- O Unity importa sozinho os WAV novos dentro de Assets; use Decompress On Load para falas curtas e Streaming para narrações longas.
Voz durante o jogo a partir de C#
Inicie o servidor em qualquer processador: docker run -d -p 8000:8000 -v superclonica-models:/models superclonica/superclonica:cpu. Depois chame-o com o UnityWebRequest embutido, sem pacotes: [Serializable] class Line { public string text; public string voice; public string lang; } — depois, numa corrotina: var req = new UnityWebRequest("http://localhost:8000/synthesize", "POST"); req.uploadHandler = new UploadHandlerRaw(Encoding.UTF8.GetBytes(JsonUtility.ToJson(new Line { text = "Bem-vindo de volta!", voice = "F1", lang = "pt" }))); req.downloadHandler = new DownloadHandlerAudioClip(req.url, AudioType.WAV); req.SetRequestHeader("Content-Type", "application/json"); yield return req.SendWebRequest(); source.PlayOneShot(DownloadHandlerAudioClip.GetContent(req)); Uma frase curta leva cerca de meio segundo num processador; guarde em cache os clipes de falas que se repetem. Nunca coloque uma chave de API na build do jogo, de onde jogadores podem extraí-la: deixe o seu próprio servidor de jogo chamar o servidor de voz.
Vozes que você pode lançar
Para protótipos, qualquer voz do catálogo serve. Para um jogo lançado, use uma voz sobre a qual tem direitos: as dez vozes padrão do modelo, de M1 a M5 e de F1 a F5, a sua própria voz treinada no estúdio da SuperClonica a partir de uma gravação limpa de 5 a 10 segundos de um ator que concordou, num computador com placa de vídeo NVIDIA, ou uma voz encomendada na bolsa. Vozes de personagens feitas por fãs são para paródias e jogos de fã, não para jogos comerciais.