본문으로 건너뛰기

플러그인 구성

모델 구성

표준 모델 구성

Create Runtime Viseme Generator 노드는 대부분의 시나리오에서 잘 작동하는 기본 설정을 사용합니다. 구성은 애니메이션 블루프린트 블렌딩 노드 속성을 통해 처리됩니다.

애니메이션 블루프린트 구성 옵션은 아래 Lip Sync 구성 섹션을 참조하세요.

사실적 모델 구성

Create Realistic MetaHuman Lip Sync Generator 노드는 생성기의 동작을 사용자 정의할 수 있는 선택적 Configuration 매개변수를 허용합니다:

모델 유형

Model Type 설정은 사용할 사실적 모델의 버전을 결정합니다:

모델 유형성능시각적 품질노이즈 처리권장 사용 사례
고도로 최적화됨 (기본값)최고 성능, 최저 CPU 사용량좋은 품질배경 소음 또는 비음성 소리에서 눈에 띄는 입 움직임이 나타날 수 있음깨끗한 오디오 환경, 성능이 중요한 시나리오
반 최적화됨좋은 성능, 중간 CPU 사용량높은 품질노이즈가 있는 오디오에서 더 나은 안정성균형 잡힌 성능과 품질, 혼합 오디오 조건
원본최신 CPU에서 실시간 사용에 적합최고 품질배경 소음 및 비음성 소리에서 가장 안정적고품질 제작, 노이즈가 많은 오디오 환경, 최대 정확도가 필요할 때

성능 설정

Intra Op Threads: 내부 모델 처리 작업에 사용되는 스레드 수를 제어합니다.

  • 0 (기본값/자동): 자동 감지 사용 (일반적으로 사용 가능한 CPU 코어의 1/4, 최대 4개)
  • 1-16: 수동으로 스레드 수 지정. 값이 높을수록 멀티코어 시스템에서 성능이 향상될 수 있지만 더 많은 CPU를 사용함

Inter Op Threads: 서로 다른 모델 작업의 병렬 실행에 사용되는 스레드 수를 제어합니다.

  • 0 (기본값/자동): 자동 감지 사용 (일반적으로 사용 가능한 CPU 코어의 1/8, 최대 2개)
  • 1-8: 수동으로 스레드 수 지정. 실시간 처리에는 일반적으로 낮게 유지됨

처리 청크 크기

Processing Chunk Size는 각 추론 단계에서 처리되는 샘플 수를 결정합니다. 기본값은 160 샘플 (16kHz에서 10ms 오디오)입니다:

  • 더 작은 값은 더 빈번한 업데이트를 제공하지만 CPU 사용량을 증가시킵니다
  • 더 큰 값은 CPU 부하를 줄이지만 립싱크 응답성을 감소시킬 수 있습니다
  • 최적의 정렬을 위해 160의 배수를 사용하는 것이 좋습니다

처리 청크 크기 설정

무드 지원 모델 구성

Create Realistic MetaHuman Lip Sync With Mood Generator 노드는 기본 사실적 모델을 넘어서는 추가 구성 옵션을 제공합니다:

기본 구성

Lookahead Ms: 립싱크 정확도를 향상시키기 위한 밀리초 단위의 예측 타이밍입니다.

  • 기본값: 80ms
  • 범위: 20ms ~ 200ms (20으로 나누어 떨어져야 함)
  • 값이 높을수록 더 나은 동기화를 제공하지만 지연 시간이 증가합니다

Output Type: 생성되는 얼굴 컨트롤을 제어합니다.

  • Full Face: 모든 81개의 얼굴 컨트롤 (눈썹, 눈, 코, 입, 턱, 혀)
  • Mouth Only: 입, 턱 및 혀 관련 컨트롤만

Performance Settings: 일반 사실적 모델과 동일한 Intra Op Threads 및 Inter Op Threads 설정을 사용합니다.

무드 설정

사용 가능한 무드:

  • Neutral, Happy, Sad, Disgust, Anger, Surprise, Fear
  • Confident, Excited, Bored, Playful, Confused

