Unity TTS: 게임 대사와 실행 중 음성
Unity 게임에는 성우가 정해지기 훨씬 전부터 음성이 붙은 대사가 필요합니다. 프로토타입, 임시 대사, 튜토리얼, 그리고 스튜디오를 빌릴 일 없는 작은 팀을 위해서요. 음성 합성은 대사를 쓴 날 바로 목소리를 붙이고, 대본이 바뀌면 몇 초 만에 다시 만듭니다.
무료 SuperClonica 엔진은 일반 CPU에서 오프라인으로 텍스트를 읽습니다. 이 가이드에서는 Unity에서 쓰는 두 가지 방법(미리 만든 클립과 C#에서 실행 중 음성)과 출시에 쓸 수 있는 목소리를 소개합니다.
Unity 게임에 목소리를 입히는 두 가지 방법
플레이어 컴퓨터에서는 음성 서버가 돌지 않으므로, 출시하는 싱글플레이 게임에는 클립을 포함하세요.
- 미리 만든 클립: 개발 중에 모든 대사를 읽혀 WAV 파일을 일반 AudioClip으로 함께 배포합니다. 플레이어 컴퓨터에서 따로 돌아가는 것은 없습니다.
- 실행 중 음성: 게임이 텍스트를 SuperClonica 서버로 보내고 받은 음성을 재생합니다. 에디터 도구, 프로토타입, 자체 서버가 있는 온라인 게임에 맞습니다.
- 어느 쪽이든 일반 CPU에서 돌아가며 글자 수에 따른 요금이 없습니다.
- 모델은 31개 언어를 말하며, 중국어는 아직 지원하지 않습니다.
목소리를 무료로 고르기
아무 목소리 페이지에서 NPC 대사를 30~100자로 입력하고 언어를 고른 뒤 생성 버튼을 누르세요. 몇 초 만에 캐릭터에 맞는지 들을 수 있습니다. 계정은 필요 없습니다.
대사를 미리 만들기
같은 텍스트, 목소리, seed는 항상 같은 오디오를 내므로 바뀐 대사만 다시 만들고, 저장소에는 오디오가 아니라 스크립트를 넣으세요.
- 엔진 설치: python -m pip install superclonica-cpu.
- 대사는 ID, 언어, 텍스트가 있는 표로 관리하세요.
- 짧은 스크립트가 표를 돕니다: superclonica --text "마을에 온 걸 환영해!" --voice npc.json --lang ko --output Assets/Audio/Lines/npc_greeting_01.wav.
- Assets 아래의 새 WAV 파일은 Unity가 알아서 가져옵니다. 짧은 대사는 Decompress On Load, 긴 내레이션은 Streaming으로 두세요.
C#에서 실행 중에 말하기
아무 CPU에서나 서버 실행: docker run -d -p 8000:8000 -v superclonica-models:/models superclonica/superclonica:cpu. 그다음 패키지 없이 내장 UnityWebRequest로 호출합니다: [Serializable] class Line { public string text; public string voice; public string lang; }. 코루틴 안에서: var req = new UnityWebRequest("http://localhost:8000/synthesize", "POST"); req.uploadHandler = new UploadHandlerRaw(Encoding.UTF8.GetBytes(JsonUtility.ToJson(new Line { text = "다시 온 걸 환영해!", voice = "F1", lang = "ko" }))); req.downloadHandler = new DownloadHandlerAudioClip(req.url, AudioType.WAV); req.SetRequestHeader("Content-Type", "application/json"); yield return req.SendWebRequest(); source.PlayOneShot(DownloadHandlerAudioClip.GetContent(req)); 짧은 문장은 CPU에서 약 0.5초 걸립니다. 반복되는 대사의 클립은 캐시하세요. 게임 빌드에 API 키를 넣지 마세요. 플레이어가 꺼낼 수 있습니다. 음성 서버는 내 게임 서버가 호출하게 하세요.
출시에 쓸 수 있는 목소리
프로토타입에는 카탈로그의 어떤 목소리든 괜찮습니다. 출시하는 게임에는 권리가 있는 목소리를 쓰세요. 모델 기본 목소리 10종 M1~M5·F1~F5, 동의한 배우의 5~10초 분량 깨끗한 녹음으로 NVIDIA 그래픽 카드가 있는 컴퓨터에서 SuperClonica 스튜디오로 학습한 내 목소리, 또는 거래소에서 주문한 목소리입니다. 팬이 만든 캐릭터 목소리는 패러디와 팬 게임용이며 상업용 게임에는 맞지 않습니다.