본문으로 건너뛰기

데모 프로젝트

Runtime MetaHuman Lip Sync을 빠르게 시작하는 데 도움이 되도록, 바로 사용할 수 있는 두 개의 데모 프로젝트가 제공됩니다. 두 프로젝트 모두 **Unreal Engine 5.6+**로 제작되었으며, Blueprint 전용이고, Windows, Mac, Linux, iOS, Android 및 Android 기반 플랫폼( Meta Quest 포함)에서 크로스 플랫폼으로 실행됩니다.

사용 가능한 데모 프로젝트

완전한 AI 대화형 아바타 워크플로우로, 음성 인식, AI 챗봇(LLM), 텍스트 음성 변환, 실시간 립싱크가 포함된 오디오 재생을 결합하여 단일 프로젝트에서 모두 함께 실행됩니다. 게임, 인터랙티브 키오스크, 버추얼 프로덕션, 박물관 설치물, 디지털 어시스턴트, 교육 시뮬레이션 등 다양한 사용 사례에 적합합니다.

파이프라인 개요

🎤 Microphone → Speech Recognition → 💬 LLM Chatbot → 🔊 Text-to-Speech → 👄 Lip Sync + Playback

LLM이 스트리밍 모드로 설정되면, 전체 응답을 기다리는 대신 각 문장이 완성될 때마다 출력이 문장 단위로 분할되어 TTS로 전송되어 지연 시간을 최소화합니다.

TTS와 립싱크는 동일한 원리를 따릅니다: 스트리밍 모드가 활성화되면 오디오가 도착하는 대로 청크 단위로 처리되고 애니메이션되며, 전체 클립을 기다리지 않습니다.

동영상

빠른 미리보기 (약 30초)

데모가 실제로 작동하는 모습을 보여주는 짧은 영상입니다.

전체 워크스루

설정, 구성, 그리고 전체 대화 파이프라인을 다루는 상세한 안내서입니다.

다운로드

필수 및 선택 플러그인

데모 프로젝트는 모듈식입니다 - 사용하려는 제공업체에 대한 플러그인만 필요합니다.

플러그인용도필수 여부
Runtime MetaHuman Lip Sync립싱크 애니메이션✅ 항상
Runtime Audio Importer오디오 캡처 및 처리✅ 항상
Runtime Speech Recognizer오프라인 음성 인식 (whisper.cpp)✅ 항상
Runtime AI Chatbot Integrator외부 LLM (OpenAI, Claude, DeepSeek, Gemini, Grok, Ollama) 및/또는 외부 TTS (OpenAI, ElevenLabs)🔶 선택 사항
Runtime Local LLMllama.cpp를 통한 로컬 LLM 추론 (Llama, Mistral, Gemma 등 GGUF 모델)🔶 선택 사항
Runtime Text To SpeechPiper 및 Kokoro를 통한 로컬 TTS🔶 선택 사항
선택적 플러그인 - 제공자 요구 사항

위의 각 플러그인은 개별적으로 선택 사항이지만, 데모가 작동하려면 LLM 제공업체가 최소 하나TTS 제공업체가 최소 하나 필요합니다. 자유롭게 조합하세요(예: 로컬 LLM + ElevenLabs TTS, 또는 OpenAI LLM + 로컬 TTS).

모듈형 아키텍처

Content 폴더 안에 Modules 폴더가 있으며, 여기에는 세 개의 하위 폴더가 포함되어 있습니다:

Content/
└── Modules/
├── RuntimeAIChatbotIntegrator/ ← External LLMs and/or external TTS
├── RuntimeLocalLLM/ ← Local LLM via llama.cpp
└── RuntimeTextToSpeech/ ← Local TTS via Piper/Kokoro

선택 플러그인 중 하나(또는 여러 개)를 구매하지 않았다면, 해당 폴더를 그냥 삭제하면 됩니다. 데모 프로젝트의 기본 에셋(게임 인스턴스, 위젯 등)은 이러한 모듈을 직접 참조하지 않으므로, 삭제해도 에셋 참조 오류가 발생하지 않습니다. 구성 UI는 폴더가 없는 제공자를 자동으로 숨깁니다.

노트