Mood Intensity: 무드가 애니메이션에 영향을 미치는 강도를 제어합니다 (0.0 ~ 1.0)

런타임 무드 제어

다음 함수를 사용하여 런타임 중에 무드 설정을 조정할 수 있습니다:

  • Set Mood: 현재 무드 유형 변경
  • Set Mood Intensity: 무드가 애니메이션에 영향을 미치는 강도 조정 (0.0 ~ 1.0)
  • Set Lookahead Ms: 동기화를 위한 예측 타이밍 수정
  • Set Output Type: Full Face와 Mouth Only 컨트롤 간 전환

무드 구성

무드 선택 가이드

콘텐츠에 따라 적절한 무드를 선택하세요:

무드최적 용도일반적인 강도 범위
Neutral일반 대화, 내레이션, 기본 상태0.5 - 1.0
Happy긍정적인 콘텐츠, 유쾌한 대화, 축하0.6 - 1.0
Sad우울한 콘텐츠, 감정적인 장면, 슬픈 순간0.5 - 0.9
Disgust부정적인 반응, 혐오스러운 콘텐츠, 거부0.4 - 0.8
Anger공격적인 대화, 대립적인 장면, 좌절감0.6 - 1.0
Surprise예상치 못한 사건, 계시, 충격적인 반응0.7 - 1.0
Fear위협적인 상황, 불안, 긴장된 대화0.5 - 0.9
Confident전문적인 프레젠테이션, 리더십 대화, 단호한 발언0.7 - 1.0
Excited활기찬 콘텐츠, 발표, 열정적인 대화0.8 - 1.0
Bored단조로운 콘텐츠, 무관심한 대화, 지친 발화0.3 - 0.7
Playful캐주얼 대화, 유머, 가벼운 상호작용0.6 - 0.9
Confused질문이 많은 대화, 불확실성, 당혹감0.4 - 0.8

애니메이션 블루프린트 구성

립싱크 구성

Blend Runtime MetaHuman Lip Sync 노드는 속성 패널에 구성 옵션이 있습니다:

속성기본값설명
Interpolation Speed25입 움직임이 비제임 사이를 전환하는 속도를 제어합니다. 값이 높을수록 더 빠르고 급격한 전환이 발생합니다.
Reset Time0.2립싱크가 재설정되는 시간(초)입니다. 이는 오디오가 중지된 후 립싱크가 계속되는 것을 방지하는 데 유용합니다.

웃음 애니메이션

오디오에서 감지된 웃음에 동적으로 반응하는 웃음 애니메이션을 추가할 수도 있습니다:

  1. Blend Runtime MetaHuman Laughter 노드 추가
  2. RuntimeVisemeGenerator 변수를 Viseme Generator 핀에 연결
  3. 이미 립싱크를 사용 중인 경우:
    • Blend Runtime MetaHuman Lip Sync 노드의 출력을 Blend Runtime MetaHuman Laughter 노드의 Source Pose에 연결
    • Blend Runtime MetaHuman Laughter 노드의 출력을 Output PoseResult 핀에 연결
  4. 립싱크 없이 웃음만 사용하는 경우:
    • 소스 포즈를 직접 Blend Runtime MetaHuman Laughter 노드의 Source Pose에 연결
    • 출력을 Result 핀에 연결

Blend Runtime MetaHuman Laughter

오디오에서 웃음이 감지되면 캐릭터가 그에 따라 동적으로 애니메이션됩니다:

웃음

웃음 구성

Blend Runtime MetaHuman Laughter 노드에는 자체 구성 옵션이 있습니다:

속성기본값설명
Interpolation Speed25입 움직임이 웃음 애니메이션 사이를 전환하는 속도를 제어합니다. 값이 높을수록 더 빠르고 급격한 전환이 발생합니다.
Reset Time0.2웃음이 재설정되는 시간(초)입니다. 이는 오디오가 중지된 후 웃음이 계속되는 것을 방지하는 데 유용합니다.
Max Laughter Weight0.7웃음 애니메이션의 최대 강도를 조정합니다 (0.0 - 1.0).

참고: 웃음 감지는 현재 표준 모델에서만 사용 가능합니다.