이러한 모듈성은 LLMTTS 제공업체에만 적용됩니다. 음성 인식(Runtime Speech Recognizer) 및 립 싱크(Runtime MetaHuman Lip Sync)는 기본 데모 프로젝트의 일부이며 항상 필요합니다.

Modules folder structure

경고

최초 실행 시, 언리얼이 누락된 선택적 플러그인을 비활성화할지 물어볼 수 있습니다 - 를 클릭하세요. 또한 해당하는 Content/Modules/ 폴더를 삭제했는지 확인하세요(위 참조).

번들 확장 플러그인

Silero VAD, WebRTC AEC3 및 표준 립싱크 확장 기능 (클릭하여 펼치기)

데모의 소스 버전에는 Plugins/ 폴더에 세 가지 무료 확장 플러그인이 사전 번들로 포함되어 있습니다: RuntimeAudioImporterSileroVAD (신경망 VAD), RuntimeAudioImporterWebRTCAEC3 (에코 제거), 그리고 RuntimeMetaHumanLipSync_Standard (표준 립싱크 모델).

번들된 바이너리는 UE 5.6용으로 사전 빌드되어 있습니다. UE 5.7 / 5.8의 경우, 소스에서 직접 빌드하거나(각 확장 프로그램의 문서 참조), 사전 빌드된 바이너리를 사용하세요: UE 5.7 · UE 5.8. 설치 방법: Plugins/에서 기존 폴더 세 개를 삭제한 다음, 아카이브의 내용물을 해당 위치의 Plugins/에 추출하세요.

세 가지 모두 선택 사항입니다. 필요하지 않다면 실행 전에 Plugins/에서 해당 폴더를 삭제하기만 하면 됩니다.

데모 프로젝트 레이아웃

UI는 데모 목적으로 제공됩니다.

아래에 표시된 사용자 인터페이스는 전적으로 UMG(Unreal Motion Graphics)로 구축되었으며, 음성 인식 → LLM → TTS → 립싱크 파이프라인을 시연하기 위한 목적으로만 제작되었습니다. 프로젝트의 비주얼 디자인, 컨트롤 방식, 또는 플랫폼(VR/AR, 모바일, 콘솔, 키오스크 등)에 맞게 자유롭게 스타일을 변경하거나 교체할 수 있습니다. 특정 위젯이 사용 사례에 필요하지 않은 경우, 해당 위젯을 단순히 숨길 수도 있습니다(예: 가시성을 Collapsed 또는 Hidden으로 설정).

Annotated overview of the demo project main screen

Area무엇이 있나요
중앙MetaHuman 캐릭터.
왼쪽네 개의 설정 버튼(음성 인식, AI 챗봇, 텍스트 음성 변환, 애니메이션)이 있으며, 아래에서 자세히 설명합니다.
중앙 하단녹음 시작 버튼. 이 버튼을 클릭하면 음성 대화가 시작됩니다. 마이크 입력이 캡처되어 텍스트로 변환되고, LLM으로 전송되며, 응답이 TTS를 통해 합성된 후 립싱크와 함께 재생됩니다. 완전히 핸즈프리로 작동합니다.
오른쪽 중앙대화 기록 위젯으로, 사용자와 AI 간의 전체 대화(사용자 및 어시스턴트 메시지 모두)를 표시합니다. 또한 텍스트 입력 필드도 포함되어 있어 음성 인식 없이 메시지를 직접 입력할 수 있습니다. 이는 테스트, 접근성 향상, 또는 마이크를 사용할 수 없는 상황에서 유용합니다.

같은 세션에서 두 입력 모드를 자유롭게 혼합할 수 있습니다. 일부 메시지는 말하고, 다른 메시지는 입력하세요.

립 싱크가 테스트 시간이 길어질수록 오디오보다 점점 더 뒤처진다면(고정된 지연이 아니라), 아래의 애니메이션 구성에서 처리 청크 크기를 확인하세요.

설정 버튼

왼쪽에 있는 네 개의 구성 버튼은 파이프라인의 각 부분에 대한 전용 패널을 엽니다:

1. 음성 인식 구성