기존 애니메이션과 결합

기존 바디 애니메이션과 사용자 정의 얼굴 애니메이션을 재정의하지 않고 립싱크와 웃음을 적용하려면:

  1. 바디 애니메이션과 최종 출력 사이에 Layered blend per bone 노드를 추가합니다. Use Attached Parent가 true인지 확인하세요.
  2. 레이어 설정 구성:
    • Layer Setup 배열에 1 항목 추가
    • 레이어의 Branch Filters3 항목 추가, 다음 Bone Name 포함:
      • FACIAL_C_FacialRoot
      • FACIAL_C_Neck2Root
      • FACIAL_C_Neck1Root
  3. 사용자 정의 얼굴 애니메이션에 중요: Curve Blend Option에서 "Use Max Value" 를 선택하세요. 이를 통해 사용자 정의 얼굴 애니메이션(표정, 감정 등)이 립싱크 위에 제대로 레이어될 수 있습니다.
  4. 연결 만들기:
    • 기존 애니메이션(예: BodyPose) → Base Pose 입력
    • 얼굴 애니메이션 출력(립싱크 및/또는 웃음 노드에서) → Blend Poses 0 입력
    • Layered blend 노드 → 최종 Result 포즈

Layered Blend Per Bone

모프 타겟 세트 선택

표준 모델은 사용자 정의 포즈 애셋 설정을 통해 모든 모프 타겟 명명 규칙을 본질적으로 지원하는 포즈 애셋을 사용합니다. 추가 구성이 필요하지 않습니다.

립싱크 동작 미세 조정

혀 돌출 제어

표준 립싱크 모델에서는 특정 음소에서 과도한 앞쪽 혀 움직임을 볼 수 있습니다. 혀 돌출을 제어하려면:

  1. 립싱크 블렌드 노드 뒤에 Modify Curve 노드 추가
  2. Modify Curve 노드를 마우스 오른쪽 버튼으로 클릭하고 Add Curve Pin 선택
  3. 이름이 CTRL_expressions_tongueOut인 커브 핀 추가
  4. 노드의 Apply Mode 속성을 Scale로 설정
  5. Value 매개변수를 조정하여 혀 확장을 제어합니다 (예: 0.8은 돌출을 20% 감소시킴)

턱 열림 제어

사실적 립싱크는 오디오 콘텐츠와 시각적 요구 사항에 따라 지나치게 반응적인 턱 움직임을 생성할 수 있습니다. 턱 열림 강도를 조정하려면:

  1. 립싱크 블렌드 노드 뒤에 Modify Curve 노드 추가
  2. Modify Curve 노드를 마우스 오른쪽 버튼으로 클릭하고 Add Curve Pin 선택
  3. 이름이 CTRL_expressions_jawOpen인 커브 핀 추가
  4. 노드의 Apply Mode 속성을 Scale로 설정
  5. Value 매개변수를 조정하여 턱 열림 범위를 제어합니다 (예: 0.9는 턱 움직임을 10% 감소시킴)

무드별 미세 조정

무드 지원 모델의 경우 특정 감정 표현을 미세 조정할 수 있습니다:

눈썹 제어:

  • CTRL_expressions_browRaiseInL / CTRL_expressions_browRaiseInR - 안쪽 눈썹 올리기
  • CTRL_expressions_browRaiseOuterL / CTRL_expressions_browRaiseOuterR - 바깥쪽 눈썹 올리기
  • CTRL_expressions_browDownL / CTRL_expressions_browDownR - 눈썹 내리기

눈 표현 제어:

  • CTRL_expressions_eyeSquintInnerL / CTRL_expressions_eyeSquintInnerR - 눈 찡그림
  • CTRL_expressions_eyeCheekRaiseL / CTRL_expressions_eyeCheekRaiseR - 볼 올리기

모델 비교 및 선택

모델 간 선택

프로젝트에 사용할 립싱크 모델을 결정할 때 다음 요소를 고려하세요:

고려 사항표준 모델사실적 모델무드 지원 사실적 모델
캐릭터 호환성MetaHuman 및 모든 사용자 정의 캐릭터 유형MetaHuman만MetaHuman만
시각적 품질효율적인 성능으로 좋은 립싱크더 자연스러운 입 움직임으로 향상된 사실감감정 표현으로 향상된 사실감
성능모바일/VR을 포함한 모든 플랫폼에 최적화더 높은 리소스 요구 사항더 높은 리소스 요구 사항
기능14개 비제임, 웃음 감지81개 얼굴 컨트롤, 3가지 최적화 수준81개 얼굴 컨트롤, 12가지 무드, 구성 가능한 출력
플랫폼 지원Windows, Android, QuestWindows, Mac, iOS, Linux, Android, QuestWindows, Mac, iOS, Linux, Android, Quest
사용 사례일반 애플리케이션, 게임, VR/AR, 모바일시네마틱 경험, 클로즈업 상호작용감정적 스토리텔링, 고급 캐릭터 상호작용

엔진 버전 호환성

UE 5.2 호환성 문제

Unreal Engine 5.2를 사용하는 경우, UE의 리샘플링 라이브러리 버그로 인해 사실적 모델이 올바르게 작동하지 않을 수 있습니다. UE 5.2 사용자 중 안정적인 립싱크 기능이 필요한 경우 표준 모델을 대신 사용하세요.

이 문제는 UE 5.2에만 해당되며 다른 엔진 버전에는 영향을 미치지 않습니다.

성능 권장 사항

  • 대부분의 프로젝트에는 표준 모델이 품질과 성능의 훌륭한 균형을 제공합니다
  • MetaHuman 캐릭터에 최고의 시각적 충실도가 필요할 때 사실적 모델을 사용하세요
  • 애플리케이션에 감정 표현 제어가 중요할 때 무드 지원 사실적 모델을 사용하세요
  • 모델 선택 시 대상 플랫폼의 성능 능력을 고려하세요
  • 특정 사용 사례에 가장 적합한 균형을 찾기 위해 다른 최적화 수준을 테스트하세요

TTS 호환성

모델 유형로컬 TTS 지원 (Runtime Text To Speech 통해)외부 TTS 지원참고 사항
표준 모델✅ 전체 지원✅ 전체 지원모든 TTS 옵션과 호환
사실적 모델❌ 제한적 지원✅ 전체 지원ONNX 런타임이 로컬 TTS와 충돌
무드 지원 사실적 모델✅ 전체 지원✅ 전체 지원모든 TTS 옵션과 호환

문제 해결

일반적인 문제

사실적 모델을 위한 생성기 재생성: 사실적 모델의 안정적이고 일관된 작동을 위해, 비활성 기간 후 새로운 오디오 데이터를 공급하려고 할 때마다 생성기를 재생성하는 것이 권장됩니다. 이는 침묵 기간 후 생성기를 재사용할 때 립싱크 작동이 중지될 수 있는 ONNX 런타임 동작 때문입니다.

로컬 TTS 호환성: Runtime Text To Speech 플러그인에서 제공하는 로컬 TTS는 ONNX 런타임 충돌로 인해 현재 일반 사실적 모델과 지원되지 않습니다. 그러나 표준 모델과 무드 지원 사실적 모델 모두와 완전히 호환됩니다. TTS 기능이 있는 일반 사실적 모델이 특별히 필요한 경우 외부 TTS 서비스를 사용하세요.

립싱크 응답성 저하: Streaming Sound Wave 또는 Capturable Sound Wave를 사용할 때 시간이 지남에 따라 립싱크 응답성이 떨어지는 경우, 이는 메모리 누적으로 인한 것일 수 있습니다. 기본적으로 새로운 오디오가 추가될 때마다 메모리가 재할당됩니다. 이 문제를 방지하려면 ReleaseMemory 함수를 주기적으로(예: 30초마다) 호출하여 누적된 메모리를 해제하세요.

성능 최적화:

  • 성능 요구 사항에 따라 사실적 모델의 처리 청크 크기 조정
  • 대상 하드웨어에 적절한 스레드 수 사용
  • 전체 얼굴 애니메이션이 필요하지 않을 때 무드 지원 모델의 Mouth Only 출력 유형 사용 고려