사용자의 음성이 캡처되고 텍스트로 변환되는 방식을 구성하세요:

  • 언어 선택
  • 음성 인식 매개변수 조정(Whisper 모델 설정)
  • AEC(음향 반향 제거) 구성
  • VAD(음성 활동 감지) 구성

Speech recognition configuration screen

2. AI 챗봇 구성

LLM 제공업체를 선택하고 구성하세요:

  • 공급자 선택 (Runtime AI Chatbot Integrator 또는 Runtime Local LLM)
  • 모드 선택: 일반 또는 스트리밍 (공급자에 따라 다름, 스트리밍은 문장 단위 TTS 전달을 활성화합니다. 파이프라인 개요 참조)
  • 외부 공급자의 경우: 인증 토큰, 모델 이름
  • 로컬 LLM의 경우: GGUF 모델 선택, 컨텍스트 크기 설정 및 기타 추론 매개변수 설정. 또한 데모에서 직접 런타임에 자체 GGUF 모델을 다운로드할 수 있으며(예: URL로), 프로젝트를 다시 빌드하지 않고 즉시 사용할 수 있습니다.

제공자 콤보박스는 플러그인 모듈 폴더가 Content/Modules/에 존재하는 제공자만 표시합니다.

AI chatbot configuration - Runtime AI Chatbot Integrator (external LLM)

AI chatbot configuration - Runtime Local LLM (local GGUF)

3. 텍스트 음성 변환(TTS) 구성

TTS 제공업체를 선택하고 음성/모델을 구성하세요:

  • 공급자 선택 (OpenAI/ElevenLabs용 Runtime AI Chatbot Integrator 또는 로컬 Piper/Kokoro용 Runtime Text To Speech)
  • 모드 선택: 일반 또는 스트리밍 (오디오가 한 번에 반환되는지 또는 합성되는 대로 반환되는지 제어)
  • 음성/모델 선택
  • 공급자별 매개변수 조정

TTS configuration - Runtime AI Chatbot Integrator (external TTS)

TTS configuration - Runtime Local Text To Speech (local Piper/Kokoro)

4. 애니메이션 구성

AI 아바타의 비주얼을 제어하세요:

  • 사전 다운로드된 MetaHuman 캐릭터 3개 중 선택 (Aera, Ada, Orlando)
  • 립싱크 모델 선택 (Standard 또는 Realistic)
  • 립싱크 모델 유형 선택 - Highly Optimized, Semi-Optimized 또는 Original (모델 유형 참조)
  • 처리 청크 크기 조정 - 립싱크 추론 실행 빈도를 제어합니다 (처리 청크 크기 참조)
    • CPU 부하가 걸릴 때 립싱크가 시간이 지남에 따라 오디오보다 점점 더 뒤처진다면, 이 값을 480 또는 640으로 늘리세요.
  • 대화 중 MetaHuman에서 재생할 대기 애니메이션을 선택하세요.

Animations configuration screen

에디터에서 데모 사전 구성하기

소스 버전을 사용할 때, 편집기에서 기본값을 미리 채워 넣어 매번 실행할 때마다 값을 다시 입력할 필요가 없게 할 수 있습니다:

What어디에
일반 설정 (립싱크 모델, 대기 애니메이션, 캐릭터 클래스, 음성 인식 등)Content/LipSyncSTSGameInstance
외부 LLM / 외부 TTS 설정 (Runtime AI Chatbot Integrator)Content/Modules/RuntimeAIChatbotIntegrator/RuntimeAIChatbotIntegrator_Provider
로컬 LLM 설정 (Runtime Local LLM)Content/Modules/RuntimeLocalLLM/RuntimeLocalLLM_Provider
로컬 TTS 설정 (Runtime Text To Speech)Content/Modules/RuntimeTextToSpeech/RuntimeTextToSpeech_Provider

크로스 플랫폼 참고 사항

데모에서 사용되는 모든 플러그인은 Windows, Mac, Linux, iOS, Android 및 Android 기반 플랫폼(Meta Quest 포함)을 지원하므로, 데모 프로젝트도 이 모든 환경에서 작동합니다. 따라서 게임, 데스크톱 키오스크부터 모바일 앱, 독립형 VR 헤드셋, 세트장 가상 프로덕션 환경에 이르기까지 다양한 환경에 배포하기에 적합합니다.

약한 기기(모바일, 독립형 VR)의 경우 다음을 고려할 수 있습니다:

  • 표준 립싱크 모델을 Realistic 대신 사용하세요 - 모델 비교를 참조하세요
  • 고도로 최적화된 모델 유형으로 전환하세요
  • CPU 부하를 줄이려면 처리 청크 크기를 늘리세요
  • 더 작은 LLM / TTS 모델을 선택하세요

플랫폼별 구성에 대한 추가 설정 단계는 Android, iOS, Mac, Linux에서 확인하세요.

픽셀 스트리밍 지원

Pixel Streaming에서 데모 배포하기 (클릭하여 펼치기)

AI 대화형 데모 프로젝트는 Pixel Streaming 환경에서도 작동하여, MetaHuman 아바타를 원격 클라이언트(예: 웹 브라우저)로 스트리밍하면서 클라이언트 측에서 사용자의 마이크 오디오를 캡처할 수 있습니다. 데모에는 단 한 가지 변경만 필요합니다.

1. Runtime Audio Importer용 Pixel Streaming 확장 프로그램을 설치하세요.

Runtime Audio Importer 플러그인은 Pixel Streaming 클라이언트에서 오디오를 캡처할 수 있게 해주는 무료 확장 플러그인을 제공합니다. 사용 중인 Pixel Streaming 인프라 버전에 따라 다음 중 하나를 설치하세요:

다운로드 링크와 설치 단계는 여기에서 확인할 수 있습니다: Pixel Streaming Audio Capture - 확장 플러그인 설치.

2. LipSyncSTSGameInstance에서 캡처 가능한 사운드 웨이브 노드를 교체하세요.

확장 플러그인이 설치된 후:

  1. 콘텐츠 브라우저에서 /All/Game으로 이동하여 LipSyncSTSGameInstance 에셋을 엽니다.
  2. 이벤트 그래프로 전환합니다.
  3. Event Init을 찾아 실행 흐름을 따라가다 보면 Create Capturable Sound WaveSet Capturable Sound Wave 노드 쌍을 찾을 수 있습니다.
  4. Create Capturable Sound Wave 호출을 대상으로 하는 Pixel Streaming 인프라 버전에 따라 Create Pixel Streaming Capturable Sound Wave 또는 Create Pixel Streaming 2 Capturable Sound Wave 로 교체합니다.
  5. 그 출력을 동일한 Set Capturable Sound Wave 노드에 연결합니다.

이후, 프로젝트는 Pixel Streaming에 배포할 준비가 완료됩니다. 음성 인식, LLM, TTS, 립싱크는 모두 이전과 동일하게 작동하지만, 로컬 마이크 대신 원격 클라이언트에서 오디오를 캡처합니다.

나만의 캐릭터 가져오기

데모 프로젝트에는 세 개의 샘플 MetaHuman 캐릭터(Aera, Ada, Orlando)가 포함되어 있지만, 직접 만든 MetaHuman을 가져와서 데모에서 사용할 수도 있습니다.

📺 비디오 튜토리얼: 데모 프로젝트에 커스텀 MetaHuman 캐릭터 추가하기

노트

Runtime MetaHuman Lip Sync 플러그인 자체는 MetaHuman 외에도 많은 다른 캐릭터 시스템을 지원합니다(ARKit 기반 캐릭터, Daz Genesis 8/9, Reallusion CC3/CC4, Mixamo, ReadyPlayerMe 등 - 사용자 지정 캐릭터 설정 가이드 참조). 게임 NPC, 가상 프레젠터, 키오스크 안내원, 또는 가상 프로덕션용 디지털 휴먼을 만들고 있든, 플러그인은 여러분의 캐릭터 파이프라인에 맞게 적응합니다.

도움이 필요하신가요?

데모 프로젝트를 설정하거나 실행하는 데 문제가 발생하면 언제든지 문의해 주세요:

Join our Discord
online · support

맞춤 개발 요청(예: 데모를 자체 로직으로 확장하거나 특정 플랫폼 또는 캐릭터 파이프라인에 맞게 조정)이 있는 경우 [email protected]로 문의하세요.